使用说明
YAPI MCP服务器
A. 模型上下文协议(MCP) 用于阅读YAPI API文档的服务器。使LLM客户端(Claude Code、Cursor等)能够浏览和检查YAPI项目接口。
特性
- 浏览项目信息、类别和界面
- 获取完整的API详细信息,包括请求/响应架构
- 分页列表,带有LLM友好的Markdown输出
- 通过环境变量进行基于令牌的身份验证
需求
- Node.js>=18.0.0
安装
来自npm
npx @zhuxian/yapi-mcp-server
来源
git clone <repo-url>
cd yapi-mcp
npm install
npm run build
配置
服务器需要三个环境变量:
| 变量 | 描述 | 示例 |
|---|---|---|
YAPI_BASE_URL |
您的YAPI实例URL | https://yapi.example.com |
YAPI_TOKEN |
用于身份验证的Cookie令牌 | eyJhbGciOiJIUzI1NiIs... |
YAPI_UID |
您的YAPI用户ID | 1828 |
如何获取Token和UID:打开浏览器DevTools->应用程序->Cookie,查找
_yapi_token和_yapi_uid价值观。
用法
克劳德代码
选项1:使用CLI命令
# Add to current project
claude mcp add yapi -e YAPI_BASE_URL=https://yapi.example.com -e YAPI_TOKEN=your_token -e YAPI_UID=1828 -- npx -y @zhuxian/yapi-mcp-server
# Add globally (available in all projects)
claude mcp add yapi -s user -e YAPI_BASE_URL=https://yapi.example.com -e YAPI_TOKEN=your_token -e YAPI_UID=1828 -- npx -y @zhuxian/yapi-mcp-server
选项2:手动配置
添加 ~/.claude/settings.json:
{
"mcpServers": {
"yapi": {
"command": "npx",
"args": ["-y", "@zhuxian/yapi-mcp-server"],
"env": {
"YAPI_BASE_URL": "https://yapi.example.com",
"YAPI_TOKEN": "your_token",
"YAPI_UID": "1828"
}
}
}
}
光标
添加 .cursor/mcp.json 在项目根目录中:
{
"mcpServers": {
"yapi": {
"command": "npx",
"args": ["-y", "@zhuxian/yapi-mcp-server"],
"env": {
"YAPI_BASE_URL": "https://yapi.example.com",
"YAPI_TOKEN": "your_token",
"YAPI_UID": "1828"
}
}
}
}
本地开发
YAPI_BASE_URL=https://yapi.example.com YAPI_TOKEN=xxx YAPI_UID=1828 npm run dev
工具
yapi_get-project
获取项目基本信息,包括名称、描述、基本路径和环境配置。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
project_id |
number | 是 | YAPI项目ID |
yapi_get_cat_menu
获取项目的接口类别(文件夹)列表。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
project_id |
number | 是 | YAPI项目ID |
yapi_list_界面
使用分页列出项目中的接口。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
project_id |
number | 是 | YAPI项目ID |
page |
number | No | 页码(默认值:1) |
limit |
number | 否 | 每页最多100个项目(默认值:20) |
yapi_list_by_category
使用分页列出属于特定类别的接口。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
cat_id |
number | Yes | 类别ID(来自 yapi_get_cat_menu) |
page |
number | No | 页码(默认值:1) |
limit |
number | 否 | 每页最多100个项目(默认值:20) |
yapi_get_接口
获取单个API接口的完整详细信息,包括请求参数、头、主体模式和响应模式。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
interface_id |
number | Yes | 接口ID |
yapi_get_full_menu
获取按类别分组的所有接口。返回项目的完整层次结构。
备注:可能会为具有许多接口的项目返回大量有效载荷。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
project_id |
number | 是 | YAPI项目ID |
yapi_get_by_url
解析YAPI页面URL并自动获取相应数据。
参数:
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
url |
string | 是 | 完整的YAPI页面URL |
支持的URL格式:
/project/{id}/interface/api-项目概况/project/{id}/interface/api/{interfaceId}-接口详细信息/project/{id}/interface/api/cat_{catId}-类别列表
典型工作流程
探索YAPI项目时的推荐顺序:
1. yapi_get_project → Understand the project
2. yapi_get_cat_menu → See category structure
3. yapi_list_by_category → Browse interfaces in a category
4. yapi_get_interface → Get full detail for a specific API
或者简单地使用 yapi_get_by_url 带有YAPI页面URL。
脚本
| 脚本 | 描述 |
|---|---|
npm run build |
使用SWC编译+生成类型声明 |
npm run watch |
观看模式编译 |
npm run start |
运行已编译的服务器 |
npm run dev |
直接与 tsx (无需构建) |
npm run typecheck |
不发射的类型检查 |
许可证
麻省理工学院
