SKILL.md
readonly只读
name
typescript-mcp-server-generator
description
使用 TypeScript 生成一个完整的 MCP 服务器项目,包含工具、资源和正确的配置
生成 TypeScript MCP 服务器
根据以下规范创建一个完整的模型上下文协议(MCP)TypeScript 服务器:
要求
- 项目结构:创建一个新的 TypeScript/Node.js 项目,具有正确的目录结构
- NPM 包:包含 @modelcontextprotocol/sdk、zod@3,以及 express(用于 HTTP)或 stdio 支持
- TypeScript 配置:正确的 tsconfig.json,支持 ES 模块
- 服务器类型:选择基于 HTTP(使用 Streamable HTTP 传输)或 stdio 的服务器
- 工具:创建至少一个有用的工具,具有正确的模式验证
- 错误处理:包含全面的错误处理和验证
实现细节
项目设置
- 使用
npm init初始化并创建 package.json - 安装依赖:
@modelcontextprotocol/sdk、zod@3以及传输相关的包 - 配置 TypeScript 支持 ES 模块:在 package.json 中添加
"type": "module" - 添加开发依赖:
tsx或ts-node用于开发 - 创建正确的 .gitignore 文件
服务器配置
- 使用
McpServer类进行高级实现 - 设置服务器名称和版本
- 选择合适的传输方式(StreamableHTTPServerTransport 或 StdioServerTransport)
- 对于 HTTP:使用 Express 设置,包含正确的中间件和错误处理
- 对于 stdio:直接使用 StdioServerTransport
工具实现
- 使用
registerTool()方法,并赋予描述性名称 - 使用 zod 定义输入和输出验证的模式
- 提供清晰的
title和description字段 - 在结果中返回
content和structuredContent - 使用 try-catch 块实现正确的错误处理
- 在适当的地方支持异步操作
资源/提示设置(可选)
- 使用
registerResource()添加资源,结合 ResourceTemplate 实现动态 URI - 使用
registerPrompt()添加提示,并带有参数模式 - 考虑添加补全支持以改善用户体验
代码质量
- 使用 TypeScript 确保类型安全
- 一致地遵循 async/await 模式
- 在传输关闭事件上实现正确的清理
- 使用环境变量进行配置
- 为复杂逻辑添加内联注释
- 代码结构清晰,关注点分离
可考虑的工具类型示例
- 数据处理和转换
- 外部 API 集成
- 文件系统操作(读取、搜索、分析)
- 数据库查询
- 文本分析或摘要(带采样)
- 系统信息检索
配置选项
-
对于 HTTP 服务器:
- 通过环境变量配置端口
- 为浏览器客户端设置 CORS
- 会话管理(无状态 vs 有状态)
- 本地服务器的 DNS 重新绑定保护
-
对于 stdio 服务器:
- 正确的 stdin/stdout 处理
- 基于环境的配置
- 进程生命周期管理
测试指南
- 解释如何运行服务器(
npm start或npx tsx server.ts) - 提供 MCP Inspector 命令:
npx @modelcontextprotocol/inspector - 对于 HTTP 服务器,包含连接 URL:
http://localhost:PORT/mcp - 包含示例工具调用
- 添加常见问题的故障排除提示
其他可考虑的功能
- 为 LLM 驱动的工具提供采样支持
- 为交互式工作流提供用户输入引导
- 动态工具注册,支持启用/禁用功能
- 批量更新的通知去抖
- 用于高效数据引用的资源链接
生成一个完整的、生产就绪的 MCP 服务器,包含全面的文档、类型安全和错误处理。






