Turn any REST API into an MCP server. No code required.
   ](https://www.npmjs.com/package/@apifold/transformer) ](https://nodejs.org)
APIFold读取OpenAPI 3.x或Swagger 2.x规范,并生成一个实时的、生产就绪的 主控程序 服务器端点。AI代理——Claude、Cursor、Copilot或任何兼容MCP的客户端——都可以立即连接。工具调用使用安全存储的凭据执行对真实上游API的真实HTTP请求。没有存根,没有模拟,没有胶水代码。
快速开始
CLI(最快)
npx apifold serve ./your-openapi-spec.yaml --base-url https://api.example.com一个命令。您的规范将成为一个运行中的MCP服务器,其上有SSE传输 localhost:3000.立即连接Claude或Cursor。
来自API注册表
npx apifold serve --registry stripe --base-url https://api.stripe.com附带8种预先配置的API规格:Stripe、GitHub、Slack、HubSpot、Twilio、OpenAI、Notion和Petstore。
托管平台
- 注册地址: apifold.dev
- 导入规范(URL、文件上传或浏览注册表)
- 将连接片段复制到Claude Desktop或Cursor中
- 您的MCP服务器使用唯一的端点URL运行
特性
- OpenAPI 3.x+Swagger 2.0 --自动透明地转换Swagger 2.0规格
- CLI工具 —
npx apifold serve用于零配置本地MCP服务器 - API注册表 -从8种精心策划的API规格中一键部署
- OAuth 2.0 --授权码(PKCE)、客户端凭据、8个提供者预设、自动令牌刷新
- 访问配置文件 --工具级权限(只读/读写/完全访问)
- 分析 --呼叫量、延迟百分比、错误细分、使用配额
- 自定义域名 --使用
mcp.yourcompany.com通过DNS验证 - 唯一端点ID --每台服务器的加密、不可访问的URL
- SSE+流式HTTP --支持两种MCP传输模式
- 保险库加密 --AES-256-GCM用于所有存储的凭据
- SSRF保护 --DNS固定、重定向阻止、私有IP拒绝
命令行界面
npm install -g @apifold/cli| 命令 | 描述 |
|---|---|
apifold serve | 从OpenAPI规范启动MCP服务器 |
apifold serve --registry stripe | 从注册表规范开始 |
apifold transform | 将MCP工具定义输出为JSON |
apifold validate | 仅解析带有警告的验证 |
apifold init [spec] | 生成一个 apifold.config.yaml 模板 |
配置文件
# apifold.config.yaml
spec: ./openapi/stripe.yaml
port: 3001
transport: sse
baseUrl: https://api.stripe.com
auth:
type: bearer
token: ${STRIPE_API_KEY}
filters:
tags: [payments, customers]
methods: [get, post]自我寄宿
发展
git clone https://github.com/Work90210/APIFold.git
cd APIFold
pnpm install
cp .env.example .env
docker compose -f infra/docker-compose.dev.yml up -d
pnpm dev打开 http://localhost:3000 访问仪表板。
生产
cp .env.example .env
# Edit .env with your production values
docker compose -f infra/docker-compose.yml up -d使用Transformer库
核心转换逻辑是一个独立的 麻省理工学院许可 npm包:
npm install @apifold/transformerimport { parseSpec, transformSpec, autoConvert } from "@apifold/transformer";
// Auto-convert Swagger 2.0 if needed
const { spec } = await autoConvert(rawSpec);
// Parse and transform
const parsed = parseSpec({ spec });
const { tools } = transformSpec({ spec: parsed.spec });
// tools = MCPToolDefinition[] ready for any MCP server建筑
graph LR
Spec["OpenAPI / Swagger\nSpec"] --> Transformer
subgraph MT["APIFold"]
Transformer["Transformer\n(MIT lib)"]
Transformer --> Runtime["Runtime\nExpress + SSE"]
Web["Web App\nNext.js"] --> DB["Postgres 16\nRedis 7"]
Runtime --> DB
CLI["CLI Tool\nnpx apifold"]
Registry["API Registry\n8 specs"]
end
Runtime --> Upstream["Upstream API\n(Stripe, GitHub, etc.)"]
Agent["AI Agent\nClaude, Cursor,\nCopilot, etc."] -- "MCP / SSE" --> Runtime| 组件 | 路径 | 描述 |
|---|---|---|
| 变压器 | OpenAPI到MCP的转换。纯粹的功能。 麻省理工学院许可。 | |
| 运行时 | apps/runtime | 使用SSE/HTTP、OAuth令牌刷新和访问配置文件来表示MCP服务器。 |
| 网页应用 | apps/web | Next.js仪表板。导入规格、管理凭据、分析、自定义域。 |
| 命令行界面 | apps/cli | 独立CLI工具。 npx apifold serve 用于本地MCP服务器。 |
| 注册表 | 通过一键部署,编制了8个经验证的API规范的目录。 | |
| 类型 | 共享TypeScript类型定义。 | |
| 用户界面 | 设计系统和组件库。 |
可用命令
| 命令 | 描述 |
|---|---|
pnpm dev | 通过热重新加载启动所有服务 |
pnpm build | 构建所有包 |
pnpm test | 运行测试 |
pnpm lint | 轻敲所有包裹 |
pnpm typecheck | 对所有包裹进行类型检查 |
pnpm format | 使用Prettier格式化所有文件 |
pnpm db:migrate | 运行数据库迁移 |
pnpm db:studio | 开放式Drizzle工作室 |
贡献
所有代码贡献都必须经过拉取请求,并在合并前获得批准。看 贡献指南.
要将API添加到注册表中吗?看 .
安全
有关安全问题,请参阅我们的 安全策略.不要将安全漏洞作为公共GitHub问题发布。
许可证
- 其他一切 — GNU Affero通用公共许可证v3.0
