返回市场
MCP测试服务器

MCP测试服务器

作者:msfeldstein36 星标更新:2025-11-18

项目介绍

MCP 测试服务器

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

🚀 快速安装画廊

访问我们的**GitHub 页面画廊**,获取可以直接与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模式服务器
  • broken-schema-fastmcp: 使用顶级oneOf/allOf/anyOf的真实损坏模式FastMCP服务器
  • crash-on-startup: 启动时崩溃的服务器
  • combined: 包含工具和资源的服务器
  • duplicate-names: 资源具有重复名称的服务器
  • elicitation: 展示MCP引出功能的服务器 - 通过结构化表单请求用户信息(姓名、年龄、联系方式、偏好)
  • enum-param: 工具具有枚举字符串参数
  • integer-anyof-bug: 复现Cursor的整数验证bug,参数使用{"anyOf": [{"type": "integer"}, {"type": "null"}]}会因'got number'错误而失败
  • env-check: 检查SHOULD_RUN环境变量是否正确传递
  • env-echo: 回显环境变量
  • gpt5-breaker: 具有复杂参数验证的SQL查询执行工具服务器
  • headers: 安全返回HTTP头信息的FastMCP服务器
  • instructions: 包含指令和makeRequest工具的服务器,该工具对值42返回成功
  • image: 工具返回刺猬索尼克的图片
  • long-description: 通过环境变量配置非常长的描述
  • long-running: 每2秒发送一次进度通知,持续20秒的任务
  • many-resources: 包含多个资源的服务器
  • many-tools: 包含100个工具的服务器,每个工具都返回'ack'
  • math: 基本数学函数工具服务器(加、减、乘、除、幂、平方根、阶乘)
  • missing-type: 工具缺少参数模式中的必需'type'字段的服务器
  • missing-type-fastmcp: 真正缺少'type'字段的工具模式FastMCP服务器
  • named: 通过MCP_SERVER_NAME环境变量配置名称的服务器
  • notion-gemini-repro: 在某些模型上会中断的复杂嵌套模式服务器(Notion API复现案例)- 内联模式
  • notion-gemini-repro-raw: 在某些模型上会中断的复杂嵌套模式服务器(Notion API复现案例)- 精确原始模式对象
  • number-param: 具有数字参数的工具
  • oauth-repro: 复现OAuth 2.0流程问题,具有正确的发现端点 - 资源服务器运行在3001端口,认证服务器运行在3002端口
  • oauth-debug: 具有全面日志和端点跟踪的OAuth调试服务器 - 资源服务器运行在3003端口,认证服务器运行在3004端口
  • oauth-callback-test: 模拟Cursor 1.4.x端点发现bug的OAuth回调测试服务器 - 运行在3005端口
  • oauth-edge-case: 可配置边缘情况以触发发现bug的OAuth服务器 - 资源服务器运行在3006端口,认证服务器运行在3007端口
  • oauth-bug-trigger: 特别设计用于复现精确的Cursor 1.4.x OAuth发现bug的服务器 - 资源服务器运行在3008端口,认证服务器运行在3_009端口
  • optional-param: 工具具有可选参数
  • pattern-param: 工具具有模式匹配参数
  • ping: 简单的服务器,响应'pong'
  • prompts: 包含两个提示的服务器 - 一个静态问候和一个动态故事生成器,具有角色名称和位置参数
  • raw-broken: 具有真正损坏模式的原始JSON-RPC MCP服务器(无框架验证)
  • resource: 资源服务器实现
  • resource-lister: 发布5个资源并具有列出它们的工具的服务器
  • roots-echo: 通过回显客户端提供的roots来展示MCP roots功能的服务器
  • session-inactivity: 会话在30秒不活动后过期的流式HTTP服务器,用于测试会话管理
  • session-management: 实现MCP会话管理行为的HTTP服务器 - 分配会话ID,要求请求中包含它们,并在终止会话时返回404
  • sse-timeout: 建立SSE连接但在30秒后超时的流式HTTP服务器,用于测试客户端重新连接
  • stderr: 将日志记录到stderr的服务器
  • structured-output: 通过简单的echo工具展示structuredContent响应
  • dual-content: 展示同一响应中structuredContent和content的不同输出
  • everything: 综合测试所有MCP特性的服务器 - 带有/不带参数的工具、资源、提示、引出、动态工具、roots回显、环境变量

🚀 快速开始:自动化测试

对于即时全面测试,请使用内置的AI代理测试提示:

  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"(使用默认值)

预期: 应该回显指定重复次数和大小写转换的消息。

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. 调用dynamic_feature并使用可选操作参数
  4. 再次调用toggle_dynamic_tool禁用
  5. 验证dynamic_feature工具不再可用 预期: 工具可用性应动态变化

6. MCP Roots回显

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

7. 环境变量回显

工具: echo_env_var 测试: 提示:"调用echo_env_var MCP工具" 预期: 应该返回"MY_ENV_VAR = My Special Token"

8. 长时间运行进度工具

工具: long_running_progress 测试: 使用可选任务名称参数调用 预期: 应该运行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代理测试提示

提示: test-everything 测试: 在Cursor中使用斜杠命令:/test-everything 预期: 应该返回全面的分步测试说明,供AI代理系统地测试所有MCP特性 用途: 适用于自动化测试 - AI将自动执行所有20个测试步骤并提供完整的验证报告

完整测试序列

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

此全面测试确保所有MCP协议特性正常工作。