使用说明
构建mcp
你的API规格走了进来,一个MCP服务器走了出来。
构建mcp 将任何API规范转化为生产准备 主控程序 服务器在一个命令中。将其指向OpenAPI文件、Postman集合、HAR捕获或GraphQL模式,并获得一个具有语义搜索、调用前验证和智能响应修剪功能的完全工作的MCP服务器。
没有样板。无复制粘贴。没有意外收费。只是工具。
npx build-mcp convert ./stripe-openapi.yaml -o ./stripe-mcp
cd stripe-mcp && npm install && npm start
就是这样。您的代理现在可以搜索并调用整个Stripe API。
天真的API问题→ MCP转换
显而易见的方法——每个端点一个MCP工具——很快就会崩溃。
将代理连接到API,该API具有200个端点和200个工具模式,在代理请求任何内容之前登录到上下文中。将它连接到10个API,你就建立了一个上下文篝火。Cursor有一个40个工具的硬帽。一个繁忙的MCP服务器可以在您的代理打招呼之前吃掉您70%以上的上下文窗口。
build-mcp只生成2个工具,无论API大小:
| 工具 | 它做什么 |
|---|---|
search_docs |
对所有端点进行语义搜索——按需返回ID、安全徽章、参数类型和正文字段 |
call_api |
验证参数,然后按ID执行任何端点——返回修剪后的、代理可读的输出 |
代理首先搜索,得到它需要的东西,然后调用。无论API有10个端点还是10000个端点,上下文都保持干净。由于每个生成的服务器都有相同的两个工具名称,MCP客户端的名称空间是按服务器命名的——所以 stripe-api › search_docs 和 jira › search_docs 永远不要碰撞。
特性
语义搜索——在不知道端点名称的情况下找到正确的端点
每个端点都嵌入了 Qwen3-嵌入-0.6B 在转换时,将其存储在本地SQLite索引中。在运行时, search_docs 向量相似性搜索——所以“向客户收费”会找到 POST /v1/charges 即使代理不知道确切的端点名称。
不需要API密钥。完全在您的机器上运行。
安全分类——特工知道他们要做什么
每个端点都会在搜索结果中自动分类和标记:
| 徽章 | 含义 |
|---|---|
| (无) | 安全阅读——获取/头部/选项 |
[WRITE] |
状态突变——POST/PUT/PATCH |
⚠️ DESTRUCTIVE |
不可逆--删除、取消、撤销、清除、存档 |
💸 BILLABLE |
花费金钱或产生副作用——费用、付款、短信/电子邮件发送 |
特工在决定打什么电话之前会看到这些徽章。充电端点看起来永远不会与列表端点相同。
预调用验证-在错误到达API之前捕获错误
在任何HTTP请求离开机器之前, call_api 根据规范验证代理的参数:
- 缺少必需的参数→ 由于一个明显的英语错误而被拒绝
- 枚举值错误→ 列出有效选项
- 类型错误(预期为整数的字符串等)→ 立即抓住
没有浪费的API调用。没有神秘的400个调试响应。
智能响应修剪——大响应不会破坏上下文
API的反应可能是巨大的。生成的服务器会自动汇总:
- 分页列表 (
{ data: [...], has_more })--计数,第一项+最后一项,分页提示 - 顶级阵列 --计数和第一项,记录隐藏的数量
- 大型任意对象 --顶级密钥的结构摘要
- 8KB以下的任何内容 --原封不动地返回
适用于所有规范格式
| 格式 | 注释 |
|---|---|
| OpenAPI 3.x(JSON或YAML) | 完整的$ref解引用,处理条纹级规范 |
| Swagger 2.x(JSON或YAML) | 完全支持v2 |
| Postman Collection v2.1 | 任何文件扩展名,包括 .txt |
| HAR(HTTP存档) | 捕获的流量→ MCP服务器 |
| GraphQL Schema | 查询和突变成为工具 |
快速开始
# Install globally
npm install -g build-mcp
# Or just run with npx
npx build-mcp convert ./openapi.yaml -o ./my-api-mcp
# Preview what build-mcp sees before converting
build-mcp inspect ./openapi.yaml
# Convert with local embeddings (default — no API key needed)
build-mcp convert ./openapi.yaml -o ./my-api-mcp
# Convert from a remote spec URL
build-mcp convert https://petstore3.swagger.io/api/v3/openapi.json -o ./petstore-mcp
# Use OpenAI embeddings
build-mcp convert ./openapi.yaml -o ./my-api-mcp --embedding-provider openai
# Use Ollama
build-mcp convert ./openapi.yaml -o ./my-api-mcp --embedding-provider ollama
运行生成的服务器
cd my-api-mcp
npm install
cp .env.example .env # fill in your API credentials
npm start
将其添加到克劳德桌面
{
"mcpServers": {
"stripe-api": {
"command": "node",
"args": ["/path/to/stripe-mcp/node_modules/.bin/tsx", "/path/to/stripe-mcp/src/server.ts"]
}
}
}
让您的代理直接运行build mcp
build-mcp本身就是一个mcp服务器,因此AI代理可以转换规范而无需放到shell中。
{
"mcpServers": {
"build-mcp": {
"command": "npx",
"args": ["build-mcp", "mcp"]
}
}
}
暴露于代理的工具:
inspect_spec--解析规范并返回端点、身份验证和格式的摘要convert_spec--完全转换:解析→ 嵌入→ 索引→ generate,返回输出路径和所需的环境变量
用作图书馆
import { parseSpec, generateMcpServer } from 'build-mcp';
const spec = await parseSpec('./openapi.yaml');
const result = await generateMcpServer(spec, {
outputDir: './my-api-mcp',
// embeddingProvider: 'local' is the default — no API key needed
});
console.log(`Indexed ${result.endpointsIndexed} endpoints`);
console.log('Set these env vars:', result.envVars.map(v => v.name));
生成什么
my-api-mcp/
├── src/
│ └── server.ts # 2-tool MCP server (search_docs + call_api)
├── db/
│ └── api.sqlite # Pre-built semantic search index
├── .env.example # Required auth credentials
├── WORKFLOWS.md # Detected CRUD / paginated-list / search-act patterns
├── package.json
├── tsconfig.json
└── README.md
嵌入提供者
搜索是由向量相似性驱动的。三个提供者——默认情况下不需要安装任何东西。
本地--Qwen3-Embedded-0.6B(默认)
没有API密钥。没有外部服务。首次使用时下载约614MB,缓存到 ~/.cache/huggingface/。后续运行是即时的。
build-mcp convert ./spec.yaml -o ./output
# that's it — embeddings run locally
用途 onnx-community/Qwen3-Embedding-0.6B-ONNX 通过 @huggingface/transformers.1024 dim,q8量化,最后一个令牌池。
开放人工智能
export OPENAI_API_KEY=sk-...
build-mcp convert ./spec.yaml -o ./output --embedding-provider openai
奥拉玛
ollama pull nomic-embed-text
build-mcp convert ./spec.yaml -o ./output --embedding-provider ollama
贡献
早期——拉取请求、问题和想法都是受欢迎的。检查 问题 为了烹饪什么。
许可证
麻省理工学院
