OpenAPI MCP Server

开始使用 OpenAPI MCP Server(mcp-openapi-server)

  • 项目简介

    • 这是一个实现 MCP 协议核心功能的服务器端应用,能够将 OpenAPI 规范中的 API endpoint 转换为 MCP 的“工具”(Tools),并可选地暴露 Prompt 模板与 Resources,供 LLM 客户端通过 MCP 进行查询、调用工具、获取上下文等操作。
  • 主要功能点

    • 将 OpenAPI 路径转化为 MCP 的工具集合,支持按工具名/路径、HTTP 方法、标签、资源等过滤加载
    • 支持动态元工具列表(如 list-api-endpoints、get-api-endpoint-schema、invoke-api-endpoint,方便浏览端点信息)
    • 通过 JSON-RPC 风格处理 MCP 请求,返回结果或通过流式传输通知
    • 提供 Prompts 与 Resources 的加载、读取能力,作为上下文信息或辅助模板
    • 提供两种传输方式:Stdio(默认,适配 Claude Desktop 等直连场景)与 HTTP 流式传输
    • 支持 mTLS/自定义 TLS 设置、OpenAPI 规范的多种加载方式(URL、本地文件、inline,stdin)
    • Library 方式可在自有应用中引入 OpenAPIServer,以便自定义身份验证、过滤和中间件
  • 安装步骤

    • 直接从仓库获取代码,安装依赖并构建(按项目提供的脚本执行即可)
    • 或在你的 Node.js 项目中作为库使用,导入 OpenAPIServer 并进行自定义配置
  • 服务器配置(示例 JSON,供 MCP 客户端使用连接信息)

    • 说明:以下 JSON 描述的是对一个 MCP 客户端需要知道的“服务器连接信息”。MCP 客户端需要的只是启动参数(command、args)和初始连接信息,具体参数请按实际部署情况配置。 { "name": "openapi-mcp-server", "version": "1.0.0", "apiBaseUrl": "https://api.example.com", "openApiSpec": "https://api.example.com/openapi.json", "specInputMethod": "url", "headers": { "Authorization": "Bearer your-token", "X-API-Key": "your-api-key" }, "transportType": "stdio", "httpPort": 3000, "httpHost": "127.0.0.1", "endpointPath": "/mcp", "promptsPath": undefined, "promptsInline": undefined, "resourcesPath": undefined, "resourcesInline": undefined, "toolsMode": "all", "disableAbbreviation": false }
    • 说明注释
      • name / version:服务标识信息,便于 MCP 客户端显示
      • apiBaseUrl & openApiSpec:要暴露给 MCP 的目标 API 基础地址及 OpenAPI 规范来源
      • specInputMethod:指定 OpenAPI 规范的加载方式(url、file、stdin、inline)
      • headers / authProvider:用于对后端 API 的访问认证,优先使用 AuthProvider(动态认证)若提供,否则使用静态 headers
      • transportType / httpPort / httpHost / endpointPath:决定 MCP 传输方式及暴露的 HTTP 服务端点
      • promptsPath/promptsInline、resourcesPath/resourcesInline:可选,暴露 Prompts 与 Resources 的来源
      • toolsMode、disableAbbreviation:工具加载模式及名称简写相关设置
  • 基本使用方法

    • 以 CLI 方式快速启动(示例)
      • CLI 支持通过命令行参数直接启动服务器并加载 OpenAPI 规范
    • 以库方式在自建应用中集成
      • 通过 OpenAPIServer 配置后启动传输组件,接入你自定义的身份认证与中间件逻辑
    • 运行与调试
      • 启动后,服务器会显示当前运行状态及健康状态端点(如果使用 HTTP 传输,会提供健康检查接口)
      • 你可以通过工具列表、端点模式等进行交互,或使用工具调用接口来驱动外部 API
  • 重要注意

    • MCP 客户端需要的只是启动信息及连接方式;服务端实现了核心 MCP 请求/响应处理、会话管理、工具/资源/提示的暴露等能力
    • 该实现具备单元测试覆盖(Vitest),并提供示例、文档及多种使用场景

服务器信息