MCP OpenAPI浏览器
一个模型上下文协议(MCP)服务器,分析OpenAPI规范并提供与API交互的上下文。
特性
- 从各种来源(GitHub、本地文件、HTTP URL)加载OpenAPI规范
- 分析并提供关于API端点的全面上下文
- 通过stdin/stdout支持模型上下文协议(MCP)
- 向LLM提供有关API交互的智能上下文
- 支持JSON和YAML OpenAPI规范
- 使用Cobra CLI构建,便于命令行使用
- 使用Zap进行结构化日志记录
入门指南
先决条件
- 转到1.24.2或更高版本
- Docker(可选)
安装
- 克隆存储库:
git clone https://github.com/krypticlabs/mcp-openapi-explorer.git
cd mcp-openapi-explorer- 安装依赖项:
go mod download- 构建:
go build配置
MCP OpenAPI Explorer可以使用YAML配置文件进行配置。您可以使用以下命令导出默认配置文件:
./mcp-openapi-explorer config export config.yaml然后,修改配置文件以满足您的需求,并使用以下命令运行服务器:
./mcp-openapi-explorer --config config.yaml serve创建GitHub令牌
如果你需要访问私有GitHub存储库,或者想在从GitHub加载OpenAPI规范时避免速率限制,你需要一个GitHub令牌:
- 首选
- 选择 开发人员设置 从左侧边栏
- 选择 个人访问令牌 → 细粒度代币
- 点击 生成新令牌 → 生成新令牌
- 为您的令牌提供描述性名称和描述
- 存储库访问: 仅选择存储库
- 然后选择要授予此PAT访问权限的存储库
- 权限:
- 唯一需要的权限是 内容 许可和 只读的 访问
- 点击 生成令牌
- 复制令牌(您将无法再次看到它!)
将此令牌添加到配置文件中或通过环境变量提供 MCP_OPENAPI_GITHUB_TOKEN.
配置MCP客户端
您可以通过将MCP OpenAPI Explorer添加到MCP客户端配置中,将其与MCP客户端集成。这允许客户端自动启动并与MCP服务器通信。
下载二进制文件
从以下网址下载适用于您平台的二进制文件 页面。
MCP客户端配置
将MCP OpenAPI Explorer添加到MCP客户端配置文件中(通常 ~/.mcp/config.json 或类似):
{
"mcpServers": {
"openapi-explorer": {
"command": "/path/to/mcp-openapi-explorer",
"args": ["serve", "--config", "~/.mcp-openapi.yaml"]
}
}
}替换 /path/to/mcp-openapi-explorer 使用系统上二进制文件的实际路径。这 environment 部分是可选的,可用于为MCP服务器设置环境变量。
MCP使用
MCP服务器通过stdin/stdout运行,这是与LLM集成的首选方法。这避免了网络复杂性,并且与各种LLM集成配合良好。
启动服务器
./mcp-openapi-explorer serve选项:
-v, --verbose-启用详细输出-c, --config string-配置文件的路径
GitHub存储库支持
您可以直接从GitHub存储库加载OpenAPI规范,包括带有令牌的私有存储库:
specs:
- "@github.com/yourOrg/yourRepo/blob/main/pathToSpec.json|yaml"可用的MCP工具
MCP服务器公开了以下工具:
get_api_info
从加载的OpenAPI规范中获取有关API端点的全面信息。
参数:
query(字符串,必需):查询API端点(例如“如何创建新用户?”、“哪些端点可用于宠物管理?”)
load_api_spec
从URL或文件路径加载OpenAPI规范。
参数:
url(string,必填):OpenAPI规范的URL或文件路径。支持:
- HTTP/HTTPS URLs(例如:https://petstore3.swagger.io/api/v3/openapi.json “) - 带有“@”前缀的GitHub URL(例如,“@GitHub.com/org/repo/blob/main/api.yaml”) - 本地文件路径(例如,'file:///path/to/spec.json'或只是'/path/to/spec.json') - 支持JSON和YAML格式
当使用指定的配置文件加载新的API规范时,规范URL将自动添加到配置文件的 specs 坚持列表。
list_api_specs
列出所有加载的OpenAPI规范。
delete_api_spec
删除已加载的OpenAPI规范。
参数:
spec_id(字符串,必需):要删除的API规范的ID(使用list_API_specs查看可用规范)
删除具有指定配置文件的API规范时,规范URL将自动从配置文件的 specs 坚持列表。
refresh_api_spec
通过从源代码重新下载一个或多个OpenAPI规范来刷新它们。
参数:
spec_id(字符串,可选):要刷新的API规范的ID。如果没有提供,所有加载的规格都将被刷新。
获取有关API终结点的信息
echo '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"get_api_info","arguments":{"query":"How do I find pets by status?"}}}' | ./mcp-openapi-explorer serve删除已加载的API规范
echo '{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"delete_api_spec","arguments":{"spec_id":"Swagger Petstore - OpenAPI 3.0"}}}' | ./mcp-openapi-explorer serve刷新所有加载的API规范
echo '{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"refresh_api_spec","arguments":{}}}' | ./mcp-openapi-explorer serve刷新特定的API规范
echo '{"jsonrpc":"2.0","id":8,"method":"tools/call","params":{"name":"refresh_api_spec","arguments":{"spec_id":"Swagger Petstore - OpenAPI 3.0"}}}' | ./mcp-openapi-explorer serve运作原理
- 用户将OpenAPI规范加载到服务器中(在配置文件中配置)
- 服务器解析并存储这些规范(支持JSON和YAML格式)
- 当用户询问API端点时,服务器会提供关于所有可用端点的全面上下文
- LLM使用此上下文来准确回答用户查询
码头工人
docker build -t mcp-openapi-explorer .
# Run the server with input from stdin
docker run -i mcp-openapi-explorer serve < your-jsonrpc-request.json
# Run the server with a configuration file
docker run -i -v $(pwd)/config.yaml:/app/config.yaml mcp-openapi-explorer --config /app/config.yaml serve许可证
麻省理工学院
