mcpField
M
MCP API Translator

MCP API Translator

本地服务
github.com开发工具12 周前更新

关于 MCP API Translator

MCP API Translator 面向需要将 OpenAPI 或 Postman 定义转为可运行 MCP 服务的开发者,也可通过实时代理公开 API。它支持筛选和合并工具,并生成可编辑、可自托管的项目。

主要功能

  1. 01预览并筛选拟生成的工具
  2. 02生成 TypeScript 或 Python 项目
  3. 03向现有服务追加 API
  4. 04通过运行时代理提供 API
  5. 05支持 OpenAPI 和 Postman 输入

适用场景

  1. 01生成前筛选相关端点
  2. 02将多个 API 定义合并为一个服务
  3. 03创建可编辑并可自托管的服务
  4. 04无需生成代码即可临时公开 API

MCP 相关

它提供 MCP 工具,用于分析 API 规范、生成和扩展 MCP 服务项目,以及实时提供 API。生成的服务会将 API 操作作为工具暴露给 MCP 客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"krishgok-mcp-api-translator": {
"command": "npx",
"args": [
"-y",
"mcp-api-translator"
]
}
}
}
启动命令npx -y mcp-api-translator

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-api-translator0.4.1

工具

4

收录的工具列表 · 更新于 3 周前

参数类型必填说明
specstring否内联规范文本(OpenAPI 或 Postman;JSON 或 YAML)。
formatenum否强制指定格式;默认自动检测。openapi | postman | auto
methodsarray否仅保留这些 HTTP 方法,例如 [GET, POST]。
pathGlobstring否仅保留匹配的路径,例如 "/v1/**"。
specPathstring否本地规范文件的路径(JSON 或 YAML)。
includeTagsarray否仅保留带有这些标签的操作。
excludeOperationsarray否按 operationId、工具名称或标签排除操作。

详细介绍

mcp-api-translator

npm CI License: AGPL-3.0 Commercial license available MCP mcp-api-translator MCP server – quality and maintenance score on Glama

一个用于生成 MCP 服务的 MCP 服务。 提供 API 定义——OpenAPI 3.0/3.1 或 Postman 集合——即可为该 API 搭建一个完整、可运行、由你掌控 的 TypeScript 或 Python MCP 服务。

整理一个规范,合并第二个规范,运行生成的服务,并让 Agent 调用它

上图:将 Firecrawl 的 20 个操作精简到 6 个,将 Gmail API 添加到同一个服务中,然后由 Agent 调用可自托管的结果。计数、工具名称和路径来自针对已发布的 Firecrawl 和 Gmail 描述的实际运行;API 响应仅作示例——录制过程使用本地存根,而非在线 Firecrawl 或 Gmail 账号。

为什么不采用一对一生成器

将 OpenAPI 规范转换为 MCP“工具存根”并不新鲜——FastMCP 的 from_openapi、Speakeasy/Gram 以及多个 openapi-mcp-generator 项目早已实现了机械化转换。简单的端点→工具生成器并无真正优势。本项目专注于这些工具所忽略的部分:

1. 筛选,而不只是生成。 一个有 200 个端点的 API,简单生成就会变成 200 个工具,这会严重损害模型选择工具的准确性,并耗尽上下文。analyze_spec 会在写入任何内容前预览工具列表;每条命令都支持 includeTags / methods / pathGlob / excludeOperations,当服务的工具数量超过 40 个时还会发出警告。

2. 通过追加来聚合。 extend_mcp_server 会将另一个 API 的工具添加到现有项目中,因此你可以构建一个横跨 Firecrawl、Gmail 和内部 API 的 MCP 服务。凭据彼此独立:每个 API 也会读取根据其标题生成的命名空间环境变量。

3. 由你拥有的产物。 输出是一个普通项目,而不是托管的黑盒——包含易于阅读的逐工具文件、基于环境变量的身份验证、Dockerfile、server.json,以及用于发布到官方 MCP 注册表的客户端代码片段。

如果你只需要临时在内存中暴露一个 API,并不关心是否拥有代码,那么 FastMCP 的运行时模式可能更适合你——这是本项目有意不支持的目标。

安装

无需安装步骤。npx 会获取并运行最新发布版本——跨平台,要求 Node 20+。

Claude Code

Claude Code 不会读取 claude_desktop_config.json——它使用自己的 MCP 配置:

claude mcp add api-translator -- npx -y mcp-api-translator

这会将其注册到 local 作用域。使用 -s user 可应用于所有项目,或提交项目作用域的 .mcp.json 以便共享。使用 claude mcp list 验证。

Claude Desktop

添加到 claude_desktop_config.json(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "api-translator": {
      "command": "npx",
      "args": ["-y", "mcp-api-translator"]
    }
  }
}
Cursor、Cline、Continue.dev、Docker

Cursor — ~/.cursor/mcp.json(或项目范围的 .cursor/mcp.json),与上方 Claude Desktop 相同的 mcpServers 结构。

Cline(VS Code) — 侧边栏 → MCP Servers → Configure,使用相同结构,并添加 "disabled": false。

Continue.dev — ~/.continue/config.json,位于 experimental.modelContextProtocolServers 下,作为 { transport: { type: "stdio", command, args } } 条目。

Docker(无需 Node):

{
  "mcpServers": {
    "api-translator": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "ghcr.io/krishgok/mcp-api-translator:latest"]
    }
  }
}

