使用说明
项目简介
MCP API 网关是一个提供 HTTP 接口的后端应用,用于管理和访问 Model Context Protocol (MCP) 服务器。它解决了传统 MCP 服务器单用户和密钥管理不便的问题,通过安全存储和注入用户密钥、支持多用户访问以及提供简单的包管理功能,增强了 MCP 生态系统的安全性和可扩展性。它通过 HTTP 接收客户端请求,然后代理这些请求到实际运行的 MCP 服务器实例。
主要功能点
- 多用户支持: 允许多个用户使用同一个 MCP 服务器实例,每个用户拥有独立的密钥。
- 安全密钥管理: 用户敏感信息(如 API 密钥)加密存储在 MongoDB 数据库中。
- 用户专属密钥: 每个用户的密钥是隔离且独立加密的。
- 包管理: 简化 MCP 服务器软件包(npm 包)的安装、配置、升级和卸载。
- HTTP API: 提供简单易用的 RESTful API 接口来发现工具、调用工具以及管理 MCP 服务器和密钥。
- 容器化部署: 支持 Docker 和 Docker Compose 部署。
安装步骤
- 先决条件: 确保已安装 Node.js (版本 20 或更高) 和 MongoDB 数据库。您还需要准备想要通过此网关暴露的 MCP 服务器实现(通常是以 npm 包的形式)。
- 获取代码: 克隆此 GitHub 仓库到本地。 'git clone https://github.com/MissionSquad/mcp-api.git' 'cd mcp-api'
- 安装依赖: 进入仓库目录,运行 'yarn install' 或 'npm install'。
- 配置环境变量: 复制 'env.example' 文件为 '.env',并根据您的环境修改配置,特别是 MongoDB 连接信息和用于加密密钥的 'SECRETS_KEY'。确保 'SECRETS_KEY' 是一个随机且安全的字符串。
- 构建项目: 运行 'yarn build' 或 'npm run build'。
- 启动服务器: 运行 'yarn start' 或 'npm start'。也可以使用提供的 Docker Compose 文件进行容器化部署。
服务器配置 (对于连接到此网关的 MCP 服务器)
此网关通过管理外部进程来运行 MCP 服务器。您需要告诉网关如何启动这些服务器。这些配置通常通过调用网关的 '/mcp/servers' HTTP API 或使用包管理功能 '/packages/install' 来完成。
关键配置项包括:
- 'name': 为 MCP 服务器实例指定一个独一无二的名称,供网关内部和客户端调用时识别使用。
- 'command': 启动 MCP 服务器进程的命令行指令。例如,如果是 Node.js 应用,可能是 'node' 加上脚本路径。
- 'args': 启动命令所需的额外参数列表。
- 'env': 启动进程时需要设置的环境变量(注意不要在此处包含敏感密钥,应使用网关的密钥管理功能)。
- 'enabled': 控制该 MCP 服务器实例是否应在网关启动时自动运行。
例如,配置一个名为 "my-github-mcp" 的服务器,其启动命令是位于本地 'packages/mcp-github/node_modules/@missionsquad/mcp-github/build/index.js' 的 Node.js 脚本,参数是 '--port 3000':
{ "name": "my-github-mcp", "command": "node", "args": [ "./packages/mcp-github/node_modules/@missionsquad/mcp-github/build/index.js", "--port", "3000" ], "env": { "NODE_ENV": "production" }, "enabled": true }
请注意,通过 '/packages/install' 安装时,'command' 和 'args' 可能会自动从 npm 包的 'package.json' 中解析。
基本使用方法
启动网关后,您可以通过其 HTTP API 与其交互。
- 安装 MCP 服务器包: 使用 'POST /packages/install' 接口安装您需要的 MCP 服务器 npm 包,并为其指定一个内部 'serverName'。
- 设置用户密钥: 对于需要密钥的 MCP 服务器(如访问 GitHub API 的服务器),使用 'POST /secrets/set' 接口为特定用户和服务器存储加密密钥。
- 发现可用工具: 使用 'GET /mcp/tools' 接口查看所有已安装并启用 MCP 服务器提供的工具列表及其功能描述和参数要求。
- 调用工具: 使用 'POST /mcp/tool/call' 接口调用特定 MCP 服务器的工具。您需要提供 'serverName'、'methodName' 和 'args'。网关会自动为您选择的用户注入相应的密钥。
- 管理 MCP 服务器实例: 使用 '/mcp/servers' 相关的 GET, POST, PUT, DELETE 接口来查看、添加、更新或删除网关管理的 MCP 服务器实例。
- 管理软件包: 使用 '/packages' 相关的 GET, DELETE, PUT 接口来查看已安装包、卸载包、检查更新和执行升级。
信息
分类
网页与API