模型上下文协议服务器

一个基于TypeScript的流式HTTP MCP服务器实现,提供计算工具、资源管理和Express集成功能,适用于AI模型通信场景。

  • by ayshsandu
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ayshsandu/mcp-and-agent-samples

使用说明

MCP(多点控制单元)和代理样本

此存储库包含模型上下文协议(MCP)的示例实现。

示例HTTP MCP服务器

一个使用(某技术/框架,原文中未指明)实现的可流式传输的HTTP MCP服务器示例 TypeScript SDK(软件开发工具包)。

特点/特性

这个示例服务器展示了:

  • 可流式传输的HTTP传输基于现代HTTP的MCP通信传输协议
  • 工具多个示例工具,包括计算器和回显功能
  • 资源使用URI模板的动态和静态资源
  • 快速集成易于与Express.js集成以处理HTTP请求

安装

npm install

运行服务器

开发模式 (支持热重载):

npm run dev

构建并运行:

npm run build
npm start

服务器将在 http://localhost:3000 默认情况下。您可以通过设置来更改端口 PORT 环境变量:

PORT=8080 npm run dev

可用的终端节点

  • POST /mcp - 客户端连接的主要MCP端点
  • GET /health - 健康检查端点
  • GET / - 服务器信息

工具

服务器提供以下工具:

  1. 添加 - 将两个数字相加

    • 输入: { a: number, b: number }
    • 输出: { result: number }
  2. 乘以 - 将两个数相乘

    • 输入: { a: number, b: number }
    • 输出: { result: number }
  3. 回声 - 回复一条消息

    • 输入: { message: string }
    • 输出: { echo: string }

资源

服务器提供了以下资源:

  1. 问候语://{name} - 动态问候资源

    • 示例: greeting://Alice 返回“你好,爱丽丝!欢迎来到MCP服务器。”
  2. info://server 翻译为中文是:“信息://服务器”。不过,通常在实际应用中,“info://server”这样的格式可能是一个特定应用或系统的内部协议或路径,直接翻译可能无法完全传达其在特定上下文中的含义。但基于字面意思,翻译如上 - 静态服务器信息

    • 返回有关MCP服务器的信息

连接到服务器

您可以使用任何支持流式HTTP的MCP客户端连接到此服务器:

MCP 检查员

npx @modelcontextprotocol/inspector

然后连接到: http://localhost:3000/mcp

克劳德·科德

claude mcp add --transport http my-server http://localhost:3000/mcp

VS Code(Visual Studio Code,简称VS Code)

code --add-mcp "{\"name\":\"my-server\",\"type\":\"http\",\"url\":\"http://localhost:3000/mcp\"}"

光标

点击这个深度链接: cursor://anysphere.cursor-deeplink/mcp/install?name=my-server&config=eyJ1cmwiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvbWNwIn0%3D 翻译为中文是:“cursor://anysphere的深度链接/mcp/安装?名称=my-server&配置=eyJ1cmwiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvbWNpIn0%3D”。(注:这里的“eyJ1cmwiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAvbWNpIn0%3D”是一个经过Base64编码的JSON字符串,解码后大致表示“url”: “http://localhost:3000/mcp”,但具体含义可能因上下文而异。在中文翻译中,我们通常保留这种编码形式,因为它可能包含特定的配置信息或路径。)

测试服务器

一旦服务器运行起来,你可以手动进行测试:

  1. 健康检查:

    curl http://localhost:3000/health
    
  2. 服务器信息:

    curl http://localhost:3000/
    
  3. MCP终端节点 (需要合适的MCP客户端或手动发送JSON-RPC请求):

    curl -X POST http://localhost:3000/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
    

建筑学

此实现遵循MCP规范,采用:

  • **McpServer(可译为“MCP服务器”)**核心MCP服务器实例处理协议合规性
  • StreamableHTTPServerTransport 可以翻译为“可流式传输的HTTP服务器传输”或“支持流式处理的HTTP服务器传输”,具体翻译取决于上下文和使用场景。在这里,“Streamable”表示该传输方式支持流式处理或流式传输,“HTTPServerTransport”则指的是基于HTTP协议的服务器端传输方式用于请求/响应处理的HTTP传输层
  • 快递用于HTTP服务器的Web框架
  • 佐德工具输入和输出的模式验证

发展

类型检查:

npm run type-check

构建:

npm run build

参考文献

许可证

麻省理工学院(MIT)