YAPI接口文档服务器

一个用于读取YAPI API文档的模型上下文协议服务器,支持LLM客户端浏览和检查YAPI项目接口。

  • by AlwaysLoveme
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 AlwaysLoveme/yapi-mcp-server

使用说明

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 不发射的类型检查

许可证

麻省理工学院