YAPI MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@YAPI MCP ServerShow me the details of project 123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
YAPI MCP Server
A Model Context Protocol (MCP) server for YAPI API Platform integration. Enable AI assistants to interact with YAPI seamlessly.
🚀 Quick Start
Recommended: Use with npx (No installation required)
Get your YAPI Token: Login to your YAPI platform and get the token from project settings
Configure Claude Desktop: Add the following to your MCP settings file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"yapi": {
"command": "npx",
"args": [
"-y",
"@criller/yapi-mcp-server",
"--yapi-base-url=http://your-yapi-server.com",
"--yapi-token=your-token-here"
]
}
}
}Start using: Restart Claude Desktop and you're ready to go!
Related MCP server: Mcp-Swagger-Server
✨ Features
This MCP server provides 11 tools covering all YAPI Open APIs:
Project Management (1 tool)
yapi_get_project- Get project information
Category Management (2 tools)
yapi_add_category- Add interface categoryyapi_get_category_menu- Get category menu list
Interface Management (7 tools)
yapi_get_interface- Get interface detailsyapi_list_interfaces_by_cat- List interfaces by categoryyapi_add_interface- Add new interfaceyapi_update_interface- Update interfaceyapi_get_interface_list- Get interface listyapi_update_interface_basic- Update interface basic infoyapi_get_interface_cat_list- Get interface menu tree
Data Import (1 tool)
yapi_import_data- Import data (Swagger, HAR, Postman, etc.)
📖 Usage Examples
Once configured, you can interact with YAPI using natural language:
"Show me the details of project 123"
"List all categories in project 456"
"Get the interface with ID 789"
"Add a new category called 'User Management' to project 123"
"Import this Swagger file to project 456"
🔧 Alternative Configuration Methods
Method 1: Using Environment Variables
{
"mcpServers": {
"yapi": {
"command": "npx",
"args": ["-y", "@criller/yapi-mcp-server"],
"env": {
"YAPI_BASE_URL": "http://your-yapi-server.com",
"YAPI_TOKEN": "your-token-here"
}
}
}
}Method 2: Local Development
For development or debugging:
git clone https://github.com/criller/yapi-mcp-server.git
cd yapi-mcp-server
npm install
cp .env.example .env
# Edit .env and set your YAPI_BASE_URL and YAPI_TOKEN
npm run devThen configure Claude Desktop:
{
"mcpServers": {
"yapi": {
"command": "node",
"args": ["/absolute/path/to/yapi-mcp-server/dist/index.js"],
"env": {
"YAPI_BASE_URL": "http://your-yapi-server.com",
"YAPI_TOKEN": "your-token"
}
}
}
}🛠️ Development
Type Check
npm run typecheckBuild
npm run buildTesting with MCP Inspector
npx @modelcontextprotocol/inspector npx -y @criller/yapi-mcp-server📁 Project Structure
yapi-mcp-server/
├── src/
│ ├── index.ts # MCP Server entry point
│ ├── config.ts # Configuration management
│ ├── types.ts # TypeScript types
│ ├── yapi-client.ts # YAPI API client
│ └── tools/ # MCP tools
│ ├── project-tools.ts # Project management
│ ├── category-tools.ts # Category management
│ ├── interface-tools.ts# Interface management
│ └── import-tools.ts # Data import
├── package.json
├── tsconfig.json
└── README.md🤝 Contributing
Contributions are welcome! Please check CONTRIBUTING.md for details.
📄 License
MIT
Available Tools
11 toolsyapi_add_categoryC
在 YAPI 项目中新增接口分类
| Name | Required | Description | Default |
|---|---|---|---|
| desc | No | 分类描述(可选) | |
| name | Yes | 分类名称 | |
| project_id | Yes | 项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a mutating tool. It does not disclose whether a category with a duplicate name is rejected, whether authentication or project permissions are required, or whether the new category's ID is returned. Only the bare creation intent is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is partly a consequence of under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits prerequisites, duplicate/conflict behavior, and any indication of what the caller receives or can do next with the created category.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with name, project_id and desc all documented in the schema itself. The description adds no syntax, format, or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource combination: '新增接口分类' (add interface category) within 'YAPI 项目' (a YAPI project). This is far more specific than a tautology. However, it does not differentiate from siblings such as yapi_add_interface, which also creates content in the same domain, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to create a category versus using yapi_get_interface_cat_list to inspect existing ones, nor any prerequisite such as the project existing or naming conflicts. The description only states what the tool does, not the conditions under which it should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_add_interfaceC
在 YAPI 中新增一个接口定义
| Name | Required | Description | Default |
|---|---|---|---|
| desc | No | 接口描述 | |
| path | Yes | 接口路径 | |
| catid | Yes | 接口分类 ID | |
| title | Yes | 接口标题 | |
| method | Yes | 请求方法(GET, POST, PUT, DELETE 等) | |
| status | No | 接口状态 | |
| res_body | No | 响应体内容 | |
| req_query | No | Query 参数列表 | |
| project_id | Yes | 项目 ID | |
| req_headers | No | 请求 Header 列表 | |
| req_body_type | No | 请求体类型 | |
| res_body_type | No | 响应体类型 | |
| req_body_other | No | 其他请求体内容 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full disclosure burden. '新增' implies a write/create mutation, but the description says nothing about side effects, required permissions, idempotency, or what is returned on success, which is a significant gap for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and zero waste. It is efficient, though arguably terse enough that it tips into under-specification rather than optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter creation tool with no annotations and no output schema, the description is far too thin. It omits required-field expectations, creation side effects, and any guidance on the many optional body/query/header fields, leaving the agent to rely solely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 13 parameters (title, catid, path, method, project_id, res_body, etc.) are already documented in the schema. The description adds no extra semantics beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (新增 / add) and resource (接口定义 / interface definition) in YAPI, so the core action is unambiguous. However, it offers no differentiation from siblings like yapi_update_interface or yapi_add_category, leaving the agent to infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g. project/category must already exist), and no reference to alternative tools such as yapi_update_interface or yapi_import_data. The agent must guess the invocation context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_get_interfaceB
获取 YAPI 接口的详细信息,包括请求参数、响应数据等完整定义
| Name | Required | Description | Default |
|---|---|---|---|
| interface_id | Yes | 接口 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, yet it only says what data is returned. It never states that this is a read-only operation, whether authentication or project membership is required, or what happens when interface_id is invalid or missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that identifies the resource and its contents without padding. It is appropriately sized for a one-parameter getter, though it could have used the space to add routing or behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with one fully documented parameter and no output schema, the description covers the essential purpose and the shape of the returned data (request and response definitions). It stops short of error behavior, but nothing critical to invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single interface_id parameter, so the schema already documents it fully. The description adds no format, range, or sourcing guidance beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (获取) and resource (YAPI 接口的详细信息) and enumerates what is returned (请求参数、响应数据). It does not, however, distinguish this detail-fetching tool from siblings like yapi_get_interface_list or yapi_get_interface_cat_list, so an agent must infer the difference from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to use this tool versus the many sibling getters (yapi_get_interface_list, yapi_get_interface_cat_list, yapi_get_project) or when not to use it. No prerequisites or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_get_interface_cat_listC
获取项目的完整接口菜单树(包含所有分类和接口)
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | 项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns a complete menu tree containing all categories and interfaces, which is useful scope information, but does not disclose read-only nature, authentication requirements, performance characteristics for large projects, or return format. Too thin for a read-heavy tree retrieval tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded and contains no wasted language. It is appropriately sized for the tool, though its brevity contributes to the gaps noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of returning a full tree of categories and interfaces, no output schema, and no annotations, the description is insufficient. It does not clarify the shape of the returned tree, whether interfaces are included in full detail or as references, or how this differs from sibling retrieval tools, leaving the agent underspecified for a nontrivial retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the single project_id parameter is fully documented in the schema as '项目 ID'). The description adds no parameter-level detail beyond what the schema provides. Baseline 3 applies when the schema fully documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a Chinese-language title-like phrase ('Retrieve the project's complete interface menu tree (including all categories and interfaces)') that essentially restates the tool name without adding a specific verb+resource framing an English-speaking agent can parse. The tool name already conveys 'get interface cat list', so the description is largely tautological and does not distinguish the tool from siblings like yapi_get_category_menu or yapi_get_interface_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as yapi_get_category_menu or yapi_list_interfaces_by_cat, which appear to overlap heavily in returning category/interface structures. The description provides no exclusions, prerequisites, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_get_interface_listC
根据条件获取接口列表,可按项目或分类筛选
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码 | |
| catid | No | 分类 ID | |
| limit | No | 每页数量 | |
| project_id | No | 项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full disclosure burden. It implies a read via "获取", but says nothing about pagination behavior, default/max limits, permissions, or return shape – thin transparency for a paginated listing tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the resource and filter dimensions front-loaded and no redundant filler. It is efficient, though the brevity edges toward under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 optional pagination/filter params, no annotations, and no output schema, the description is too sparse. It omits pagination semantics, default ordering, and – critically – how it differs from the near-identical sibling yapi_list_interfaces_by_cat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents page, catid, limit, and project_id (页码/分类ID/每页数量/项目ID). The description's mention of project and category filtering maps to catid/project_id but adds no syntax, defaults, or constraints beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("获取接口列表" / get interface list) and adds the filterable dimensions (project, category), which is clear enough for an agent to understand intent. However, it does not distinguish itself from the sibling yapi_list_interfaces_by_cat, whose name suggests nearly identical category-scoped listing behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "根据条件获取接口列表" implies usage only implicitly; there is no explicit when-to-use, when-not, or named alternative. The overlapping sibling yapi_list_interfaces_by_cat makes a routing rule genuinely necessary here, and none is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_get_projectB
获取 YAPI 项目的基本信息,包括项目名称、描述、成员、环境配置等
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | 项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It is clearly a read operation and discloses what is returned (name, description, members, environment config), which is useful, but it omits any mention of permissions, auth requirements, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence stating the action and its payload, with no filler. Slightly lists return fields instead of usage guidance, but it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, enumerating the returned fields compensates for the missing return documentation. Only usage routing to siblings remains unaddressed, which is a minor gap for such a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single required parameter and 100% schema description coverage, the schema already documents project_id. The description adds no syntax, format, or sourcing detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (获取) and resource (YAPI 项目的基本信息), and enumerates the returned content (名称、描述、成员、环境配置). This clearly separates it from interface-focused siblings like yapi_get_interface or yapi_list_interfaces_by_cat, though it doesn't name an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus siblings such as yapi_get_interface_list or yapi_get_project-adjacent tools, and no prerequisites or context conditions are given. Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_import_dataB
服务端数据导入,支持导入 Swagger、HAR、Postman 等格式的接口数据到 YAPI 项目
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | 导入的数据内容(JSON 字符串) | |
| type | Yes | 导入数据类型 | |
| merge | No | 数据同步模式:normal(普通), good(智能), merge(合并)。默认为 normal | |
| project_id | Yes | 目标项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says '服务端数据导入' but never discloses whether existing interfaces are overwritten, whether the import is idempotent, what merge/sync semantics apply, or what permissions are required — significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming the action, scope, and supported formats with no filler. It is appropriately sized, though the brevity leaves behavioral gaps unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutation tool with no annotations and no output schema, the description covers what is imported but not the side effects, overwrite behavior, or return outcome. It is minimally adequate given the fully documented schema but incomplete on behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (json, type, merge, project_id) are already documented in the schema, and two carry enums. The description only restates the supported formats, which the `type` enum already conveys, adding little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (导入/import), the resource (接口数据/interface data), and the supported source formats (Swagger, HAR, Postman) into a YAPI project. This clearly separates it from siblings like yapi_add_interface or yapi_update_interface, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The format list implies bulk/source-file imports versus single-interface creation, but there is no explicit when-to-use statement, no exclusion of alternatives, and no note on prerequisites such as project permissions. Usage is only inferable from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_list_interfaces_by_catB
获取某个分类下的所有接口列表,支持分页
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码,默认为 1 | |
| catid | Yes | 分类 ID | |
| limit | No | 每页数量,默认为 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation lists all interfaces under a category and supports pagination, which is the core read behavior, but omits auth/permissions, error behavior, and return format. Minimal but adequate for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single front-loaded sentence with no filler. It is efficient, though perhaps too sparse, which is a completeness issue rather than a conciseness problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list tool with full schema coverage and no output schema, the description conveys the essential operation. However, without an output schema it could state what the list items contain or the ordering, and it lacks sibling guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (catid, page, limit) are already documented in the schema. The description adds no parameter detail beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (interfaces) scoped to a category, and mentions pagination. It does not differentiate from siblings like yapi_get_interface_list or yapi_get_interface_cat_list, so 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus yapi_get_interface_list or other list tools; no prerequisites or exclusions are stated. Usage is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_update_interfaceC
更新 YAPI 接口的完整定义(智能判断新增或更新)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 接口 ID | |
| desc | No | 接口描述 | |
| path | Yes | 接口路径 | |
| catid | Yes | 接口分类 ID | |
| title | Yes | 接口标题 | |
| method | Yes | 请求方法 | |
| status | No | 接口状态 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only one behavioral trait — that the tool intelligently decides between adding and updating — but does not explain overwrite semantics, required permissions, side effects, or what happens to existing fields. For a mutation tool this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized for the core purpose, though it could carry a bit more critical context without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation/upsert tool with 7 parameters, 5 required, no annotations, and no output schema. The description states the basic purpose but omits behavioral details, prerequisites, and guidance needed to invoke it correctly relative to its siblings, leaving it incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 7 parameters. The description adds no parameter-specific meaning beyond the schema, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '更新 YAPI 接口的完整定义' (update the complete definition of a YAPI interface). The adjective '完整定义' implicitly differentiates it from the sibling yapi_update_interface_basic, but it does not explicitly name the sibling or otherwise distinguish itself from the other update/add tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as yapi_update_interface_basic or yapi_add_interface. The parenthetical '智能判断新增或更新' hints at upsert behavior but does not tell the agent when this is preferred or what exclusions apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_update_interface_basicB
更新 YAPI 接口的基本信息(仅更新指定字段)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 接口 ID | |
| desc | No | 接口描述 | |
| path | No | 接口路径 | |
| catid | No | 接口分类 ID | |
| title | No | 接口标题 | |
| method | No | 请求方法 | |
| status | No | 接口状态 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that only the specified fields are modified, implying other fields are preserved. However, it omits permission/auth requirements, whether changes are reversible, and the response shape for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the scope qualifier in parentheses, front-loaded and waste-free. It is arguably terse for a mutation tool, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does not cover permissions, side effects, or how it relates to yapi_update_interface. The schema documents parameters well, but the behavioral context an agent needs to pick and call this correctly is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all 7 parameters are documented in the schema with Chinese labels. The description adds no syntax or format detail beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: updating a YAPI interface's basic information. The parenthetical '仅更新指定字段' signals partial-update scope, which helps distinguish it from the sibling yapi_update_interface, though that sibling is never named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance. The agent must infer from the name and the 'basic info / specified fields only' phrasing that this is the lightweight partial-update variant versus yapi_update_interface, but no condition or exclusion is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v1.0.0- First observed
yapi_add_category - First observed
yapi_add_interface - First observed
yapi_get_category_menu - First observed
yapi_get_interface - First observed
yapi_get_interface_cat_list - First observed
yapi_get_interface_list - First observed
yapi_get_project - First observed
yapi_import_data - First observed
yapi_list_interfaces_by_cat - First observed
yapi_update_interface - First observed
yapi_update_interface_basic
TDQS
Scored across 11 tools
Several tools have overlapping purposes: yapi_get_category_menu, yapi_get_interface_cat_list, and yapi_get_interface_list all retrieve interface lists or menus, causing potential confusion. The update tools are also similar, though descriptions clarify the distinction between basic and full updates.
All tool names follow a consistent yapi_verb_noun pattern (e.g., yapi_get_category_menu, yapi_update_interface_basic, yapi_import_data), with clear and predictable naming.
With 11 tools, the set is well-scoped for managing YAPI projects, covering project info, categories, interfaces, and imports without excessive redundancy.
The tool surface lacks deletion operations for interfaces and categories, and there is no tool to retrieve a single category or menu item directly. While core CRUD is partially covered, notable gaps exist that could hinder full project management.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol (MCP) server implementation that enables AI assistants to interact with Anytype's API through natural language, allowing users to manage their knowledge base through conversation.637 npm521MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that converts OpenAPI/Swagger specifications to MCP format, enabling AI assistants to interact with REST APIs through standardized protocol.74TypeScriptMIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server implementation that can be run directly or through Docker, enabling AI assistants to interact with external systems through the MCP standard.2-
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants to make HTTP requests (GET, POST, PUT, DELETE) to external APIs through standardized MCP tools.42MIT