MCP SSE服务器示例

一个展示MCP协议SSE实现的示例项目,包含多种工具功能如消息回显、数学运算、长时操作进度通知、LLM采样等,适用于开发调试和MCP协议学习。

  • by iuill
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 iuill/mcp_sse_sample

使用说明

MCP SSE样本

SSE使用MCP服务器示例。 MCP协议SSE这是一个示例项目,表示实现。

原始代码如下。

  • https://github.com/modelcontextprotocol/servers/tree/main/src/everything

组件

工具

  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"]
      }
      

日志记录

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

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

使用方法

在本地运行

# インストール
npm install

# ビルド
npm run build

# 実行(STDIOモード)
npm run start

# 実行(SSEモード)
npm run start:sse

Claude Desktop在中使用

claude_desktop_config.json中添加:

{
  "mcpServers": {
    "sse-sample": {
      "command": "npx",
      "args": [
        "-y",
        "mcp_sse_sample"
      ]
    }
  }
}