mcpField
M
MCP Test Servers

MCP Test Servers

本地服务
github.com/msfeldstein开发工具4036 周前更新

关于 MCP Test Servers

MCP Test Servers 是一组用于测试 MCP 实现的测试服务集合,通过 npx 即可运行。它面向开发者和 MCP 客户端维护者,用于复现协议行为、Schema 问题与认证流程缺陷。

主要功能

  1. 01覆盖工具参数类型、资源与提示词的测试服务
  2. 02用于复现 OAuth 发现与会话管理问题的服务
  3. 03包含 everything 综合测试服务与测试计划
  4. 04支持 MCP Apps 与 elicitation 的示例

适用场景

  1. 01验证 MCP 客户端对工具 Schema 的兼容性
  2. 02复现 Cursor 相关的 OAuth 或整数校验问题
  3. 03按测试计划逐项检查 MCP 功能实现

MCP 相关

该项目本身是一组 MCP 服务,每个服务向 MCP 客户端暴露不同的工具、资源、提示词或故障场景用于测试。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 测试服务

一组实现了模型上下文协议(MCP)的测试服务。

🚀 快速安装库

访问我们的 GitHub Pages 展示库,即可获取可直接在 Cursor 中使用的一键安装按钮!

手动安装

npx -y @msfeldstein/mcp-test-servers <server>

开发

开发时请直接使用 cli.js

{
  "mcpServers": {
    "test-server": {
      "command": "/Users/feldstein/Source/mcp-test-servers/src/cli.js",
      "args": [
        "ping"
      ],
      "env": {}
    }
  }
}

可用服务

  • all-types:演示 MCP 支持的各种工具参数类型
  • bad-param:参数名称故意设置错误的服务
  • big-response:返回大型响应的服务
  • broken-tool:工具故意损坏的服务
  • broken-schema:顶层使用 oneOf/allOf/anyOf 的无效 JSON schema 服务
  • broken-schema-fastmcp:顶层使用 oneOf/allOf/anyOf 的真实损坏 schema 的 FastMCP 服务
  • crash-on-startup:启动时崩溃的服务
  • combined:包含工具和资源的服务
  • duplicate-names:资源名称重复的服务
  • elicitation:演示 MCP 信息征询功能的服务——通过结构化表单请求用户信息(姓名、年龄、联系方式、偏好)
  • enum-param:工具包含枚举字符串参数
  • integer-anyof-bug:复现 Cursor 的 anyOf schema 整数验证错误——参数使用 {"anyOf": [{"type": "integer"}, {"type": "null"}]} 时,验证会报错 'got number'
  • env-check:检查 SHOULD_RUN 环境变量是否正确传入
  • env-echo:回显环境变量
  • gpt5-breaker:使用复杂参数验证的 SQL 查询执行工具服务
  • graphing:MCP Apps 服务,提供 show-graphing-ui;UI 使用 Chart.js 渲染内嵌图表
  • headers:安全返回 HTTP 标头信息的 FastMCP 服务
  • instructions:包含 instructions 的服务,以及一个在值为 42 时返回成功的 makeRequest 工具
  • image:工具返回一张索尼克的图片
  • long-description:通过环境变量配置并公开超长描述
  • long-running:20 秒任务中每隔 2 秒发送进度通知的服务
  • many-resources:包含多个资源的服务
  • many-tools:包含 100 个工具的服务,每个工具都返回 'ack'
  • math:提供基本数学函数工具(add、subtract、multiply、divide、power、sqrt、factorial)的服务
  • missing-type:工具参数 schema 缺少必需的 'type' 字段的服务
  • missing-type-fastmcp:工具 schema 中确实缺少 'type' 字段的 FastMCP 服务
  • named:可通过 MCP_SERVER_NAME 环境变量配置名称的服务
  • notion-gemini-repro:包含复杂嵌套 schema、会导致某些模型出错的服务(Notion API 复现案例)——内联 schema
  • notion-gemini-repro-raw:包含复杂嵌套 schema、会导致某些模型出错的服务(Notion API 复现案例)——原始 schema 对象
  • number-param:包含数字参数的工具
  • oauth-repro:复现 OAuth 2.0 流程问题,提供正确的发现端点——在端口 3001 上运行资源服务,在端口 3002 上运行认证服务
  • oauth-debug:提供全面日志记录和端点跟踪的 OAuth 调试服务——在端口 3003 上运行资源服务,在端口 3004 上运行认证服务
  • oauth-callback-test:模拟 Cursor 1.4.x 端点发现错误的 OAuth 回调测试服务——在端口 3005 上运行
  • oauth-edge-case:可配置边缘情况以触发发现错误的 OAuth 服务——资源服务运行于端口 3006,认证服务运行于端口 3007
  • oauth-bug-trigger:专门用于复现 Cursor 1.4.x OAuth 发现错误的服务——资源服务运行于端口 3008,认证服务运行于端口 3009
  • optional-param:工具包含可选参数
  • pattern-param:工具包含使用模式匹配的参数
  • ping:返回 'pong' 的简单服务
  • prompts:包含两个提示词的服务——一个静态问候语,以及一个带有角色名称和地点参数的动态故事生成器
  • raw-broken:具有真实损坏 schema 的原始 JSON-RPC MCP 服务(不进行框架验证)
  • resource:资源服务实现
  • resource-lister:发布 5 个资源并提供列出资源的工具的服务
  • roots-echo:演示 MCP roots 功能,通过回显客户端提供的 roots 实现
  • session-inactivity:可流式传输的 HTTP 服务,空闲 30 秒后使会话过期,以测试会话管理
  • session-management:实现 MCP 会话管理行为的 HTTP 服务——分配会话 ID、要求请求中包含会话 ID,并对已终止的会话返回 404
  • sse-timeout:建立 SSE 连接后 30 秒超时,以测试客户端重新连接的可流式传输 HTTP 服务
  • stderr:向 stderr 写入日志的服务
  • structured-output:使用简单回显工具演示 structuredContent 响应
  • ui:MCP Apps 服务,提供 show-ui;渲染出的 UI 按钮会调用 get-time 工具,并在页面内显示当前时间
  • dual-content:演示同一响应中 structuredContent 与 content 的不同输出
  • everything:全面测试所有 MCP 功能的服务——带/不带参数的工具、资源、提示词、信息征询、动态工具、roots 回显和环境变量

