使用说明

项目简介

ApiFox MCP Server 是一个 MCP (Model Context Protocol) 服务器,它桥接了 ApiFox 接口文档平台和 LLM (大型语言模型) 客户端,例如 Cursor 编辑器。通过此服务器,LLM 能够获取指定 ApiFox 项目的接口信息,从而在代码生成、理解和调试等场景中,更好地利用 ApiFox 中预定义的 API 接口。

主要功能点

  • 提供 ApiFox 接口信息: 通过 MCP 协议,向 LLM 客户端提供 ApiFox 项目中定义的接口文档 (OpenAPI 3.1 规范的 JSON 数据)。
  • 支持 HTTP 和 CLI 两种模式: 既可以作为 HTTP 服务器长期运行,也可以通过命令行按需启动。
  • 工具 (Tool) 注册: 注册 'get-interface' 工具,允许 LLM 客户端通过指定模块 ID 和模块名称来获取特定模块的接口信息。
  • SSE 传输协议: 支持通过 Server-Sent Events (SSE) 协议与 LLM 客户端进行通信,实现实时的请求和响应。
  • 环境变量配置: 支持通过环境变量灵活配置 ApiFox API Key 和 Project ID 等敏感信息。

安装步骤

  1. 确保已安装 Node.js 和 npm 或 pnpm: 本仓库使用 Node.js 和 pnpm 进行开发和管理。请确保你的开发环境中已安装 Node.js (建议 18.x 或以上版本) 和 pnpm。
  2. 拉取代码或下载仓库: 将 GitHub 仓库 'https://github.com/wangmhaha/apifox-mcp-server' 克隆到本地或下载 ZIP 包并解压。
  3. 安装依赖: 在仓库根目录下,打开终端并运行命令 'pnpm install' 或 'npm install' 安装项目依赖。
  4. 构建项目: 运行命令 'pnpm build' 或 'npm run build' 构建项目,将 TypeScript 代码编译为 JavaScript。

服务器配置

对于 MCP 客户端(如 Cursor),需要配置 MCP 服务器的启动命令。以下是两种配置方式,选择其一添加到 Cursor 的 MCP 配置文件中:

方式一:使用 'npx' 快速启动 (推荐)

这种方式无需本地构建,直接使用 'npx' 运行已发布的 npm 包。

"apifox-mcp-server": {
    "command": "npx",
    "args": [
      "-y",
      "@wangmhaha/apifox-mcp-server@latest",
      "--local" // 使用 Stdio 传输,如果客户端支持 HTTP SSE,可以移除此参数并配置 "url"
    ],
    "env": {
      "APIFOX_API_KEY": "<your-apifox-api-key>", // 替换为你的 ApiFox API Key
      "PROJECT_ID": "<your-project-id>"      // 替换为你的 ApiFox 项目 ID
    }
  }

参数说明:

  • '"command": "npx"': 指定使用 'npx' 命令运行。
  • '"args": [...]': 传递给 'npx' 的参数列表:
    • '"-y"': 'npx' 参数,自动确认安装包。
    • '"@wangmhaha/apifox-mcp-server@latest"': 指定要运行的 npm 包和版本(latest 表示最新版本)。
    • '"--local"': 可选参数,如果添加此参数,服务器将使用 Stdio 传输协议,否则默认启动 HTTP SSE 服务器。 如果客户端支持 HTTP SSE 并且需要通过 HTTP 连接,请移除此参数,并按照方式二配置 "url"。
  • '"env": {...}': 设置环境变量:
    • '"APIFOX_API_KEY"': 必填,你的 ApiFox API Key,用于访问 ApiFox API。
    • '"PROJECT_ID"': 必填,你的 ApiFox 项目 ID,指定要获取接口信息的项目。

方式二:从本地构建产物运行

这种方式需要先本地构建项目,然后指定 'node' 命令和构建后的 'index.js' 文件路径来运行。

"apifox-mcp-server": {
    "command": "node",
    "args": [
      "<your-local-path>/build/index.js", // 替换为实际的 build/index.js 文件路径
      "--local" // 使用 Stdio 传输,如果客户端支持 HTTP SSE,可以移除此参数并配置 "url"
    ],
    "env": {
      "APIFOX_API_KEY": "<your-apifox-api-key>", // 替换为你的 ApiFox API Key
      "PROJECT_ID": "<your-project-id>"      // 替换为你的 ApiFox 项目 ID
    }
  }

参数说明:

  • '"command": "node"': 指定使用 'node' 命令运行。
  • '"args": [...]': 传递给 'node' 的参数列表:
    • '"<your-local-path>/build/index.js"': 必填,替换为项目本地构建后 'build/index.js' 文件的绝对路径
    • '"--local"': 可选参数,作用同方式一。
  • '"env": {...}': 环境变量配置同方式一。

如果使用 HTTP SSE 模式 (不加 '--local' 参数):

在上述两种配置方式中,移除 '"--local"' 参数,并在 MCP 客户端配置中添加 '"url"' 字段,指向服务器的 SSE 端点。服务器默认端口为 '3000',可以通过设置环境变量 'PORT' 修改。

"apifox-mcp-server": {
    "url": "http://localhost:3000/sse", // HTTP SSE 端点 URL,可根据实际情况修改主机名和端口
    "command": "npx", // 或 "command": "node" 和 "args": [...]
    "args": [
      "-y",
      "@wangmhaha/apifox-mcp-server@latest" // 或 本地构建的 index.js 路径
    ],
    "env": {
      "APIFOX_API_KEY": "<your-apifox-api-key>",
      "PROJECT_ID": "<your-project-id>"
    }
  }

基本使用方法

  1. 启动 MCP 服务器: 配置完成后,在 MCP 客户端中启动 'apifox-mcp-server' 服务。
  2. 调用 'get-interface' 工具: 在 LLM 客户端中,可以使用 '@apifox-mcp-server/get-interface' 工具,并提供 'moduleId' 和 'moduleName' 参数来获取指定 ApiFox 模块的接口信息。

示例 (Cursor 编辑器):

在 Cursor 中,你可以通过 '@' 符号触发工具调用,例如:

@apifox-mcp-server/get-interface moduleName=用户模块 moduleId=xxxxxxxxxxxxx

其中 'xxxxxxxxxxxxx' 需要替换为你在 ApiFox 中 用户模块 对应的模块 ID。服务器会将用户模块的接口文档信息返回给 Cursor,供 LLM 使用。

注意:

  • 请务必替换配置中的 '<your-apifox-api-key>' 和 '<your-project-id>' 为你真实的 ApiFox API Key 和项目 ID。
  • 建议将敏感信息 (如 API Key) 存储在环境变量中,避免硬编码在配置文件中。
  • 如果遇到连接问题,请检查端口是否被占用,以及网络连接是否正常。

信息

分类

开发者工具