hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Includes functionality for forking and customizing the repository on GitHub, with workflow configurations for automatic publishing to npm.
Provides a configured GitHub Actions workflow for automatic building and publishing of customized MCP packages to npm when a tag is pushed.
Enables running the MCP server that transforms OpenAPI specifications into tools accessible to AI assistants, with specific support for Node.js environments including installation via npm.
OpenAPI 到 MCP 服务器
这款工具可根据 OpenAPI/Swagger 规范创建 MCP(模型上下文协议)服务器,使 AI 助手能够与您的 API 进行交互。您可以为特定的 API 或服务创建您自己的品牌化定制 MCP 。
概述
该项目创建了一个动态的 MCP 服务器,将 OpenAPI 规范转换为 MCP 工具。它通过模型上下文协议 (MCP) 将 REST API 与 AI 助手无缝集成,将任何 API 转换为 AI 可访问的工具。
特征
- 从文件或 HTTP/HTTPS URL 动态加载 OpenAPI 规范
- 支持从文件或 HTTP/HTTPS URL 加载的OpenAPI 覆盖
- OpenAPI 操作到 MCP 工具的可定制映射
- 使用针对 operationId 和 URL 路径的 glob 模式对操作进行高级过滤
- 通过格式保存和位置元数据进行全面的参数处理
- API 身份验证处理
- 用于配置 MCP 服务器的 OpenAPI 元数据(标题、版本、描述)
- 分层描述回退(操作描述→操作摘要→路径摘要)
- 通过环境变量和 CLI 支持自定义 HTTP 标头
- 用于 API 请求跟踪和识别的 X-MCP 标头
- 支持路径级别的自定义
x-mcp
扩展以覆盖工具名称和描述
与人工智能助手一起使用
此工具会创建一个 MCP 服务器,允许 AI 助手与 OpenAPI 规范定义的 API 进行交互。主要使用方式是配置您的 AI 助手,使其直接作为 MCP 工具运行。
在 Claude Desktop 中设置
- 确保您的计算机上已安装Node.js
- 打开 Claude Desktop 并导航至“设置”>“开发者”
- 编辑配置文件(如果不存在则会创建):
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- 添加此配置(根据需要自定义):
- 重启Claude桌面
- 您现在应该会在聊天输入框中看到一个锤子图标。点击它即可访问您的 API 工具。
自定义配置
您可以使用各种选项调整args
数组来定制您的 MCP 服务器:
在光标中设置
- 在以下位置之一创建配置文件:
- 项目特定:项目目录中的
.cursor/mcp.json
- 全局:主目录中的
~/.cursor/mcp.json
- 项目特定:项目目录中的
- 添加此配置(根据您的 API 需要进行调整):
- 重新启动 Cursor 或重新加载窗口
与 Vercel AI SDK 一起使用
您还可以使用 Vercel AI SDK 的 MCP 客户端直接在 JavaScript/TypeScript 应用程序中使用此 MCP 服务器:
配置
配置通过环境变量、命令行选项或 JSON 配置文件进行管理:
命令行选项
环境变量
您可以在.env
文件中或直接在您的环境中设置这些:
OPENAPI_SPEC_PATH
:OpenAPI 规范文件的路径OPENAPI_OVERLAY_PATHS
:以逗号分隔的覆盖 JSON 文件的路径TARGET_API_BASE_URL
:API 调用的基本 URL(覆盖 OpenAPI 服务器)MCP_WHITELIST_OPERATIONS
:要包含的操作 ID 或 URL 路径的逗号分隔列表(支持诸如getPet*
或GET:/pets/*
之类的 glob 模式)MCP_BLACKLIST_OPERATIONS
:要排除的操作 ID 或 URL 路径的逗号分隔列表(支持 glob 模式,如果使用白名单则忽略)API_KEY
:目标 API 的 API 密钥(如果需要)SECURITY_SCHEME_NAME
:需要 API 密钥的安全方案的名称SECURITY_CREDENTIALS
:包含多个方案的安全凭证的 JSON 字符串CUSTOM_HEADERS
:包含自定义标头的 JSON 字符串,包含在所有 API 请求中HEADER_*
:任何以HEADER_
开头的环境变量都将作为自定义标头添加(例如,HEADER_X_API_Version=1.0.0
添加标头X-API-Version: 1.0.0
)DISABLE_X_MCP
:设置为true
以禁用向所有 API 请求添加X-MCP: 1
标头CONFIG_FILE
:JSON 配置文件的路径
JSON 配置
您也可以使用 JSON 配置文件来代替环境变量或命令行选项。MCP 服务器将按以下顺序查找配置文件:
--config
命令行选项指定的路径CONFIG_FILE
环境变量指定的路径- 当前目录中的
config.json
- 当前目录中的
openapi-mcp.json
- 当前目录中的
.openapi-mcp.json
JSON 配置文件示例:
根目录中的config.example.json
提供了带有解释性注释的完整示例配置文件。
配置优先级
配置设置按以下优先顺序应用(从高到低):
- 命令行选项
- 环境变量
- JSON配置文件
发展
安装
本地测试
定制并发布您自己的版本
您可以使用此仓库作为基础,创建您自己的定制 OpenAPI 到 MCP 服务器。本节介绍如何 fork 此仓库,根据您的特定 API 进行定制,并将其发布为软件包。
分叉和定制
- 分叉存储库:在 GitHub 上分叉此存储库以创建您可以自定义的自己的副本。
- 添加您的 OpenAPI 规范:Copy
- 配置默认设置:创建将与您的包捆绑在一起的自定义配置文件:Copy
- 更新 package.json :Copy
- 确保规格已捆绑:package.json 中的
files
字段(如上所示)确保您的规格和配置文件将包含在已发布的包中。
自定义 GitHub 工作流程
该仓库包含一个 GitHub Actions 工作流程,用于自动发布到 npm。要为你的 fork 仓库自定义它:
- 更新工作流名称:如果需要,编辑
.github/workflows/publish-npm.yaml
以更新名称:Copy - 设置包范围(如果需要) :如果您想在 npm 组织范围内发布,请取消注释并修改工作流文件中的范围行:Copy
- 设置 npm 令牌:在分叉存储库的设置中将您的 npm 令牌添加为名为
NPM_TOKEN
的 GitHub 机密。
发布您的定制包
自定义存储库后:
- 创建并推送标签:Copy
- GitHub Actions 将:
- 自动构建包
- 更新 package.json 中的版本以匹配标签
- 将捆绑的规范和配置发布到 npm
出版后的使用
您的自定义包的用户可以通过 npm 安装和使用它:
它们可以通过环境变量或命令行选项覆盖您的默认设置,如配置部分所述。
执照
麻省理工学院
This server cannot be installed
一种根据 OpenAPI/Swagger 规范创建 MCP(模型上下文协议)服务器的工具,使 AI 助手能够与您的 API 进行交互。