MCP协议测试服务器

一个展示MCP协议所有功能的测试服务器,用于帮助开发者构建MCP客户端,支持工具调用、资源管理、提示交互等功能。

  • by PazerOP
  • TypeScript
  • 混合部署
  • 更新于
在 GitHub 查看 pazerop/mcp-template

使用说明

所有MCP服务器

此MCP服务器尝试执行MCP协议的所有功能。它不是一个有用的服务器,而是MCP客户端构建者的测试服务器。它实现了提示、工具、资源、采样等,以展示MCP的功能。

组件

工具

  1. echo

    • 回显输入消息的简单工具
    • 输入:
      • message (string):要回显的消息
    • 返回:带有回显消息的文本内容
  2. add

    • 将两个数字相加
    • 输入:
      • a (number):第一个数字
      • b (number):第二个数字
    • 返回:加法的文本结果
  3. longRunningOperation

    • 演示长时间操作的进度通知
    • 输入:
      • duration (数字,默认值:10):持续时间(秒)
      • steps (数字,默认值:5):进度步骤数
    • 返回:带有持续时间和步骤的完成消息
    • 在执行过程中发送进度通知
  4. sampleLLM

    • 使用MCP采样功能演示LLM采样能力
    • 输入:
      • prompt (string):发送给LLM的提示
      • maxTokens (数字,默认值:100):要生成的最大令牌数
    • 返回:生成的LLM响应
  5. getTinyImage

    • 返回一个小测试图像
    • 无需输入
    • 返回:Base64编码的PNG图像数据
  6. printEnv

    • 打印所有环境变量
    • 可用于调试MCP服务器配置
    • 无需输入
    • 返回:所有环境变量的JSON字符串
  7. annotatedMessage

    • 演示如何使用注释提供有关内容的元数据
    • 输入:
      • messageType (枚举:“error”|“success”|“debug”):用于演示不同注释模式的消息类型
      • includeImage (boolean,默认值:false):是否包含示例图像
    • 返回:带有不同注释的内容:
      • 错误消息:高优先级(1.0),用户和助手都可以看到
      • 成功信息:中等优先级(0.7),以用户为中心
      • 调试消息:低优先级(0.3),以助手为中心
      • 可选图像:中等优先级(0.5),以用户为中心
    • 注释示例:
      {
        "priority": 1.0,
        "audience": ["user", "assistant"]
      }
      
  8. getResourceReference

    • 返回MCP客户端可以使用的资源引用
    • 输入:
      • resourceId (数字,1-100):要引用的资源的ID
    • 返回:一个资源引用,具有:
      • 文本介绍
      • 嵌入式资源 type: "resource"
      • 使用资源URI的文本说明
  9. startElicitation

    • 在MCP客户端内发起启发(交互)。
    • 输入:
      • color (string):最喜欢的颜色
      • number (数字,1-100):最喜欢的数字
      • pets (枚举):最喜欢的宠物
    • 返回:使用选择摘要确认启发演示。

资源

服务器以两种格式提供100个测试资源:

  • 偶数资源:

    • 纯文本格式
    • URI模式: test://static/resource/{even_number}
    • 内容:简单的文字描述
  • 奇数资源:

    • 二进制blob格式
    • URI模式: test://static/resource/{odd_number}
    • 内容:Base64编码二进制数据

资源特征:

  • 支持分页(每页10个项目)
  • 允许订阅资源更新
  • 演示资源模板
  • 每5秒自动更新订阅的资源

鼓励

  1. simple_prompt

    • 无参数的基本提示
    • 返回:单消息交换
  2. complex_prompt

    • 高级提示演示论证处理
    • 必需参数:
      • temperature (数字):温度设置
    • 可选参数:
      • style (string):输出样式首选项
    • 返回:带图像的多回合对话
  3. resource_prompt

    • 演示在提示中嵌入资源引用
    • 必需参数:
      • resourceId (number):要嵌入的资源的ID(1-100)
    • 返回:带有嵌入式资源引用的多回合对话
    • 演示如何在提示消息中直接包含资源

日志记录

服务器每15秒发送一次随机分级日志消息,例如:

{
  "method": "notifications/message",
  "params": {
	"level": "info",
	"data": "Info-level message"
  }
}

使用Claude Desktop(使用 stdio运输)

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "everything": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-everything"
      ]
    }
  }
}

使用VS代码

为了快速安装,请使用下面的一键安装按钮。..

对于手动安装,请将以下JSON块添加到VS Code中的用户设置(JSON)文件中。您可以按 Ctrl + Shift + P 和打字 Preferences: Open User Settings (JSON).

您可以选择将其添加到名为的文件中 .vscode/mcp.json 在您的工作空间中。这将允许您与他人共享配置。

请注意 mcp 中不需要密钥 .vscode/mcp.json 文件。

NPX

{
  "mcp": {
    "servers": {
      "everything": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-everything"]
      }
    }
  }
}

从源代码运行 HTTP+SSE传输 (已弃用 2025-03-26)

cd src/everything
npm install
npm run start:sse

从源代码运行 可流式HTTP传输

cd src/everything
npm install
npm run start:streamableHttp

作为已安装的软件包运行

安装

npm install -g @modelcontextprotocol/server-everything@latest

运行默认(stdio)服务器

npx @modelcontextprotocol/server-everything

或者明确指定stdio

npx @modelcontextprotocol/server-everything stdio

运行SSE服务器

npx @modelcontextprotocol/server-everything sse

运行可流式传输的HTTP服务器

npx @modelcontextprotocol/server-everything streamableHttp