@kedoupi/yapi-mcp
Provides tools for AI agents to interact with YApi projects, categories, and interfaces programmatically.
Click on "Install 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., "@@kedoupi/yapi-mcpsearch for user login API in project myapp"
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 Enhanced
An enhanced Model Context Protocol (MCP) server for YApi that enables seamless AI integration
Empower Claude, Cursor, and other AI tools with intelligent YApi API management capabilities
๐ Quick Start โข ๐ง Installation โข ๐ป Platforms โข ๐ Documentation โข ๐ค Contributing
๐ Features
Feature | Description | Status |
๐ Smart Search | Advanced API search with flexible filtering options | โ |
โ๏ธ Interface Management | Create, read, update API interfaces seamlessly | โ |
๐ฏ Project Organization | Manage projects and categories efficiently | โ |
๐ Enhanced UX | Superior error handling and user feedback | โ |
โก Performance | Intelligent caching and optimized requests | โ |
๐ก๏ธ Reliability | Comprehensive error handling and validation | โ |
๐ Multi-Platform | Claude Desktop, Cursor, Continue, and more | โ |
๐ Real-time Sync | Live synchronization with YApi changes | ๐ |
๐ Analytics | Usage statistics and performance metrics | ๐ |
Related MCP server: YApi MCP Server
๐ Quick Start
Prerequisites
Node.js 18+
YApi Server with API access
YApi Project Token
โก One-line Installation
# Install globally
npm install -g @kedoupi/yapi-mcp
# Test your connection
npx @kedoupi/yapi-mcp test-connection๐ง Installation
npm install -g @kedoupi/yapi-mcpyarn global add @kedoupi/yapi-mcpgit clone https://github.com/kedoupi/yapi-mcp.git
cd yapi-mcp
npm install
npm run buildโ๏ธ Configuration
Copy environment template:
cp .env.example .envConfigure your YApi settings:
# Required
YAPI_BASE_URL=https://your-yapi-domain.com
YAPI_PROJECT_TOKEN=your-project-token
# Optional
LOG_LEVEL=info
CACHE_TTL=300Test connection:
npx @kedoupi/yapi-mcp test-connection๐ป Platform Integration
๐ค Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"@kedoupi/yapi-mcp": {
"command": "npx",
"args": ["@kedoupi/yapi-mcp"],
"env": {
"YAPI_BASE_URL": "https://your-yapi-domain.com",
"YAPI_PROJECT_TOKEN": "your-project-token",
"LOG_LEVEL": "info"
}
}
}
}Config file locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
๐ฏ Cursor IDE
Open Cursor Settings (Cmd/Ctrl + ,)
Search for "MCP" or go to Extensions > MCP
Add new MCP server:
{
"name": "@kedoupi/yapi-mcp",
"command": "npx",
"args": ["@kedoupi/yapi-mcp"],
"env": {
"YAPI_BASE_URL": "https://your-yapi-domain.com",
"YAPI_PROJECT_TOKEN": "your-project-token"
}
}๐ Continue (VS Code)
Add to .continue/config.json:
{
"mcpServers": [
{
"name": "@kedoupi/yapi-mcp",
"command": "npx",
"args": ["@kedoupi/yapi-mcp"],
"env": {
"YAPI_BASE_URL": "https://your-yapi-domain.com",
"YAPI_PROJECT_TOKEN": "your-project-token"
}
}
]
}๐ง Codeium
Add MCP server configuration in Codeium settings:
{
"mcp_servers": {
"yapi": {
"command": "npx",
"args": ["@kedoupi/yapi-mcp"],
"env": {
"YAPI_BASE_URL": "https://your-yapi-domain.com",
"YAPI_PROJECT_TOKEN": "your-project-token"
}
}
}
}๐ Other Platforms
The server supports any MCP-compatible AI tool. Check our integration guide for more platforms.
๐ ๏ธ Available Tools
The server provides these tools for AI interaction:
Tool | Description | Parameters |
| List available YApi projects | - |
| Get project categories |
|
| Get API interface details |
|
| Search APIs with filters |
|
| Create new API interface |
|
| Update existing interface |
|
| Clear internal cache | - |
yapi_search_interfaces
Advanced search with multiple filters:
project_id (optional): Filter by project
catid (optional): Filter by category
q (optional): Search query string
page (optional): Page number for pagination
limit (optional): Results per page (max 100)
yapi_create_interface / yapi_update_interface
Full interface management with support for:
Request/response body specifications
Headers and query parameters
HTTP methods (GET, POST, PUT, DELETE, etc.)
Interface status and descriptions
Category assignments
๐๏ธ Architecture
graph TD
A[AI Tool] -->|MCP Protocol| B[YApi MCP Server]
B -->|HTTP API| C[YApi Server]
B -->|Cache| D[Memory Cache]
B -->|Logging| E[Logger]
B -->|Config| F[Environment]YApiClient: HTTP client for YApi API interactions
MCP Server: Protocol handler for AI tool integration
Caching: Intelligent caching for performance optimization
Configuration: Environment-based configuration management
Error Handling: Comprehensive error management
๐งช Development
Local Development
# Clone repository
git clone https://github.com/kedoupi/yapi-mcp.git
cd yapi-mcp
# Install dependencies
npm install
# Development mode (watch files)
npm run dev
# Build project
npm run build
# Start server
npm startTesting
# Run all tests
npm test
# Watch mode
npm run test:watch
# Coverage report
npm run test:coverage
# Unit tests only
npm run test:unit
# Integration tests
npm run test:integrationCode Quality
# Lint code
npm run lint
# Fix issues
npm run lint:fix
# Clean build
npm run clean๐ Performance
โก Fast Response: < 100ms for cached requests
๐พ Memory Efficient: < 50MB RAM usage
๐ Smart Caching: 5-minute TTL with cleanup
๐ Scalable: Handles 1000+ concurrent requests
๐ค Contributing
We welcome all contributions! Here's how you can help:
๐ Bug Reports
Found a bug? Open an issue
๐ก Feature Requests
Have an idea? Request a feature
๐ง Code Contributions
Fork the repository
Create feature branch (
git checkout -b feature/amazing-feature)Commit changes (
git commit -m 'Add amazing feature')Push to branch (
git push origin feature/amazing-feature)Open a Pull Request
See our Contributing Guide for detailed information.
๐ Other Ways to Help
โญ Star the repository
๐ข Share with others
๐ Improve documentation
๐งช Test new features
๐ Roadmap
๐ฏ Current Focus
Enhanced Mock data support
Batch operations for multiple APIs
Real-time synchronization with YApi
Multi-project parallel management
๐ฎ Future Plans
GraphQL API support
Web-based configuration UI
Custom plugin system
Advanced analytics dashboard
Docker container support
๐ Comparison
Feature | YApi MCP Enhanced | Original YApi MCP | Manual YApi |
AI Integration | โ Advanced | โ Basic | โ None |
Error Handling | โ Comprehensive | โ ๏ธ Limited | โ ๏ธ Manual |
Caching | โ Smart TTL | โ None | โ None |
Testing | โ 80%+ Coverage | โ None | โ Manual |
TypeScript | โ Full Support | โ ๏ธ Partial | โ None |
CLI Tools | โ Rich CLI | โ None | โ None |
๐ Related Projects
YApi - Visual API management platform
Model Context Protocol - AI tool communication standard
Claude Desktop - Anthropic's desktop application
Cursor - AI-powered code editor
๐ License
This project is licensed under the MIT License.
๐ Support
Need help? We're here for you:
๐ Documentation
๐ Report Issues
๐ฌ Discussions
๐ง Email Support
๐ Acknowledgments
Special thanks to:
YApi Team for the excellent API management platform
Anthropic for the Model Context Protocol
All Contributors who make this project better
Open Source Community for inspiration and support
If this project helps you, please give us a โญ๏ธ
Made with โค๏ธ by kedoupi and contributors
๐ Homepage โข ๐ Docs โข ๐ Issues โข ๐ฌ Discussions
Available Tools
12 toolsyapi_clear_cacheA
Clear the internal cache to force fresh data retrieval
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states the effect ('force fresh data retrieval') but does not mention potential side effects such as performance impact, scope (global vs per-user), or whether the operation is safe/idempotent. The information is minimal but not misleading.
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 sentence, immediate and to the point: 'Clear the internal cache to force fresh data retrieval.' It states both the action and the rationale without padding, earning a top score for 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 zero-parameter cache-clearing utility, the description provides the core purpose and effect, which is sufficient for basic invocation. It lacks finer contextual guidance (e.g., when this is needed relative to other operations), but given the simplicity of the tool, the description is nearly complete.
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?
The tool has zero parameters, so the description is not required to explain parameter meaning. The baseline for no parameters is 4, and the description appropriately avoids fabricating parameter details. The empty schema is fully covered by the absence of 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 uses a specific verb+resource ('Clear the internal cache') and clearly states the intended effect ('force fresh data retrieval'). It is distinct from sibling tools that perform CRUD or import operations, leaving no ambiguity about what this tool does.
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 does not provide any guidance on when to use this tool versus alternatives. It does not mention typical scenarios like 'after updates' or 'to verify changes', nor does it advise against overuse. Without this context, an agent may not know the appropriate timing for invoking cache clearing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_create_categoryC
Create a new API category
| Name | Required | Description | Default |
|---|---|---|---|
| desc | No | Category description | |
| name | Yes | Category name | |
| project_id | Yes | Project 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 only states the basic action and gives no information about idempotency, required permissions, error handling, or return values, which is insufficient 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?
The description is a single, efficient sentence with no fluff. However, it is under-specified, lacking important operational details, so conciseness is achieved at the expense of useful information.
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?
The tool has no output schema and no annotations, and the description is only six words. It does not explain what a category is, how it fits into the YAPI hierarchy, or what the response looks like. This is inadequate for an agent to use the tool confidently.
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?
The input schema already describes all three parameters (name, project_id, desc) with 100% coverage, so the baseline is 3. The description adds no additional meaning about parameter relationships or constraints, but it does not need to compensate for schema gaps.
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 clearly identifies the action ('Create') and resource ('API category'), and it is distinct from sibling tools like yapi_create_interface. However, it does not elaborate on what an API category is or how it relates to projects, so it stops short of a 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 is given about when to use this tool versus alternatives. The description does not mention prerequisites (e.g., an existing project) or contrast with related tools like yapi_get_categories, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_create_interfaceC
Create a new API interface
| Name | Required | Description | Default |
|---|---|---|---|
| desc | No | Interface description | |
| path | Yes | API path/endpoint | |
| catid | Yes | Category ID | |
| title | Yes | Interface title/name | |
| method | Yes | HTTP method | |
| status | No | Interface status | |
| res_body | No | Response body content (JSON schema or example) | |
| project_id | Yes | Project ID | |
| req_body_type | No | Request body type | |
| res_body_type | No | Response body type | |
| req_body_other | No | Request body content (JSON schema or example) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As annotations are absent, the description must disclose behavioral traits. It only states the action with no mention of required fields, permissions, response format, or side effects. This is insufficient 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?
The one-sentence description is concise but under-specified for an 11-parameter tool. It lacks structure and additional context, falling into the under-specification category.
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?
The description does not explain what happens on success, error conditions, or required project/category context. Without an output schema, the description should clarify return values, but it does not.
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%, and the description adds no parameter meaning beyond the schema. 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 uses the specific verb 'Create' with resource 'API interface', clearly conveying the action. It distinguishes from update/delete siblings by the create verb, though it lacks scope details like target project.
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 provides no guidance on when to use this tool versus alternatives like yapi_update_interface or yapi_search_interfaces. No preconditions or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_delete_interfaceB
Delete an API interface by ID
| Name | Required | Description | Default |
|---|---|---|---|
| interface_id | Yes | Interface ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states the destructive action but fails to mention irreversibility, required permissions, or potential side effects, leaving the agent without safety-critical context.
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 zero wasted words, perfectly concise for a one-parameter delete tool.
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?
The tool is simple (one required parameter, no output schema), and the description covers the basic purpose. However, it omits essential context for a destructive operation, such as irreversibility and potential impact on related data, which would be expected even for a simple 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 coverage is 100% for the interface_id parameter, which is already described as 'Interface ID to delete'. The tool description adds no additional parameter meaning, so the baseline score 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 clearly states a specific action ('Delete'), the resource ('API interface'), and the identifier ('by ID'), distinguishing it from sibling tools like create, update, and get.
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 provided on when to use this tool versus alternatives, prerequisites, or caveats. For example, it does not mention that deletion is permanent or whether dependent resources must be removed first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_get_categoriesC
Get categories for a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID to get categories for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'get categories' and gives no information about return format, error behavior, authentication requirements, or side effects. The read-only nature is implied but not explicitly disclosed, and no additional behavioral context is provided.
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 sentence, concise and front-loaded. It states the action and scope without unnecessary words or repetition of the tool name. Every word earns its place.
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 simplicity of the tool (one parameter, no nested objects, no output schema), the description is minimal but lacks important context such as return structure, edge cases, or clarifications to disambiguate from similar sibling tools. It is sufficient only for the most basic use case and does not fully prepare an agent for correct invocation.
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% (project_id is described in the schema). The description adds no new information beyond the schema, which already explains the parameter. According to the rubric, high schema coverage yields a baseline of 3, and there is no extra semantic value in the description.
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 clearly states the tool gets categories for a specific project, using the specific verb 'get' and resource 'categories'. It is distinct from siblings like yapi_get_projects or yapi_get_interface, though it does not explicitly differentiate from similar category-related tools like yapi_get_interface_menu.
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 tool versus alternatives. The description lacks any mention of prerequisites, exclusions, or comparisons to sibling tools such as yapi_get_interface_menu or yapi_list_category_interfaces, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_get_interfaceC
Get detailed information about a specific API interface
| Name | Required | Description | Default |
|---|---|---|---|
| interface_id | Yes | Interface ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention that the operation is read-only, what 'detailed information' includes, or any prerequisites or failure modes. The description adds no behavioral context beyond the basic action.
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 concise sentence with no redundant words. It is appropriately short for the tool's simplicity.
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?
The tool has no annotations, no output schema, and a minimal description. It does not clarify the nature of the returned data, usage context, or relationship to sibling tools. For a single-parameter get operation, some explanation of expected output or use cases is needed.
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?
The schema covers 100% of the parameter description, so the baseline is 3. The description reiterates 'specific API interface' but adds no additional meaning about the interface_id parameter or its usage.
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 clear verb ('Get') and resource ('API interface'), indicating it retrieves details for a specific interface. While it doesn't explicitly differentiate from siblings like yapi_get_interface_menu, the purpose is unambiguous.
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 tool vs alternatives such as yapi_search_interfaces or yapi_get_interface_menu. The description only provides a generic statement with no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_get_projectsA
Get list of available YApi projects
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The verb 'Get' implies a read-only operation, but no further behavioral details are disclosed (e.g., return format, pagination, or auth requirements). For a zero-parameter list tool, this is minimally adequate but lacks depth.
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 redundant words or filler. Every word earns its place, making it highly 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?
Given the tool's extremely low complexityโno parameters, no output schema, and a simple list operationโthe description is complete. It states what it returns and is fully comprehensible in context.
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?
The input schema has zero parameters, and the description adds no parameter information. According to the calibration guidelines, 0 parameters means a baseline of 4, since there is nothing to document.
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 'Get list of available YApi projects' uses a specific verb ('Get') and clearly identifies the resource ('projects'), distinguishing it from sibling tools that handle categories, interfaces, or search. It fully states what the tool does.
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 does not explicitly state when to use this tool versus alternatives like search_interfaces, but the simple 'Get list' implies it is the default for retrieving all projects. No exclusions or additional context are provided, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_import_dataB
Import interface data from external sources
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Import data type | |
| catid | Yes | Target category ID | |
| sync_mode | No | Sync mode: normal (normal), good (intelligent merge), merge (completely overwrite) | |
| project_id | Yes | Target project ID | |
| data_source | Yes | Import data source (JSON string or URL) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose safety and side-effect behavior, but it only says 'Import' without explaining whether it overwrites, merges, is reversible, or requires authentication. The sync_mode parameter hints at merge/overwrite behavior, but the description does not elaborate on consequences.
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 filler. Every word adds meaning, making it appropriately concise and structured.
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?
Despite having a detailed schema, the context is incomplete: no output format, no side-effect disclosure, no edge cases or prerequisites. The tool is a mutation with significant overwrite/merge potential, and the description alone leaves the agent underinformed.
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?
The input schema provides 100% coverage with descriptions for all parameters, so the description does not need to add much. It adds minimal context by referencing 'external sources' but otherwise relies on the schema.
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 clearly states the action ('Import') and the resource ('interface data from external sources'). It distinguishes from sibling tools like create/update/delete by focusing on importing external data, making the tool's purpose unambiguous.
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 vs alternatives, prerequisites, or scenarios where it should be avoided. The description simply states the function without any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_list_category_interfacesB
Get interfaces within a specific category
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| catid | Yes | Category ID | |
| limit | No | Number of results per page (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry behavioral disclosure. It does not mention that this is a read-only operation, whether pagination is supported, or any rate limits; the minimal wording relies on the name for implied 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?
The description is a single concise sentence that gets directly to the purpose. It is suitably brief and front-loaded, with no wasted words.
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 list tool, the purpose is clear, but the description omits usage guidance and behavioral context. Given no annotations or output schema, it would benefit from stating that it returns a paginated list of interfaces for the given 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?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides.
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 clearly states 'Get interfaces within a specific category', identifying the verb (get), resource (interfaces), and scope (category). This distinguishes it from siblings like yapi_get_interface for a single interface and yapi_search_interfaces for cross-category search.
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 provided on when to use this tool versus alternatives. The description only states what it does without mentioning contexts, exclusions, or better-suited siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_search_interfacesC
Search for API interfaces with various filters
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search query string | |
| page | No | Page number (default: 1) | |
| catid | No | Category ID to filter by | |
| limit | No | Number of results per page (default: 20, max: 100) | |
| project_id | No | Project ID to search in |
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 disclosing behavior. It only states the action 'search' and the vague 'various filters' without revealing read-only nature, pagination behavior, response structure, or any side effects. This is a significant 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 sentence with no filler, front-loading the verb and resource. It is concise but so terse that it sacrifices informative value; as a stand-alone statement it is efficient yet lacks depth.
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 5 optional parameters and no output schema, the description must explain search behavior, filter semantics, and return format. It provides none of that, leaving major gaps for an agent to understand how to invoke the tool or interpret results.
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 coverage is 100%, with each of the 5 parameters described and constrained (e.g., page limits, default values). The description adds no parameter-specific meaning beyond the vague 'various filters', so the baseline of 3 is 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 uses the specific verb 'Search' and identifies 'API interfaces' as the resource, making the core action clear. However, it lacks scope and does not differentiate from sibling tools like yapi_list_category_interfaces or yapi_get_interface_menu, which also retrieve interfaces.
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 for when to use this tool versus alternatives. It does not mention that this is for cross-project search, nor does it reference sibling tools for specific use cases, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
yapi_update_interfaceC
Update an existing API interface
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Interface ID to update | |
| desc | No | Interface description | |
| path | Yes | API path/endpoint | |
| catid | Yes | Category ID | |
| title | Yes | Interface title/name | |
| method | Yes | HTTP method | |
| status | No | Interface status | |
| res_body | No | Response body content (JSON schema or example) | |
| project_id | Yes | Project ID | |
| req_body_type | No | Request body type | |
| res_body_type | No | Response body type | |
| req_body_other | No | Request body content (JSON schema or example) |
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 of behavioral disclosure. It only states that it updates an interface, without revealing whether it performs a partial or full update, what happens if the interface does not exist, whether all required fields must be present, or any side effects. This is minimal behavioral information 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?
The description is a single sentence with no unnecessary words, and the action verb is front-loaded. It is appropriately concise for a straightforward update operation. However, given the tool's complexity (12 params), one might expect a bit more context, but conciseness itself is well-executed.
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 tool with no annotations, no output schema, and a minimal description that does not explain return values, error behavior, or preconditions. The complexity of the tool (12 parameters, 6 required) means the description should offer more context about what the update does, what it returns, and any caveats, making this inadequate for a complete tool understanding.
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?
The input schema covers 100% of the 12 parameters with descriptions, so the baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides. Since schema coverage is complete, the description doesn't need to compensate, but it also doesn't enrich the meaning beyond the structured fields.
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 clearly states the verb and resource: 'Update an existing API interface.' It distinguishes from the create/delete/get siblings through the explicit 'update' action and 'existing' qualifier. However, it is somewhat generic and doesn't mention which fields or aspects can be updated, though the schema complements this.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention that creating new interfaces should use yapi_create_interface, deleting should use yapi_delete_interface, or any prerequisites or context for updating. No exclusions or alternative scenarios are given.
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. Dates show when Glama detected each change.
12 tool updates
v1.0.1- First observed
yapi_clear_cache - First observed
yapi_create_category - First observed
yapi_create_interface - First observed
yapi_delete_interface - First observed
yapi_get_categories - First observed
yapi_get_interface - First observed
yapi_get_interface_menu - First observed
yapi_get_projects - First observed
yapi_import_data - First observed
yapi_list_category_interfaces - First observed
yapi_search_interfaces - First observed
yapi_update_interface
TDQS
Most tools target distinct resources/actions (projects, categories, interfaces). Some overlap exists between get_interface_menu, get_categories, and list_category_interfaces, but descriptions and parameter differences likely clarify their unique purposes.
All tool names follow a consistent yapi_verb_noun pattern (e.g., get_projects, create_interface, delete_interface). Minor variations like get_interface_menu vs get_categories still adhere to the same verb_noun structure, making the naming predictable.
With 12 tools, the server is well-scoped for an API management platform. Each tool covers a meaningful operation without unnecessary redundancy, fitting the ideal range for a focused MCP server.
The interface lifecycle is well-covered (create, read, update, delete, search, list). Minor gaps exist such as lack of project update/delete or category delete, but core workflows are operational and import/cache support adds practical utility.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Turn any task into the right API calls: discover, evaluate, and integrate public APIs.
AI-powered SaaS tool discovery API. Search 150+ curated business tools and get recommendations.
Discover, compare, and monitor 1,400+ APIs directly from your AI coding agent.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables reading and searching API documentation from YApi instances, allowing AI models to access interface definitions, project API lists, and search through API endpoints using YApi URLs or project IDs.15MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with YApi API management platform through natural language, allowing automated interface management including creating/updating APIs, managing categories, importing data, and retrieving project information.299GPL 3.0
- AlicenseNot gradedqualityFmaintenanceEnables direct interaction with YApi API management platforms from AI editors like Cursor and Claude Desktop, providing complete interface lifecycle management including browsing, creating, updating, and deleting API documentation.1622MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to manage YAPI API documentation by providing tools to create, update, and retrieve interface details. It also supports running automated tests and managing API data across multiple configured projects.1119MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kedoupi/yapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server