若要从磁盘读取规范或将项目写入主机路径,请使用 -v ${PWD}:/workspace 挂载目录,并将 /workspace/... 作为 specPath / outputDir 传入。

MCP 配置会在启动时读取,因此请重启客户端——退出并重新打开 Claude Desktop、Cursor 等, 或在 Claude Code 中启动新会话。

四种工具

工具功能
analyze_spec解析规范并预览将生成的工具——不会写入文件。
generate_mcp_server在 outputDir 中生成完整的 MCP 服务项目。
extend_mcp_server将另一份规范中的工具追加到现有项目中(幂等)。
list_supported_features报告支持的格式、身份验证方案、传输方式和限制。

所有规范输入都支持内联文本(spec)或本地路径(specPath),格式可为 JSON 或 YAML。

用法

你无需手动调用这些工具,只需向 Agent 提出要求,由它来驱动这些工具。

1. 预览,然后筛选。 在写入任何内容前,查看规范会生成什么:

“分析 ./petstore.yaml,并展示建议生成的工具。” “只要 /pets 下的 GET 端点。”

analyze_spec({ specPath: "./petstore.yaml" });
// → proposed tool list, auth scheme, and the env vars the server will need

analyze_spec({ specPath: "./petstore.yaml", methods: ["GET"], pathGlob: "/pets/**" });
// also: includeTags: ["pets"], excludeOperations: ["deletePet"]

2. 生成,使用相同的筛选条件,并指定输出目录:

generate_mcp_server({ specPath: "./petstore.yaml", outputDir: "./petstore-mcp" });
// options: language: "python", transport: "http", auth: {...}, force: true

3. 聚合——向同一服务添加更多 API:

// any second API — the sources don't have to share a format or a vendor
extend_mcp_server({
  projectDir: "./petstore-mcp",
  specPath: "./billing.postman.json",
  includeTags: ["invoices"],
});
// idempotent; hand-edited tool files are preserved

聚合的 API 不共用凭据:每个 API 还会先读取带命名空间的环境变量 (<NAMESPACE>_API_BASE_URL、<NAMESPACE>_API_KEY 等,命名空间根据 API 标题生成), 然后才回退到不带命名空间的变量。扩展摘要和 .env.example 会列出确切的变量名。

4. 运行。 输出是一个归你所有的常规项目:

cd petstore-mcp && npm install && npm run build
cp .env.example .env   # set API_BASE_URL + credentials (never embedded in code)
npm start

使用生成的 client-config.md 将其注册到客户端,然后你的 Agent 就能直接调用这些 API。

包含示例输出和故障排除的完整演练: docs/usage-workflow.md。

生成,或服务

  • 生成可由你掌控的代码:如果你想要一个可以手动编辑、可自托管并归你所有的项目,可使用 TypeScript(默认)或 Python(language: "python")。

  • 服务实时运行时代理:如果你只想立即向 Agent 暴露 API,而不想构建或维护生成的文件:

    mcp-api-translator serve --spec ./api.yaml
    mcp-api-translator serve --spec ./a.yaml --spec ./b.yaml --methods GET,POST   # aggregate
    

serve 运行与生成器输出相同的请求计划和基于环境变量的身份验证,因此行为与生成的输出完全一致——只是跳过了代码生成步骤。它默认使用 stdio,也支持无状态的 Streamable HTTP(使用 --transport http --port 3000)。容器中会在 stderr 输出结构化 JSON 行日志,在 TTY 中则输出易读文本(LOG_LEVEL、LOG_FORMAT)。

文档

文档内容
usage-workflow.md端到端操作指南、整理循环、身份验证设置和故障排除。
design.md技术栈、生成的项目布局、限制和安全模型。
deploy-serve.mdserve 的 Docker/compose 配置示例、日志记录和可观测性。
serve-api-proposal.md运行时代理的设计和路线图。
market-analysis.md为什么同时提供 generate 和 serve 模式。
CONTRIBUTING.md开发环境设置、PR 规范和 DCO 签署。

已知限制一览:

  • 输入: OpenAPI 3.0/3.1 和 Postman v2.1(尽力支持 Swagger 2.0)。不支持 GraphQL 和 gRPC。
  • 身份验证: 对于支持的 OpenAPI/Postman API,目前尚无交互式 OAuth 授权流程; 计划在 R6 中实现。
  • 响应: 不支持上游流式传输或自动分页。
  • 输出质量取决于规范质量。

详情和安全模型请参阅:docs/design.md。

开发

npm install
npm test          # unit + integration (parsers, curation, emit, append)
npm run typecheck
npm run build
npm run e2e       # generate a sample project from the fixtures into build/e2e-out

欢迎贡献——请参阅 CONTRIBUTING.md。所有提交都必须按照 Developer Certificate of Origin 的要求进行签署(git commit -s)。

许可证

mcp-api-translator 采用双重许可——© 2026 krishgok。完整详情请参阅 LICENSING.md。

  • 开源: GNU AGPL-3.0-or-later。将修改后的版本作为网络服务运行,必须向用户提供该版本的完整源代码。
  • 商业用途: 可单独获取许可证,以便在专有产品中嵌入而不受 AGPL 义务约束。
  • 生成的输出归你所有。 此工具生成的项目受生成输出例外条款保护,不受 AGPL 约束。

重新分发时必须保留 LICENSE 和 NOTICE。未经事先书面许可,这些许可证不 授予使用 “mcp-api-translator” 名称为分叉或衍生作品背书或推广的权利。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。