内容
# mcpify
**一键将任何REST API转换为MCP服务器。** 将 `mcpify` 指向OpenAPI规范,每個端点都成为您的AI代理(例如Claude、Cursor、Windsurf)可以调用的工具 - 无需编写胶水代码,也无需为每个端点编写包装器。
```bash
mcpify https://api.example.com/openapi.json
```
就是这样。规范中的每个操作现在都是一个实时MCP工具。
## 为什么
[MCP](https://modelcontextprotocol.io) 是AI代理调用真实工具的方式。但是,将现有的API连接到MCP意味着为每个端点手动编写工具包装器 - 这很繁琐,并且在API更改时就会过时。几乎每个API都已经发布了 **OpenAPI规范**。`mcpify` 读取该规范并在运行时生成整个MCP服务器,因此:
- **零个端点代码** - N个端点 → N个工具,自动生成。
- **始终保持同步** - 从规范中重新生成;无需维护包装器。
- **认证感知** - 传递一次API密钥/承载令牌,应用于每个调用。
## 安装
```bash
pipx install mcpify-cli # 或: uvx mcpify-cli ...
```
## 使用
预览规范生成的工具(无服务器):
```bash
mcpify --list examples/petstore-mini.yaml
```
将其作为MCP服务器运行(标准输入/输出):
```bash
mcpify https://petstore3.swagger.io/api/v3/openapi.json
mcpify ./openapi.yaml --base-url https://staging.internal.api
mcpify ./openapi.yaml --auth "Authorization: Bearer $TOKEN" # 或设置 MCPIFY_AUTH
```
### 连接到Claude
将以下内容添加到您的MCP客户端配置文件(Claude Desktop / Claude Code `mcp.json`):
```json
{
"mcpServers": {
"petstore": {
"command": "mcpify",
"args": ["https://petstore3.swagger.io/api/v3/openapi.json"]
}
}
}
```
重启客户端并询问: *"列出可用的宠物"* - Claude直接调用API。
## 工作原理
1. 加载OpenAPI 3.x文档(URL或文件,JSON或YAML)。
2. 将每个路径/方法遍历到一个 `Operation`,并生成一个JSON输入模式。
3. 通过MCP提供它们;每个工具调用都映射到一个实时的HTTP请求(处理路径、查询、头部参数和JSON正文)并将响应返回给代理。
## 支持的功能
- OpenAPI 3.x,JSON或YAML,来自URL或本地文件
- `GET` / `POST` / `PUT` / `PATCH` / `DELETE`
- 路径、查询和头部参数;JSON请求正文
- 一个全局身份验证头部(API密钥或承载令牌)
## 路线图
- 按操作过滤( `--only` , `--tag` )以公开大型API的子集
- `$ref` 解析以获取完全展开的正文模式
- Swagger 2.0 规范
- SSE / HTTP 传输除了标准输入/输出
欢迎提交PR。
## 许可证
MIT