typescript-mcp-server-generator

typescript-mcp-server-generator

热门

使用 TypeScript 生成一个完整的 MCP 服务器项目,包含工具、资源和正确的配置

3.6万Star
0Fork
更新于 2026/7/11
SKILL.md
readonly只读
name
typescript-mcp-server-generator
description

使用 TypeScript 生成一个完整的 MCP 服务器项目,包含工具、资源和正确的配置

生成 TypeScript MCP 服务器

根据以下规范创建一个完整的模型上下文协议(MCP)TypeScript 服务器:

要求

  1. 项目结构:创建一个新的 TypeScript/Node.js 项目,具有正确的目录结构
  2. NPM 包:包含 @modelcontextprotocol/sdk、zod@3,以及 express(用于 HTTP)或 stdio 支持
  3. TypeScript 配置:正确的 tsconfig.json,支持 ES 模块
  4. 服务器类型:选择基于 HTTP(使用 Streamable HTTP 传输)或 stdio 的服务器
  5. 工具:创建至少一个有用的工具,具有正确的模式验证
  6. 错误处理:包含全面的错误处理和验证

实现细节

项目设置

  • 使用 npm init 初始化并创建 package.json
  • 安装依赖:@modelcontextprotocol/sdkzod@3 以及传输相关的包
  • 配置 TypeScript 支持 ES 模块:在 package.json 中添加 "type": "module"
  • 添加开发依赖:tsxts-node 用于开发
  • 创建正确的 .gitignore 文件

服务器配置

  • 使用 McpServer 类进行高级实现
  • 设置服务器名称和版本
  • 选择合适的传输方式(StreamableHTTPServerTransport 或 StdioServerTransport)
  • 对于 HTTP:使用 Express 设置,包含正确的中间件和错误处理
  • 对于 stdio:直接使用 StdioServerTransport

工具实现

  • 使用 registerTool() 方法,并赋予描述性名称
  • 使用 zod 定义输入和输出验证的模式
  • 提供清晰的 titledescription 字段
  • 在结果中返回 contentstructuredContent
  • 使用 try-catch 块实现正确的错误处理
  • 在适当的地方支持异步操作

资源/提示设置(可选)

  • 使用 registerResource() 添加资源,结合 ResourceTemplate 实现动态 URI
  • 使用 registerPrompt() 添加提示,并带有参数模式
  • 考虑添加补全支持以改善用户体验

代码质量

  • 使用 TypeScript 确保类型安全
  • 一致地遵循 async/await 模式
  • 在传输关闭事件上实现正确的清理
  • 使用环境变量进行配置
  • 为复杂逻辑添加内联注释
  • 代码结构清晰,关注点分离

可考虑的工具类型示例

  • 数据处理和转换
  • 外部 API 集成
  • 文件系统操作(读取、搜索、分析)
  • 数据库查询
  • 文本分析或摘要(带采样)
  • 系统信息检索

配置选项

  • 对于 HTTP 服务器

    • 通过环境变量配置端口
    • 为浏览器客户端设置 CORS
    • 会话管理(无状态 vs 有状态)
    • 本地服务器的 DNS 重新绑定保护
  • 对于 stdio 服务器

    • 正确的 stdin/stdout 处理
    • 基于环境的配置
    • 进程生命周期管理

测试指南

  • 解释如何运行服务器(npm startnpx tsx server.ts
  • 提供 MCP Inspector 命令:npx @modelcontextprotocol/inspector
  • 对于 HTTP 服务器,包含连接 URL:http://localhost:PORT/mcp
  • 包含示例工具调用
  • 添加常见问题的故障排除提示

其他可考虑的功能

  • 为 LLM 驱动的工具提供采样支持
  • 为交互式工作流提供用户输入引导
  • 动态工具注册,支持启用/禁用功能
  • 批量更新的通知去抖
  • 用于高效数据引用的资源链接

生成一个完整的、生产就绪的 MCP 服务器,包含全面的文档、类型安全和错误处理。