项目简介
本项目 'YAPI MCP Server' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 LLM 应用提供访问 YAPI (Yet Another Project Interface) 接口文档平台的能力。通过此服务器,LLM 可以调用预定义的工具,查询 YAPI 上的接口信息,例如接口详情、分类列表、项目菜单和项目基本信息,从而实现基于 YAPI 数据的智能应用,例如:
- 接口文档查询与理解: LLM 可以根据用户意图,调用工具查询 YAPI 接口文档,并理解接口的功能、参数和返回值,辅助开发者进行 API 集成和使用。
- API 使用辅助: LLM 可以结合 YAPI 接口信息,生成代码示例、调试请求参数,甚至根据接口文档自动生成 API 调用代码。
- 知识库构建: 将 YAPI 平台作为知识库,LLM 可以从中提取 API 信息,用于构建更丰富的知识图谱或问答系统。
主要功能点
- 提供 YAPI 接口信息查询工具: 内置多个工具,允许 LLM 客户端查询 YAPI 平台上的接口信息,包括:
- 'yapi_get_interface_details': 获取接口详细信息(请求/响应参数、类型、状态等)。
- 'yapi_list_interfaces_by_category': 获取指定分类下的接口列表。
- 'yapi_get_project_interface_menu': 获取项目完整接口菜单。
- 'yapi_get_project_info': 获取项目基本信息。
- 基于 MCP 协议标准: 遵循 MCP 协议规范,易于与支持 MCP 协议的 LLM 客户端集成。
- 使用 Stdio 传输协议: 通过标准输入输出 (stdio) 与 MCP 客户端通信,部署和运行简单方便。
- 配置灵活: 通过环境变量配置 YAPI Base URL 和 Project Token,适应不同的 YAPI 环境。
- 错误处理完善: 对 YAPI API 调用错误和参数验证错误进行处理,并返回清晰的错误信息给客户端。
安装步骤
-
克隆仓库:
git clone https://github.com/YYvanYang/mcp-servers-monorepo cd mcp-servers-monorepo/src/yapi -
安装依赖: 确保已安装 Node.js 和 npm (或 yarn)。在仓库根目录下运行:
npm install -
配置环境变量: 需要设置以下两个环境变量:
- 'YAPI_BASE_URL': 你的 YAPI 平台的 Base URL,例如 'http://yapi.example.com'。请替换为实际的 YAPI 地址。
- 'YAPI_PROJECT_TOKEN': 你的 YAPI 项目的 Token。请替换为实际的 YAPI 项目 Token。
你可以通过以下方式设置环境变量(取决于你的操作系统和环境):
Linux/macOS: 在终端中 export 环境变量,例如:
export YAPI_BASE_URL="http://yapi.example.com" export YAPI_PROJECT_TOKEN="your_yapi_project_token"或者将环境变量写入 '.bashrc' 或 '.zshrc' 等配置文件中。
Windows: 在系统环境变量中添加 'YAPI_BASE_URL' 和 'YAPI_PROJECT_TOKEN' 变量,并设置对应的值。
-
构建项目 (可选): 虽然可以直接运行 'index.ts',但如果需要构建,可以运行:
npm run build构建后的文件通常在 'dist' 目录下。
服务器配置
MCP 客户端需要配置以下 JSON 信息才能连接到 YAPI MCP Server。请根据实际情况修改 'command' 和 'args' 字段。
{ "serverName": "@mcp-servers/yapi", // 服务名称,与 package.json 中的 name 字段一致 "command": "node", // 运行 MCP 服务器的命令,这里使用 node "args": [ // 命令参数 "src/yapi/src/index.js" // 指向服务器入口文件 (index.js)。如果构建了项目,可能需要指向构建后的文件,例如 "dist/index.js" ], "env": { // 环境变量配置 (可选,但建议在此处配置,更清晰) "YAPI_BASE_URL": "YOUR_YAPI_BASE_URL", // [必填] 你的 YAPI 平台的 Base URL,例如 "http://yapi.example.com"。 **请替换为实际值** "YAPI_PROJECT_TOKEN": "YOUR_YAPI_PROJECT_TOKEN" // [必填] 你的 YAPI 项目的 Token。 **请替换为实际值** } }
配置说明:
- 'serverName': 必须设置为 '@mcp-servers/yapi',这与服务器声明的名称一致。
- 'command': 通常为 'node',表示使用 Node.js 运行 JavaScript 代码。
- 'args': 指定服务器入口文件路径。 如果直接运行 'src/yapi/src/index.js',则按上述配置;如果构建后运行 'dist/index.js',则需要修改为 '"dist/index.js"'。
- 'env': 强烈建议 将 'YAPI_BASE_URL' 和 'YAPI_PROJECT_TOKEN' 放在 'env' 字段中进行配置,而不是依赖全局环境变量。 这样配置更清晰,也方便管理多个 MCP 服务器。 请务必将 'YOUR_YAPI_BASE_URL' 和 'YOUR_YAPI_PROJECT_TOKEN' 替换为你的实际 YAPI 地址和项目 Token。
基本使用方法
-
启动 MCP 服务器: 在配置好环境变量或 'env' 配置后,当 MCP 客户端尝试连接此服务器时,客户端会根据配置的 'command' 和 'args' 启动 YAPI MCP Server。
-
在 MCP 客户端中调用工具: 在支持 MCP 协议的 LLM 客户端中,你可以通过指定工具名称和参数来调用 YAPI MCP Server 提供的工具。
例如,要调用 'yapi_get_interface_details' 工具获取接口 ID 为 '123' 的接口详情,你需要在 MCP 客户端中构造一个 'CallToolRequest',指定 'tool_name' 为 'yapi_get_interface_details',并提供参数 '{"interface_id": 123}'。
服务器会将 YAPI 返回的接口详细信息以 JSON 字符串的形式返回给客户端。 客户端可以解析 JSON 字符串并提取所需的信息。
可用的工具名称和参数,请参考 "主要功能点" 和代码中的 'TOOLS' 数组定义。 每个工具的 'description' 字段提供了工具的简要描述,'inputSchema' 定义了工具的输入参数。
注意:
- 确保 YAPI Base URL 和 Project Token 配置正确,否则服务器无法连接到 YAPI 平台。
- 首次运行或配置变更后,建议重启 MCP 客户端和服务器。
- 可以通过查看服务器控制台输出 (console.error) 来了解服务器的运行状态和错误信息。
信息
分类
开发者工具