Skip to main content
Glama
kedoupi

@kedoupi/yapi-mcp

by kedoupi

YApi MCP Enhanced

YApi MCP Enhanced

npm version Node.js Version License: MIT Test Coverage Build Status GitHub Issues GitHub Stars PRs Welcome

An enhanced Model Context Protocol (MCP) server for YApi that enables seamless AI integration

English | ็ฎ€ไฝ“ไธญๆ–‡

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-mcp
yarn global add @kedoupi/yapi-mcp
git clone https://github.com/kedoupi/yapi-mcp.git
cd yapi-mcp
npm install
npm run build

โš™๏ธ Configuration

  1. Copy environment template:

cp .env.example .env
  1. Configure your YApi settings:

# Required
YAPI_BASE_URL=https://your-yapi-domain.com
YAPI_PROJECT_TOKEN=your-project-token

# Optional  
LOG_LEVEL=info
CACHE_TTL=300
  1. Test 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.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

๐ŸŽฏ Cursor IDE

  1. Open Cursor Settings (Cmd/Ctrl + ,)

  2. Search for "MCP" or go to Extensions > MCP

  3. 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

yapi_get_projects

List available YApi projects

-

yapi_get_categories

Get project categories

project_id

yapi_get_interface

Get API interface details

interface_id

yapi_search_interfaces

Search APIs with filters

project_id, catid, q, page, limit

yapi_create_interface

Create new API interface

title, path, method, project_id, catid, ...

yapi_update_interface

Update existing interface

id, title, path, method, ...

yapi_clear_cache

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 start

Testing

# 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:integration

Code 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

  1. Fork the repository

  2. Create feature branch (git checkout -b feature/amazing-feature)

  3. Commit changes (git commit -m 'Add amazing feature')

  4. Push to branch (git push origin feature/amazing-feature)

  5. 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

๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿ†˜ Support

Need help? We're here for you:

๐Ÿ™ 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 tools
yapi_clear_cacheA

Clear the internal cache to force fresh data retrieval

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
descNoCategory description
nameYesCategory name
project_idYesProject ID

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
descNoInterface description
pathYesAPI path/endpoint
catidYesCategory ID
titleYesInterface title/name
methodYesHTTP method
statusNoInterface status
res_bodyNoResponse body content (JSON schema or example)
project_idYesProject ID
req_body_typeNoRequest body type
res_body_typeNoResponse body type
req_body_otherNoRequest body content (JSON schema or example)

TDQS

C2.4/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
interface_idYesInterface ID to delete

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID to get categories for

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
interface_idYesInterface ID to retrieve

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_interface_menuA

Get interface menu list with category structure

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the burden. It implies a read-only operation via 'Get' and gives a hint about the return structure ('with category structure'), but it does not elaborate on the exact format, whether project_id is optional, or any potential errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of seven words, front-loading the key action and resource. It contains no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (one parameter, no output schema), the description is adequate but not rich. It would benefit from clarifying what an 'interface menu' is and how it relates to the sibling list tools, but it allows an agent to understand the tool's function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has full coverage for the single parameter (project_id) with a straightforward description. The tool description adds no further meaning to the parameter, but none is needed as the schema is explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets an interface menu list and specifies the category structure, distinguishing it from sibling tools like yapi_get_interface (single interface) and yapi_get_categories (raw categories).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 instead of alternatives such as yapi_list_category_interfaces or yapi_get_categories. The description gives no context about appropriate scenarios.

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesImport data type
catidYesTarget category ID
sync_modeNoSync mode: normal (normal), good (intelligent merge), merge (completely overwrite)
project_idYesTarget project ID
data_sourceYesImport data source (JSON string or URL)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default: 1)
catidYesCategory ID
limitNoNumber of results per page (default: 20)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query string
pageNoPage number (default: 1)
catidNoCategory ID to filter by
limitNoNumber of results per page (default: 20, max: 100)
project_idNoProject ID to search in

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesInterface ID to update
descNoInterface description
pathYesAPI path/endpoint
catidYesCategory ID
titleYesInterface title/name
methodYesHTTP method
statusNoInterface status
res_bodyNoResponse body content (JSON schema or example)
project_idYesProject ID
req_body_typeNoRequest body type
res_body_typeNoResponse body type
req_body_otherNoRequest body content (JSON schema or example)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 12 tool updatesv1.0.1
    • First observedyapi_clear_cache
    • First observedyapi_create_category
    • First observedyapi_create_interface
    • First observedyapi_delete_interface
    • First observedyapi_get_categories
    • First observedyapi_get_interface
    • First observedyapi_get_interface_menu
    • First observedyapi_get_projects
    • First observedyapi_import_data
    • First observedyapi_list_category_interfaces
    • First observedyapi_search_interfaces
    • First observedyapi_update_interface

TDQS

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    29
    9
    GPL 3.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables 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.
    16
    22
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables 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.
    11
    19
    MIT

Latest Blog Posts

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