@kedoupi/yapi-mcp
# YApi MCP Enhanced
<div align="center">

[](https://www.npmjs.com/package/@kedoupi/yapi-mcp)
[](https://nodejs.org/)
[](https://opensource.org/licenses/MIT)
[](./coverage)
[](https://github.com/kedoupi/yapi-mcp/actions)
[](https://github.com/kedoupi/yapi-mcp/issues)
[](https://github.com/kedoupi/yapi-mcp/stargazers)
[](http://makeapullrequest.com)
**An enhanced Model Context Protocol (MCP) server for YApi that enables seamless AI integration**
[English](./README.md) | [็ฎไฝไธญๆ](./README.zh-CN.md)
*Empower Claude, Cursor, and other AI tools with intelligent YApi API management capabilities*
[๐ Quick Start](#-quick-start) โข [๐ง Installation](#-installation) โข [๐ป Platforms](#-platform-integration) โข [๐ Documentation](#-documentation) โข [๐ค Contributing](#-contributing)
</div>
---
## ๐ 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 | ๐ |
## ๐ Quick Start
### Prerequisites
- **Node.js** 18+
- **YApi Server** with API access
- **YApi Project Token**
### โก One-line Installation
```bash
# Install globally
npm install -g @kedoupi/yapi-mcp
# Test your connection
npx @kedoupi/yapi-mcp test-connection
```
### ๐ง Installation
<details>
<summary>๐ฆ NPM Installation</summary>
```bash
npm install -g @kedoupi/yapi-mcp
```
</details>
<details>
<summary>๐งถ Yarn Installation</summary>
```bash
yarn global add @kedoupi/yapi-mcp
```
</details>
<details>
<summary>๐จ Development Installation</summary>
```bash
git clone https://github.com/kedoupi/yapi-mcp.git
cd yapi-mcp
npm install
npm run build
```
</details>
### โ๏ธ Configuration
1. **Copy environment template:**
```bash
cp .env.example .env
```
2. **Configure your YApi settings:**
```bash
# Required
YAPI_BASE_URL=https://your-yapi-domain.com
YAPI_PROJECT_TOKEN=your-project-token
# Optional
LOG_LEVEL=info
CACHE_TTL=300
```
3. **Test connection:**
```bash
npx @kedoupi/yapi-mcp test-connection
```
## ๐ป Platform Integration
### ๐ค Claude Desktop
<details>
<summary>Configure Claude Desktop</summary>
Add to your `claude_desktop_config.json`:
```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`
</details>
### ๐ฏ Cursor IDE
<details>
<summary>Configure Cursor</summary>
1. Open Cursor Settings (Cmd/Ctrl + ,)
2. Search for "MCP" or go to Extensions > MCP
3. Add new MCP server:
```json
{
"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"
}
}
```
</details>
### ๐ Continue (VS Code)
<details>
<summary>Configure Continue</summary>
Add to `.continue/config.json`:
```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"
}
}
]
}
```
</details>
### ๐ง Codeium
<details>
<summary>Configure Codeium</summary>
Add MCP server configuration in Codeium settings:
```json
{
"mcp_servers": {
"yapi": {
"command": "npx",
"args": ["@kedoupi/yapi-mcp"],
"env": {
"YAPI_BASE_URL": "https://your-yapi-domain.com",
"YAPI_PROJECT_TOKEN": "your-project-token"
}
}
}
}
```
</details>
### ๐ Other Platforms
The server supports any MCP-compatible AI tool. Check our [integration guide](./docs/integrations.md) 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 | - |
<details>
<summary>๐ Tool Details</summary>
### `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
</details>
## ๐๏ธ Architecture
```mermaid
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
```bash
# 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
```bash
# 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
```bash
# 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](https://github.com/kedoupi/yapi-mcp/issues/new?template=bug_report.md)
### ๐ก Feature Requests
Have an idea? [Request a feature](https://github.com/kedoupi/yapi-mcp/issues/new?template=feature_request.md)
### ๐ง 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](./CONTRIBUTING.md) 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](https://github.com/YMFE/yapi)** - Visual API management platform
- **[Model Context Protocol](https://github.com/modelcontextprotocol)** - AI tool communication standard
- **[Claude Desktop](https://claude.ai/download)** - Anthropic's desktop application
- **[Cursor](https://cursor.sh/)** - AI-powered code editor
## ๐ License
This project is licensed under the [MIT License](./LICENSE).
## ๐ Support
Need help? We're here for you:
- ๐ [Documentation](./docs)
- ๐ [Report Issues](https://github.com/kedoupi/yapi-mcp/issues)
- ๐ฌ [Discussions](https://github.com/kedoupi/yapi-mcp/discussions)
- ๐ง [Email Support](mailto:support@yapi-mcp.dev)
## ๐ 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
---
<div align="center">
**If this project helps you, please give us a โญ๏ธ**
Made with โค๏ธ by [kedoupi](https://github.com/kedoupi) and [contributors](https://github.com/kedoupi/yapi-mcp/graphs/contributors)
[๐ Homepage](https://yapi-mcp.dev) โข [๐ Docs](./docs) โข [๐ Issues](https://github.com/kedoupi/yapi-mcp/issues) โข [๐ฌ Discussions](https://github.com/kedoupi/yapi-mcp/discussions)
</div>TDQS
Scored across 12 tools
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.