dd1d86706c458000ece9144fcdcd4da05220200f
Apifox MCP Service
这是一个基于 Model Context Protocol (MCP) 标准实现的 Apifox 服务端。它充当 LLM (如 Claude, Gemini 等) 与 Apifox API 文档之间的桥梁,允许 AI 助手直接检索 Apifox 中的接口定义,并根据定义生成强类型的 API 请求代码。
✨ 功能特性
- MCP 协议支持: 支持标准 MCP 协议,可集成到 Claude Desktop, Cursor 等支持 MCP 的客户端。
- 多传输模式: 支持
stdio(标准输入输出,默认) 和http(SSE 流式传输) 两种模式。 - 接口检索:
get_api_by_path: 根据路径获取指定接口的详细定义 (Schema)。get_apis_by_folder: 获取指定目录下的所有接口定义。
- AI 提示词 (Prompts):
gen-api-by-path: 指导 AI 根据接口路径生成 API 代码。gen-api-by-folder: 指导 AI 根据目录批量生成 API 代码。
- 健康检查: HTTP 模式下提供
/health端点。
🛠️ 安装与配置
前置要求
- Node.js (v18 或更高版本)
- Apifox 账号及项目访问权限
环境变量
运行此服务需要配置以下环境变量:
| 变量名 | 描述 |
|---|---|
APIFOX_PROJECT_ID |
你的 Apifox 项目 ID (数字) |
APIFOX_TOKEN |
你的 Apifox 访问令牌 (Bearer Token) |
安装依赖
npm install
🚀 启动服务
命令行选项
node index.js [选项]
选项:
-t, --transport <type> 传输方式 (stdio|http) [默认: stdio]
-p, --port <number> HTTP 服务器端口号 [默认: 8889]
-h, --help 显示帮助信息
1. Stdio 模式 (默认)
适用于 Claude Desktop、Cursor 或作为子进程运行的场景。
# 需确保环境变量已设置
export APIFOX_PROJECT_ID=你的项目ID
export APIFOX_TOKEN=你的Token
# 默认使用 stdio 模式
node index.js
# 或显式指定
node index.js --transport stdio
特点:
- 通过标准输入/输出与客户端通信
- 适合本地集成 (Claude Desktop, Cursor 等)
- 日志输出到 stderr,不干扰 JSON-RPC 通信
2. HTTP (SSE) 模式
适用于远程部署、调试或需要 HTTP 访问的场景。
# 使用默认端口 8889
node index.js --transport http
# 或指定自定义端口
node index.js --transport http --port 3000
HTTP 端点:
- MCP 服务:
http://localhost:8889/sse(Server-Sent Events) - MCP 消息:
http://localhost:8889/messages - 健康检查:
http://localhost:8889/health
HTTP 请求头支持:
Authorization: Bearer token (可选,覆盖环境变量APIFOX_TOKEN)x-apifox-project-id: 项目 ID (可选,覆盖环境变量APIFOX_PROJECT_ID)
特点:
- 支持 CORS,可跨域访问
- 支持动态认证 (通过请求头传递 token 和 projectId)
- 提供健康检查端点
- 详细的请求日志
环境变量验证
服务启动时会自动验证必需的环境变量:
APIFOX_TOKEN(必需): 如未设置,服务将拒绝启动并提示配置方法APIFOX_PROJECT_ID(可选): 可通过请求头动态指定
查看帮助信息
node index.js --help
💻 客户端集成示例
Claude Desktop 配置
编辑 Claude Desktop 的配置文件 (通常位于 %APPDATA%\Claude\claude_desktop_config.json 或 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"apifox": {
"command": "node",
"args": [
"D:/demo/apifox-mcp-service/index.js"
],
"env": {
"APIFOX_PROJECT_ID": "123456",
"APIFOX_TOKEN": "apifox_pat_xxxxxxxx"
}
}
}
}
注意:请将路径替换为你本地的实际绝对路径。
📚 工具详情
Tools
get_api_by_path
根据接口路径获取 Apifox 接口定义数据。
- 参数:
path(string),projectId(number, 可选)
get_apis_by_folder
根据接口目录名称获取目录下所有接口定义。
- 参数:
folderName(string),projectId(number, 可选)
Prompts
gen-api-by-path
流程化 Prompt,引导 LLM 获取接口定义并生成符合项目规范的 API 代码。
gen-api-by-folder
流程化 Prompt,引导 LLM 批量获取目录下接口并生成代码。
📝 License
ISC
Languages
JavaScript
60%
Python
40%