/ 目录 / 演练场 / Everything (test server)
● 官方 modelcontextprotocol ⚡ 即开即用

Everything (test server)

作者 modelcontextprotocol · modelcontextprotocol/servers

MCP 参考测试服务器——一站式覆盖所有协议特性。用于调试你的 MCP 客户端,不用于生产环境。

参考级『万能』服务器。暴露了所有 MCP 能力:tools(同步和长耗时)、resources(静态和动态)、prompts、sampling、completion。用它验证你的 MCP 客户端实现是否正确,或用于学习协议。不适用于实际工作流。

为什么要用

核心特性

实时演示

实际使用效果

everything.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-everything"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-everything"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-everything"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-everything"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "everything",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-everything"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "everything": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-everything"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add everything -- npx -y @modelcontextprotocol/server-everything

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: Everything (test server)

验证你的 MCP 客户端实现覆盖所有协议特性

👤 构建或调试 MCP 客户端、SDK 或集成的开发者 ⏱ ~20 min intermediate

何时使用: 你要发布新的 MCP 客户端、集成或封装,想先验证它正确处理 tools+resources+prompts+sampling 再指向真实服务器。

前置条件
  • 被测试的 MCP 客户端 — Claude Desktop、你的自定义客户端或测试工具
步骤
  1. 启动 everything server 并列出它的能力
    连接到 everything server。列出它暴露的每个 tool、resource 和 prompt。✓ 已复制
    → 完整清单——确认你的客户端能发现完整的接口
  2. 逐一测试各项能力
    调用 echo,然后 add,再调用 longRunningOperation 并设置 10 秒时长。读取静态和动态 resource。触发 simple_prompt prompt。✓ 已复制
    → 每次调用都完成或正确流式返回;取消功能正常
  3. 测试边界情况
    尝试 sampling(sampleLLM tool)、prompt 参数补全和包含错误的 tool。检查客户端是否正确处理每条路径。✓ 已复制
    → 无崩溃;错误以正确的 MCP 错误码形式显示

结果: 客户端实际实现的 MCP 特性清单(带证据)。

注意事项
  • 不是所有客户端都实现了 sampling — Sampling 是客户端可选的;如果你的客户端不支持,sampleLLM tool 会返回清晰的错误——这是预期的,不是 bug

通过与真实服务器互动学习 MCP 协议

👤 读过规范但想看实际效果的 MCP 初学者 ⏱ ~45 min intermediate

何时使用: 你在学习协议,想要一个能同时查看源码的服务器。

步骤
  1. 用 stdio 传输运行服务器并观察流量
    运行 npx -y @modelcontextprotocol/server-everything 并连接客户端。捕获 JSON-RPC 交换(tool list、call、response)。✓ 已复制
    → 原始协议帧,你可以对应到规范
  2. 阅读对应的源码
    打开 modelcontextprotocol/servers/src/everything——追踪哪个文件实现了你刚看到的 tool、resource、prompt 处理器。✓ 已复制
    → 协议层与服务器代码的 1:1 对应
  3. 修改并测试
    Fork 服务器,添加一个返回当前服务器运行时间的新 tool,重启后调用它。✓ 已复制
    → 你新添加的 tool 出现在 list_tools 中并响应调用

结果: 你理解了 MCP 的协议层面,不仅仅是 SDK 层面。

注意事项
  • 把 everything server 的特性当作生产就绪的模式 — 服务器为了测试故意功能过多;真实服务器应该只暴露你实际需要的 tools
搭配使用: fastmcp

组合

与其他 MCP 搭配,撬动十倍杠杆

everything + fastmcp

测试你基于 FastMCP 构建的服务器行为是否与参考实现一致

连接到你的 FastMCP 服务器和 everything server。对于 everything server 暴露的每项能力,检查你的服务器是否等效处理。✓ 已复制
everything + mcp-agent

针对一个已知行为的服务器运行 agent 评估

配置一个指向 everything server 的 mcp-agent。运行测试套件验证 tool 调用、resource 读取和 prompt 触发流程。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
echo message: str 冒烟测试:确认请求/响应正常工作 free
add a: number, b: number 简单的类型化输入测试 free
longRunningOperation duration: int (seconds), steps: int 测试客户端的流式/进度处理和取消路径 free
sampleLLM prompt: str, maxTokens: int 测试 MCP sampling 特性——服务器请求客户端运行 LLM 调用 depends on client's sampling backend
getTinyImage none 测试二进制 resource 交付 free
printEnv none 诊断 MCP 客户端传递的环境变量 free
annotatedMessage messageType: str, includeImage: bool 测试带注解内容的渲染(priority、audience) free

成本与限制

运行它的成本

API 配额
无限额——完全本地
每次调用 Token 数
非常小
费用
免费
提示
唯一需要关注的:longRunningOperationsampleLLM 可能消耗你客户端 LLM 的实时时间或 token;保持测试运行时间短。

安全

权限、密钥、影响范围

凭据存储:
数据出站: 默认无外流;printEnv 会暴露你客户端传递的任何环境变量——演示时不要指向包含密钥的进程

故障排查

常见错误与修复

连接后客户端显示没有 tools

确认 stdio 传输匹配。有些客户端要求服务器进程长期运行;检查客户端的 'command' 配置是否持续运行而不是退出。

验证: Run `npx -y @modelcontextprotocol/server-everything` directly; it should block waiting for input
`sampleLLM` 返回 'sampling not supported'

你的客户端没有实现 MCP sampling(很多都没有)。这对大多数现有客户端来说是预期的。跳过那个 tool。

`longRunningOperation` 不流式返回进度

你的客户端可能没有订阅进度通知。检查它的文档是否支持进度处理器。

替代方案

Everything (test server) 对比其他方案

替代方案何时用它替代权衡
FastMCP你想构建自己的测试服务器,而不是使用参考实现工作量更大;让你能隔离特定行为
任何真实服务器(github、filesystem 等)你想针对真实的、功能专一的 tool 接口进行测试,而不是大杂烩接口更小——可能遗漏客户端需要支持的特性

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills