apifoxmcp服务
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"apifox": {
"args": [
"-m",
"apifox_mcp"
],
"command": "python",
"env": {
"APIFOX_ACCESS_TOKEN": "your_access_token_here",
"APIFOX_PROJECT_ID": "your_default_project_id"
}
}
}
}
服务介绍
Apifox MCP Server
一个用于集成 Apifox 开放 API 的 MCP (Model Context Protocol) 服务器。支持导入/导出 OpenAPI/Swagger 格式数据以及 Postman Collection 数据。
功能特性
- ✅ 导入 OpenAPI/Swagger 格式数据(支持 OpenAPI 3 和 Swagger 2)
- ✅ 导入 Postman Collection v2 格式数据
- ✅ 导出 OpenAPI/Swagger 格式数据(支持 JSON 和 YAML)
- ✅ 支持多种导入导出选项配置
- ✅ 完整的错误处理和类型安全
安装
前置要求
- Python 3.10 或更高版本
- Apifox 访问令牌(Access Token)
安装步骤
-
克隆或下载此项目
-
安装依赖:
pip install -e .
或用于开发:
pip install -e ".[dev]"
配置
获取 Apifox 访问令牌
- 登录 Apifox
- 进入账号设置
- 生成 API 访问令牌
设置环境变量
在使用 MCP 服务器之前,需要设置环境变量:
Windows (PowerShell):
$env:APIFOX_ACCESS_TOKEN="your_access_token_here"
$env:APIFOX_PROJECT_ID="your_default_project_id" # 可选,设置默认项目 ID
Linux/macOS:
export APIFOX_ACCESS_TOKEN="your_access_token_here"
export APIFOX_PROJECT_ID="your_default_project_id" # 可选,设置默认项目 ID
使用方法
在 Claude Desktop 中配置
编辑 Claude Desktop 配置文件:
Windows:
%APPDATA%\Claude\claude_desktop_config.json
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"apifox": {
"command": "python",
"args": ["-m", "apifox_mcp"],
"env": {
"APIFOX_ACCESS_TOKEN": "your_access_token_here",
"APIFOX_PROJECT_ID": "your_default_project_id"
}
}
}
}
可用工具
1. import_openapi
导入 OpenAPI/Swagger 格式数据到 Apifox 项目。
参数:
project_id(可选): Apifox 项目 ID,未提供时使用环境变量 APIFOX_PROJECT_IDinput_type(必需): 输入类型,可选 "url" 或 "data"input_value(必需): URL 地址或 OpenAPI 数据字符串target_endpoint_folder_id(可选): 目标接口文件夹 IDtarget_schema_folder_id(可选): 目标数据模型文件夹 IDendpoint_overwrite_behavior(可选): 接口覆盖行为schema_overwrite_behavior(可选): 数据模型覆盖行为locale(可选): 语言环境,默认 "zh-CN"
示例:
请帮我从 https://petstore.swagger.io/v2/swagger.json 导入 OpenAPI 数据到项目 123456
2. import_postman_collection
导入 Postman Collection v2 格式数据到 Apifox 项目。
参数:
project_id(可选): Apifox 项目 ID,未提供时使用环境变量 APIFOX_PROJECT_IDcollection_data(必需): Postman Collection JSON 字符串target_endpoint_folder_id(可选): 目标接口文件夹 IDendpoint_overwrite_behavior(可选): 接口覆盖行为endpoint_case_overwrite_behavior(可选): 接口用例覆盖行为locale(可选): 语言环境,默认 "zh-CN"
示例:
请帮我导入这个 Postman Collection 到项目 123456: {...}
3. export_openapi
从 Apifox 项目导出 OpenAPI/Swagger 格式数据。
参数:
project_id(可选): Apifox 项目 ID,未提供时使用环境变量 APIFOX_PROJECT_IDscope_type(可选): 导出范围类型,默认 "ALL"excluded_tags(可选): 要排除的标签列表endpoint_ids(可选): 要导出的接口 ID 列表endpoint_folder_ids(可选): 要导出的接口文件夹 ID 列表oas_version(可选): OpenAPI 版本,默认 "3.1"export_format(可选): 导出格式,默认 "JSON"include_apifox_extension(可选): 是否包含 Apifox 扩展属性add_folders_to_tags(可选): 是否将文件夹添加到标签branch_id(可选): 分支 IDmodule_id(可选): 模块 IDlocale(可选): 语言环境,默认 "zh-CN"
示例:
请帮我从项目 123456 导出 OpenAPI 3.1 格式的 JSON 数据
开发
项目结构
apifoxmcp/
├── src/
│ └── apifox_mcp/
│ ├── __init__.py # 包初始化
│ ├── __main__.py # 启动入口
│ ├── client.py # Apifox API 客户端
│ └── server.py # MCP 服务器实现
├── pyproject.toml # 项目配置
└── README.md # 项目文档
运行测试
pytest
API 参考
详细的 API 文档请参考 Apifox 开放 API 文档。
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request!