MCP服务器示例

一个基于TypeScript的MCP服务器示例,展示如何通过Model Context Protocol (MCP)暴露简单的工具和资源。

  • by Sharjeelbaig
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 sharjeelbaig/mcp-server

使用说明

MCP服务器——最小示例

这个存储库是一个用TypeScript实现的小型MCP服务器示例。它演示了如何使用模型上下文协议(MCP)公开简单的“工具”和资源。

这个回购中有什么

  • server.ts --MCP服务器实现(使用 @modelcontextprotocol/sdk 和 StdioServerTransport).
  • package.json --项目清单和开发依赖关系。

先决条件

  • Node.js(建议使用v16+)
  • npm(与Node捆绑在一起)

安装

安装生产和开发依赖关系:

npm install

如果你想直接运行TypeScript文件,你还需要一个运行时助手,比如 ts-node:

npm install --save-dev ts-node

此服务器的运行方式

服务器使用stdio传输(StdioServerTransport)并通过标准输入/输出连接。这使得它适合由MCP主机/检查器生成或直接启动进行本地测试。

运行选项

  1. 启动官方MCP检查员(项目 start 脚本):
npm start

这个项目s 开始 script runs the MCP inspector (npx@modelcontextprotocol/inspector@latest`)因此,您可以在本地检查和驱动服务器。

  1. 直接运行服务器(建议用于开发):
# (ensure ts-node is installed as shown above)
npx ts-node-esm server.ts

如果您更喜欢编译,请添加 tsconfig.json,编译 npx tsc,然后运行编译后的JS node.

服务器暴露了什么

工具(名称和输入形状):

  • trackPackage --输入:{trackingNumber:string}

    • 返回一个简单的文本响应,指示正在检查的跟踪号。
  • getWeather --输入:{城市:字符串}

    • 返回一个类似JSON的小负载 temp 和 forecast,或者在城市不受支持时出错。

资源(URI->内容):

  • flights://airports --支持的机场代码(JFK、LAX、ORD)的纯文本列表。
  • weather://cities --支持的城市(纽约、伦敦)的纯文本列表。

快速测试笔记

  • 跑步 npx ts-node-esm server.ts 将启动服务器并将其连接到stdio。使用MCP检查器(参见 npm start)在本地开发循环中驱动服务器。
  • 服务器将启动/调试行写入stderr(这些行在终端中可见)。

JSON有效载荷示例(供参考)

  • trackPackage输入:
{ "trackingNumber": "ABC123" }
  • getWeather输入:
{ "city": "London" }

故障排除

  • 如果 npx ts-node-esm server.ts 失败:安装 ts-node (dev依赖关系)或使用编译 tsc.
  • 如果 npm start 未显示检查器UI,请验证您是否有网络访问权限 npx 并且可以访问检查器包。

您可能想要的下一步

  • 添加a tsconfig.json 和一个短 dev 使用文件监视器运行服务器的脚本(例如。, ts-node-dev).
  • 为每个工具处理程序添加单元测试,并添加一个小型集成测试,该测试生成服务器并通过stdio发送MCP消息。
  • 添加将MCP客户端连接到此服务器的文档。

如果你愿意,我也可以:

  • 添加a tsconfig.json 和 dev 脚本(快速),或
  • 添加一个通过stdio与此服务器通信的示例客户端代码段。

此README已更新,以反映实际的项目文件(server.ts 和 package.json)并指出MCP入门文档是示例设计的来源。