如何在不编写 server 的情况下将内部 REST API 暴露为 MCP
何时使用: 你有公司的 REST API,希望 Claude/Cursor 能使用它,但不想构建定制的 MCP
前置条件
- Docker — docker.com/get-started
- API 的 OpenAPI/Swagger 规范(可选但有帮助) — 大多数内部 API 都已经有了
步骤
-
部署 Unladocker run -d --name unla -p 8080:80 -p 5234:5234 -p 5235:5235 ghcr.io/amoylab/unla/allinone:latest✓ 已复制→ Web UI 运行在 :8080
-
添加 YAML server 定义在 UI 中创建一个名为 'internal-api' 的 server,包含 /users (GET) 和 /orders (GET, POST) 端点,映射到 https://api.internal/v1✓ 已复制→ 工具出现:get_users、get_orders、create_order
-
指向客户端在 Claude Desktop 中添加 https://gateway.internal/mcp/internal-api✓ 已复制→ 新工具出现在客户端
结果: 在一小时内使内部 API 可被任何 MCP 客户端使用
注意事项
- 如果不受限制地映射敏感 header,会发生 Auth 泄露 — 使用 Unla 的 OAuth 预认证进行用户级别的控制;不要在 YAML 中硬编码 admin token
- Write endpoint 会暴露破坏性调用 — 将 POST/DELETE endpoint 标记为 'confirm',以便需要显式的用户批准