YAPI MCP Server
English | δΈζ
A Model Context Protocol (MCP) server for YAPI - enabling AI assistants to manage API documentation.
Features
| Tool | Description | YAPI API |
|---|---|---|
yapi_list_projects |
List all configured projects | - |
yapi_run_auto_test |
Run automated tests | /api/open/run_auto_test |
yapi_import_data |
Import API data | /api/open/import_data |
yapi_interface_add |
Add new interface | /api/interface/add |
yapi_interface_save |
Save interface | /api/interface/save |
yapi_interface_up |
Update interface | /api/interface/up |
yapi_interface_get |
Get interface details | /api/interface/get |
yapi_interface_list |
List interfaces | /api/interface/list |
yapi_interface_list_menu |
Get interface menu | /api/interface/list_menu |
yapi_interface_add_cat |
Add interface category | /api/interface/add_cat |
yapi_interface_get_cat_menu |
Get all categories | /api/interface/getCatMenu |
Installation
Clone the repository, then install dependencies and build in the project directory:
git clone <repo-url>
cd yapi-mcp
npm install
npm run build
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
YAPI_BASE_URL |
Yes | YAPI server URL, e.g., https://yapi.example.com |
YAPI_PROJECTS |
Yes | Project configuration in format: projectId1:token1,projectId2:token2 |
YAPI_PROJECTS Format
projectId1:token1,projectId2:token2
Example:
123:abc123token,456:def456token
You can get the project token from YAPI project settings page.
Usage with Cursor
Add to your Cursor MCP configuration file:
macOS/Linux
Edit ~/.cursor/mcp.json and replace /path/to/yapi-mcp with your actual project path:
{
"mcpServers": {
"yapi": {
"command": "node",
"args": ["/path/to/yapi-mcp/dist/index.js"],
"env": {
"YAPI_BASE_URL": "https://your-yapi-server.com",
"YAPI_PROJECTS": "123:your-token-here,456:another-token"
}
}
}
}
Windows
Edit %APPDATA%\Cursor\mcp.json and use your actual project path (e.g. C:\\Users\\YourName\\yapi-mcp\\dist\\index.js):
{
"mcpServers": {
"yapi": {
"command": "node",
"args": ["C:\\path\\to\\yapi-mcp\\dist\\index.js"],
"env": {
"YAPI_BASE_URL": "https://your-yapi-server.com",
"YAPI_PROJECTS": "123:your-token-here"
}
}
}
}
Usage with Claude Desktop
Add to your Claude Desktop configuration:
macOS
Edit ~/Library/Application Support/Claude/claude_desktop_config.json and replace /path/to/yapi-mcp with your actual project path:
{
"mcpServers": {
"yapi": {
"command": "node",
"args": ["/path/to/yapi-mcp/dist/index.js"],
"env": {
"YAPI_BASE_URL": "https://your-yapi-server.com",
"YAPI_PROJECTS": "123:your-token-here"
}
}
}
}
Windows
Edit %APPDATA%\Claude\claude_desktop_config.json with the same configuration, using your actual project path.
Tool Examples
List All Projects
{
"name": "yapi_list_projects",
"arguments": {}
}
Get Interface List (Default Project)
{
"name": "yapi_interface_list",
"arguments": {
"page": 1,
"limit": 20
}
}
Get Interface List (Specific Project)
{
"name": "yapi_interface_list",
"arguments": {
"project": 456,
"page": 1,
"limit": 20
}
}
Add New Interface
{
"name": "yapi_interface_add",
"arguments": {
"catid": 456,
"title": "Get User Info",
"path": "/api/user/info",
"method": "GET",
"desc": "Get user details by ID"
}
}
Get Interface Details
{
"name": "yapi_interface_get",
"arguments": {
"id": 789
}
}
Run Automated Tests
{
"name": "yapi_run_auto_test",
"arguments": {
"project": 456,
"env_name": "dev"
}
}
Development
# Clone the repository
cd yapi-mcp
# Install dependencies
npm install
# Development mode
npm run dev
# Build
npm run build
# Run
npm start
Security
- Never commit your YAPI tokens to version control
- Use environment variables to store sensitive configuration
- Consider using a secrets manager for production deployments
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.