此应用程序基于其OpenAPI模式将任何REST API暴露为MCP(模型上下文协议)服务器。它自动从OpenAPI操作生成MCP工具,并全面支持OpenAPI 3.0+。
npm install
npm run build
npm start -- --schema <openapi模式文件路径> [选项]
-s, --schema <路径> - OpenAPI模式文件路径(JSON或YAML)[必需]-b, --base-url <URL> - 覆盖模式中的基础URL-h, --headers <头部> - 作为JSON字符串的附加头部-u, --username <用户名> - 基本认证的用户名-p, --password <密码> - 基本认证的密码# 基本用法,使用本地模式文件
npm start -- --schema ./api-schema.yaml
# 覆盖基础URL
npm start -- --schema ./api-schema.json --base-url https://api.example.com
# 添加认证头部
npm start -- --schema ./api-schema.yaml --headers '{"Authorization": "Bearer your-token"}'
# 使用基本认证
npm start -- --schema ./api-schema.yaml --username myuser --password mypass
# 结合基本认证与自定义基础URL
npm start -- --schema ./api-schema.yaml --base-url https://api.example.com --username admin --password secret123
服务器通过命令行参数提供的用户名和密码支持HTTP基本认证:
npm start -- --schema ./api-schema.yaml --username myuser --password mypassword
当提供基本认证凭据时:
Authorization: Basic <编码>头部中您还可以使用--headers选项提供额外头部(包括自定义认证):
npm start -- --schema ./api-schema.yaml --headers '{"Authorization": "Bearer token", "X-API-Key": "key123"}'
注意:基本认证(--username/--password)和额外头部可以一起使用。如果两者都包含授权头部,则额外头部优先。
要将此MCP服务器与Claude Desktop一起使用,需要将其添加到您的Claude Desktop配置文件中。
配置文件位于:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json构建服务器(如果尚未构建):
npm install
npm run build
打开或创建Claude Desktop配置文件,位于上述位置。
添加MCP服务器配置:
{
"mcpServers": {
"openapi-server": {
"command": "node",
"args": [
"/path/to/your/openapi-mcp-server/dist/index.js",
"--schema",
"/path/to/your/openapi-schema.yaml"
]
}
}
}
替换路径为实际路径:
/path/to/your/openapi-mcp-server/替换为您克隆/下载该项目的实际路径/path/to/your/openapi-schema.yaml替换为您的OpenAPI模式文件的实际路径这里是一些示例配置,展示了不同的认证方法:
{
"mcpServers": {
"secure-api": {
"command": "node",
"args": [
"/Users/username/projects/openapi-mcp-server/dist/index.js",
"--schema",
"/Users/username/projects/openapi-mcp-server/api-schema.yaml",
"--username",
"apiuser",
"--password",
"secret123"
]
}
}
}
{
"mcpServers": {
"xmpt-api": {
"command": "node",
"args": [
"/Users/username/projects/openapi-mcp-server/dist/index.js",
"--schema",
"/Users/username/projects/openapi-mcp-server/schema.yaml",
"--base-url",
"https://api.your.service",
"--headers",
"{\"Authorization\": \"Bearer your-api-token\"}"
]
}
}
}
{
"mcpServers": {
"secure-api": {
"command": "node",
"args": [
"/Users/username/projects/openapi-mcp-server/dist/index.js",
"--schema",
"/Users/username/projects/schemas/secure-api.yaml",
"--username",
"admin",
"--password",
"password123"
]
},
"public-api": {
"command": "node",
"args": [
"/Users/username/projects/openapi-mcp-server/dist/index.js",
"--schema",
"/Users/username/projects/schemas/public-api.json"
]
}
}
}
当将服务器添加到Claude Desktop时,您可以使用所有相同的命令行选项:
--schema <路径> - 您的OpenAPI模式文件路径(必需)--base-url <URL> - 覆盖模式中的基础URL--headers <json> - 以JSON字符串形式添加认证或其他头部--username <用户名> - 基本认证的用户名--password <密码> - 基本认证的密码修改配置文件后,重启Claude Desktop使更改生效。
配置并重启后,您应该能够在与Claude的对话中使用API工具。这些工具将根据您的OpenAPI模式自动生成,并包含已配置的认证。
此增强版本在基本实现基础上进行了显著改进:
# 安装依赖
npm install
# 开发模式,自动重载
npm run dev -- --schema ./example-schema.yaml
# 构建项目
npm run build
# 运行测试
npm test
# 运行测试并生成覆盖率报告
npm run test:coverage
# 检查代码
npm run lint
# 修复代码检查问题
npm run lint:fix
项目包括涵盖以下方面的综合测试:
运行测试:
npm test # 运行所有测试
npm run test:watch # 在监视模式下运行测试
npm run test:coverage # 生成覆盖率报告
增强实现由几个关键组件组成:
MIT