Agentic MCP 服务器套件
使用说明(Markdown 格式)
-
项目简介
- 该仓库包含两组 MCP 服务器实现,分别位于 mcp-servers/serverless 与 mcp-servers/multimodel。它们实现了 MCP 协议的核心能力,通过 JSON-RPC 向 LLM 客户端提供工具清单、执行工具调用,以及在不同场景下渲染和返回相应信息的能力。
-
主要功能点
- serverless(服务器无服务器化工具)
- 发现服务器端的云函数:支持从 Supabase Edge Functions 和 Modal 应用中发现可用函数。
- 调用服务器函数:按名称调用相应函数,并返回执行结果及状态。
- multimodel(跨模型查询与嵌入)
- 支持对 OpenAI、Gemini、Voyage 等模型的并行查询、单模型查询与嵌入生成。
- API Key 获取策略:优先从 Vault(通过 Supabase RPC 获取)获取密钥,其次从环境变量读取。
- 提供并发查询结果的聚合输出,方便跨模型对比与分析。
- serverless(服务器无服务器化工具)
-
安装步骤
- 将仓库克隆到本地或工作区。
- 进入两个 MCP 服务目录并安装依赖:
- mcp-servers/multimodel: npm install
- mcp-servers/serverless: npm install
- 配置环境变量(示例键名,实际请使用自己的密钥和链接):
- OPENAI_API_KEY(OpenAI Key)
- GEMINI_API_KEY(Gemini Key)
- VOYAGE_API_KEY(Voyage Key)
- SUPABASE_URL、SUPABASE_SERVICE_ROLE_KEY(Supabase Vault 访问所需)
- 运行方式(开发/测试)
- 由于源码为 TypeScript,需将其编译为 JavaScript 后运行,或使用 ts-node 直接执行源码。示例方案包括:
- 使用 ts-node 直接运行 mcp-servers/multimodel/src/index.ts
- 将源码编译为 dist/index.js,再通过 node dist/index.js 启动
- 由于源码为 TypeScript,需将其编译为 JavaScript 后运行,或使用 ts-node 直接执行源码。示例方案包括:
- 启动后,服务器通过 STDIO 传输与 MCP 客户端通讯(符合 MCP 的 JSON-RPC 交互模式)。
-
服务器配置(MCP 客户端需要的启动信息) 配置示例(JSON,便于导入到 MCP 客户端,无需客户端代码) { "servers": [ { "server_name": "multimodel-mcp", "command": "node", "args": ["mcp-servers/multimodel/dist/index.js"], "transport": "stdio", "notes": "将 TypeScript 源码编译为 dist/index.js,或使用 ts-node 直接运行源文件" }, { "server_name": "serverless-mcp", "command": "node", "args": ["mcp-servers/serverless/dist/index.js"], "transport": "stdio", "notes": "将 TypeScript 源码编译为 dist/index.js,或使用 ts-node 直接运行源文件" } ] }
-
基本使用方法
- 使用 MCP 客户端对服务器进行工具查询(ListTools)与调用(CallTool):
- 先通过 ListTools 获取当前服务器支持的工具清单及输入结构。
- 再通过 CallTool 指定工具名称、所需参数进行调用,服务器将返回执行结果及状态信息。
- 常用场景:
- multimodel 服务器:执行并行查询、单模型查询、以及文本嵌入等操作,支持跨模型对比结果输出。
- serverless 服务器:发现并调用项目中的云函数(Supabase Edge Functions、Modal 应用)并查看调用结果。
- 使用 MCP 客户端对服务器进行工具查询(ListTools)与调用(CallTool):
-
注意事项
- 该实现依赖环境变量和外部服务(OpenAI、Gemini、Voyage、Supabase、Modal),请确保在运行前正确配置密钥与端点。
- TS 源码在生产环境需要被编译成 JS 后运行,或者通过 ts-node 等运行时编译器直接执行。