内容
# 🤖 OpenAPI MCP 服务器
[](https://asciinema.org/a/716593)
一款命令行工具,能够将任何 OpenAPI 服务转换为模型上下文协议(MCP)服务器,从而实现与支持 MCP 规范的 AI 代理和工具的无缝集成。
> [!NOTE]
> 该工具仍处于早期开发阶段。
> 发展路线图 [请参见这里](https://github.com/users/JacerOmri/projects/1/views/2)
## 什么是模型上下文协议(MCP)?
模型上下文协议(MCP)是一种标准化的协议,允许 AI 代理与外部工具和服务进行交互。它为 AI 模型提供了一种一致的方式来发现、理解和利用各种能力,通过一个统一的接口,使得构建可以与多个服务交互的 AI 驱动应用程序变得更加容易。
## 什么是 OpenAPI?
OpenAPI(前身为 Swagger)是一种机器可读的接口文件规范,用于描述、生成、消费和可视化 RESTful 网络服务。它允许人类和计算机在无需访问源代码或额外文档的情况下,发现和理解服务的 capaiblities。
## 关于本项目
该中间件充当 OpenAPI 服务和 MCP 客户端之间的桥梁。它:
1. 以 OpenAPI 规范文件作为输入
2. 自动生成一个符合 MCP 规范的服务器
3. 将传入的请求代理到实际的 OpenAPI 服务
4. 在 MCP 和 REST 约定之间进行转换
这使得任何具有 OpenAPI 规范的现有 REST API 都可以立即被理解 MCP 的 AI 代理访问,而无需对原始服务进行任何修改。
## 安装
```sh
npm install -g openapi-mcp-proxy
```
## 使用
```sh
npx openapi-mcp-proxy --spec ./path/to/openapi.yml --target http://your-api.com --port 3000
```
### 选项
- `-s, --spec <path>`(必填):OpenAPI 规范文件的路径(环境变量:`OMP_OPENAPI_SPEC_FILE`)
- `-t, --target <url>`(可选):API 服务的目标 URL(默认值:`http://localhost:8080`,环境变量:`OMP_TARGET_BASE_URL`)
- `-p, --port <number>`(可选):运行 MCP 服务器的端口(默认值:`3000`,环境变量:`PORT`)
- `-V, --version`:显示版本号
- `-h, --help`:显示命令帮助
### 示例
为 Petstore API 启动一个 MCP 服务器
```sh
npx openapi-mcp-proxy --spec resources/petstore.openapi.yml --target https://petstore.swagger.io/v2
```
### 测试
#### MCP 检测工具
要测试您的 MCP 服务器,可以使用模型上下文协议:
1. 安装 MCP 检测工具:
```sh
npx @modelcontextprotocol/inspector
```
2. 启动您的 MCP 服务器
3. 导航到检测工具的 UI 并填写正确的服务器路径 **以 `/mcp` 结尾**,例如:
`http://localhost:3000/mcp`
4. 现在,您可以与您的 MCP 服务器交互。MCP 检测工具将为您显示有关请求和响应的详细信息。
#### 在 VS Code 中
在 VS Code 的内置代理模式下使用此工具更加方便:
1. 打开 VS Code 并启用代理模式:
- 按 `Cmd/Ctrl + Shift + P`
- 输入 "Toggle GitHub Copilot Agent Mode"
- 选择 "Enable"
2. 添加您的 MCP 服务器:
- 按 `Cmd/Ctrl + Shift + P`
- 输入 "MCP: add Server"
- 输入您的 MCP 服务器 URL,例如 `http://localhost:3000/mcp` **以 `/mcp` 结尾**
3. GitHub Copilot 聊天应该会识别新的工具
4. 现在,您可以通过 VS Code 的代理界面与您的 MCP 服务器交互。尝试询问它 "how many pets are available right now?"
有关如何在 VS Code 中使用 MCP 服务器的更多信息,[请参见此处](https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_use-mcp-tools-in-agent-mode)
## 贡献
欢迎贡献!请随时提交拉取请求。
发展路线图 [请参见这里](https://github.com/users/JacerOmri/projects/1/views/2)
## 许可证
MIT