Skip to main content
Glama

Custom Context MCP Server

by jiliangmason
MIT License
MIGRATION_SUMMARY.md3.6 kB
# 迁移总结:从Express到FastMCP ## 改造概述 成功将MCP服务器从Express框架迁移到FastMCP框架,完全移除了Express依赖,使用FastMCP内置的HTTP流传输和SSE支持。 ## 主要变化 ### 1. 架构简化 **之前(Express + MCP SDK)**: - Express服务器处理HTTP请求 - 自定义SSE实现 - 手动管理客户端连接 - 复杂的路由配置 **现在(FastMCP)**: - FastMCP内置HTTP流传输 - 自动SSE支持 - 简化的工具注册 - 内置健康检查 ### 2. 代码对比 #### 之前(Express版本) ```typescript // 复杂的Express服务器设置 class SSEServer { private clients: Map<string, SSEClient> = new Map(); private server: express.Application; // ... 大量自定义代码 } // 手动路由配置 this.server.get("/sse", (req, res) => { // 自定义SSE实现 }); // 手动工具注册 server.setRequestHandler(CallToolRequestSchema, async (request) => { // 复杂的请求处理 }); ``` #### 现在(FastMCP版本) ```typescript // 简洁的FastMCP配置 const mcp = new FastMCP({ name: MCP_SERVER_NAME, version: VERSION, health: { enabled: true }, ping: { enabled: true }, }); // 简单的工具注册 mcp.addTool({ name: TOOL_NAMES.groupTextByJson, parameters: GroupTextByJsonSchema, execute: async (args) => { // 直接的工具实现 }, }); ``` ### 3. 依赖变化 **移除的依赖**: - `express` - `cors` - `@types/express` - `@types/cors` **保留的依赖**: - `fastmcp`(新增) - `@modelcontextprotocol/sdk` - `zod` - `zod-to-json-schema` ### 4. 功能对比 | 功能 | Express版本 | FastMCP版本 | |------|-------------|-------------| | HTTP服务器 | 手动配置Express | FastMCP内置 | | SSE支持 | 自定义实现 | 内置支持 | | 健康检查 | 手动路由 | 自动配置 | | 工具注册 | 复杂的手动注册 | 简单的addTool | | 类型安全 | 部分支持 | 完整支持 | | 代码量 | ~200行 | ~80行 | ## 技术优势 ### 1. 代码简化 - 代码量减少60% - 更少的维护负担 - 更清晰的架构 ### 2. 更好的类型安全 - FastMCP提供完整的TypeScript支持 - 自动参数验证 - 编译时错误检查 ### 3. 内置功能 - 自动健康检查端点 - 内置ping机制 - 自动错误处理 - 标准化的MCP协议实现 ### 4. 更好的调试体验 - 与mcp-inspector完美集成 - 更清晰的日志输出 - 标准化的错误信息 ## 服务器端点 ### 新的端点配置 - **SSE端点**: `http://localhost:3005/sse` - **健康检查**: `http://localhost:3005/health` - **mcp-inspector**: `http://localhost:6274` ### 测试方法 ```bash # 启动开发服务器 pnpm run dev # 测试服务器 pnpm test # 生产部署 pnpm run build pnpm start ``` ## 调试指南 ### 使用mcp-inspector 1. 启动服务器:`pnpm run dev` 2. 访问:http://localhost:6274 3. 测试工具调用 ### 直接HTTP测试 ```bash # 健康检查 curl http://localhost:3005/health # SSE连接测试 curl -N http://localhost:3005/sse ``` ## 迁移收益 1. **开发效率提升**:更少的样板代码,更快的开发速度 2. **维护成本降低**:更少的依赖,更简单的架构 3. **功能增强**:更好的类型安全,更完整的MCP协议支持 4. **调试体验改善**:与mcp-inspector完美集成 5. **性能优化**:更高效的HTTP流传输 ## 总结 通过迁移到FastMCP框架,我们成功简化了MCP服务器的实现,同时保持了所有原有功能,并获得了更好的开发体验和更强的类型安全。这个改造为后续的功能扩展和维护奠定了良好的基础。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jiliangmason/custom-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server