🚀 快速开始:自动化测试

如需立即进行全面测试,请使用内置的 AI Agent 测试提示词:

  1. 启动 everything 服务:npx @msfeldstein/mcp-test-servers everything
  2. 在 Cursor 中使用斜杠命令:/test-everything
  3. AI 将自动执行全部 20 个测试步骤,并提供完整的验证报告

Everything 服务测试计划

everything 服务旨在全面测试所有 MCP 功能。以下是各项功能的测试方法:

工具测试

0. 设置
{
    "mcpServers": {
        "everything": {
            "command": "npx @msfeldstein/mcp-test-servers everything",
            "env": {
                "MY_ENV_VAR": "My Special Token"
            }
        }
    }
}
1. 带参数的工具

工具: echo_with_params 测试: 使用各种参数组合调用:


- message: "Hello World", repeat_count: 3, uppercase: true
- message: "Test", repeat_count: 1, uppercase: false
- message: "MCP" (using defaults)

预期结果: 应按指定的重复次数和大小写转换方式回显消息。

2. 不带参数的工具

工具: simple_ping 测试: 不带任何参数调用 预期结果: 应返回 "pong"

3. 返回混合内容的工具

工具: get_mixed_resources 测试: 调用该工具 预期结果: 应在同一响应中同时返回文本内容和一张小型测试图片

4. 信息收集测试

工具: test_all_elicitations 测试: 调用该工具并回答所有提示:

  • 字符串输入(姓名)
  • 布尔值输入(编程偏好)
  • 数字输入(工作年限,0-50)
  • 枚举输入(选择编程语言) 预期结果: 应收集所有输入并显示摘要
5. 动态工具管理

工具: toggle_dynamic_tool 测试:

  1. 调用 toggle_dynamic_tool 以启用动态工具
  2. 确认 dynamic_feature 工具变为可用
  3. 使用可选的 action 参数调用 dynamic_feature
  4. 再次调用 toggle_dynamic_tool 以禁用该工具
  5. 确认 dynamic_feature 工具不再可用 预期结果: 工具的可用状态应动态变化
6. MCP Roots 回显

工具: echo_mcp_roots 测试: 调用该工具 预期结果: 应返回客户端提供的 MCP roots 的 JSON 表示

7. 环境变量回显

工具: echo_env_var 测试: 提示词:"Call the echo_env_var MCP tool" 预期结果: 应返回 "MY_ENV_VAR = My Special Token"

8. 长时间运行进度工具

工具: long_running_progress 测试: 使用可选的 task_name 参数调用 预期结果: 应运行 20 秒,每 2 秒更新一次进度,并显示:

  • 从 0 到 10 的进度(总步数)
  • 每个步骤的描述性消息
  • 最终完成消息
  • 客户端应收到进度通知

资源测试

9. 文本资源

资源: everything://docs.txt 测试: 请求该资源 预期结果: 应返回关于该服务的完整文档

10. 图片资源

资源: everything://test-image.png 测试: 请求该资源 预期结果: 应返回一张 PNG 格式的小型测试图片

提示词测试

11. 不带参数的提示词

提示词: simple-greeting 测试: 输入 /sim 和 /simple-greeting 时应显示建议。提交该提示词。 预期结果: 应返回一条关于 Everything Server 的友好问候消息

12. 带参数的提示词

提示词: personalized-message 测试: 提交 /personalized-message:

  • name:"Alice"
  • topic:"AI Development" 预期结果: 应返回一条个性化消息,其中提及 Alice 和 AI Development
13. AI Agent 测试提示词

提示词: test-everything 测试: 在 Cursor 中使用此提示词和斜杠命令:/test-everything 预期结果: 应返回全面的分步测试说明,指导 AI Agent 系统地测试所有 MCP 功能 用法: 非常适合自动化测试——AI 将自动执行全部 20 个测试步骤,并提供完整的验证报告

完整测试序列

  1. 设置: 在环境中设置 MY_ENV_VAR="My Special Token"
  2. 基础工具: 测试 simple_ping 和 `echo_with_params``
  3. 混合内容: 测试 get_mixed_resources
  4. 信息征询: 完整运行 test_all_elicitations
  5. 动态工具: 开启/关闭动态工具并测试其可用性
  6. 系统信息: 测试 echo_mcp_roots 和 echo_env_var
  7. 长时间运行: 测试 long_running_progress 并接收进度通知
  8. 资源: 获取文本和图像资源
  9. 提示词: 测试带参数和不带参数的提示词

此全面测试可确保所有 MCP 协议功能正常运行。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。