npm package: @iflow-mcp/guocong-bincai-yapi-mcp-pro
Description: Model Context Protocol server for YApi integration - Professional YApi interface management tool
Author: guocong-bincai
Latest version: 0.2.1

# 🚀 YAPI MCP PRO - 专业级YApi接口管理工具

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js Version](https://img.shields.io/badge/node-%3E%3D16.0.0-brightgreen.svg)](https://nodejs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-4.9+-blue.svg)](https://www.typescriptlang.org/)

一个功能强大的 Model Context Protocol (MCP) 服务器，专为 YApi 接口管理平台设计。支持在 Cursor、Claude Desktop 等 AI 编辑器中直接操作 YApi，提供完整的接口生命周期管理功能。

## 🚨 常见问题快速解决

### ⚠️ 重要：NPM缓存问题（必看！）

**如果您遇到连接问题，首先检查这个：**

```bash
# 1. 检查版本命令是否正常
npx yapi-mcp-pro --version

# 2. 如果上面命令没有正常输出版本号，执行清缓存：
npm cache clean --force

# 3. 然后重新测试
npx yapi-mcp-pro --version
```

**🔍 判断标准**：
- ✅ **正常**：显示版本号如 `0.2.1`
- ❌ **异常**：显示错误信息、找不到命令、或者卡住不动

> 💡 **为什么会出现这个问题？**
> NPM缓存可能损坏或过期，导致无法正确下载或运行包。清理缓存可以解决大部分连接问题。

### 🔧 快速故障排查清单

| 检查项 | 正常状态 | 异常处理 |
|--------|----------|----------|
| **🔥 NPM包版本** | `npx yapi-mcp-pro --version` 有输出 | **必须执行**: `npm cache clean --force` |
| **YApi服务可访问** | `curl -I {YAPI_URL}` 返回200 | 检查YApi服务状态、网络连接 |
| **Token有效性** | 能正常访问YApi接口 | 重新获取Token或检查权限 |
| **环境变量** | `YAPI_BASE_URL`和`YAPI_TOKEN`已设置 | 检查环境变量或配置文件 |

### 🚦 Cursor状态灯说明

| 状态 | 含义 | 解决方案 |
|------|------|----------|
| 🟢 **绿灯** | 连接正常 | 可以正常使用 |
| 🔴 **红灯** | 连接失败 | 1. 先执行 `npm cache clean --force`<br>2. 检查配置文件<br>3. 验证YApi连接 |
| 🟡 **黄灯** | 连接超时 | 检查网络、防火墙设置 |
| ⚫ **无显示** | 配置错误 | 检查JSON语法、重新配置 |

### 💊 一键修复脚本

如果遇到问题，复制以下命令一键修复：

```bash
# 清理NPM缓存并重新安装
npm cache clean --force && npx clear-npx-cache 2>/dev/null || true

# 验证安装
npx yapi-mcp-pro --version

# 测试YApi连接（替换为您的实际地址）
curl -I "http://your-yapi-server.com"
```

---

<div align="center">

### 🚀 想要立即开始？

**只需要2样东西：**
1. 📍 您的YApi服务器地址
2. 🍪 浏览器中的Cookie

**⏱️ 配置时间：不到5分钟**

[👉 点击这里开始配置](#-5分钟快速开始)

</div>

## ⚡ 5分钟快速开始

> 🎯 **推荐方式**：使用NPM包的stdio模式，无需本地构建，开箱即用！
> 
> 📦 **自动更新**：使用 `npx -y yapi-mcp-pro` 确保总是使用最新版本
> 
> 🔒 **安全便捷**：Cookie认证自动发现所有项目，配置简单

### 🚀 完全新手？3步搞定！

**如果您是第一次接触，按这个顺序：**

1. **📥 安装Node.js** → [点击查看详细安装指南](#-nodejs-完整安装指南新手必看)
2. **🔧 配置Cursor** → [继续下面的配置步骤](#🔧-第二步配置cursor)  
3. **🎉 开始使用** → [测试连接和使用](#🚀-第三步开始使用)

> 💡 **已经有Node.js？** 直接从第2步开始！

### 🎯 第一步：获取YApi认证信息

#### 1. 获取YApi服务器地址
从浏览器地址栏复制您的YApi服务器地址，例如：`http://your-yapi-server.com`

#### 2. 获取Cookie认证信息（推荐方式）

1. **登录YApi**: 在浏览器中正常登录您的YApi系统
2. **打开开发者工具**: 按 `F12` 或右键选择"检查"
3. **切换到Network面板**: 点击"Network"（网络）标签
4. **触发网络请求**: 在YApi页面中随便点击一个功能（如刷新页面）
5. **查看请求详情**: 点击任意一个网络请求（如下图红框所示）
6. **找到Cookie字段**: 在右侧面板中找到"Request Headers"
7. **复制Cookie值**: 找到"Cookie"字段，复制完整的Cookie值（如下图红框所示）

![Cookie获取示例](images/cookie-example.png)

> 💡 **重要提示**：
> - Cookie必须包含 `_yapi_token` 和 `_yapi_uid` 两个关键字段
> - 完整格式如：`_yapi_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; _yapi_uid=1413; 其他cookie值`
> - 请复制完整的Cookie字符串，不要遗漏任何部分

**🔍 Cookie内容示例**：
```
_yapi_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...(您的完整token); _yapi_uid=您的用户ID; keep-alive
```

### 🔧 第二步：配置Cursor

#### 方式一：项目级配置（推荐）

**步骤**：
1. 在您的项目根目录创建 `.cursor` 文件夹（如果不存在）
2. 在 `.cursor` 文件夹中创建 `mcp.json` 文件
3. 复制以下配置内容到文件中：

**💻 终端快速创建**：
```bash
# 创建目录和文件
mkdir -p .cursor
touch .cursor/mcp.json

# 然后编辑文件内容
```

```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "_yapi_token=您的真实token; _yapi_uid=您的用户ID",
        "NODE_ENV": "cli"
      }
    }
  }
}
```

**📝 配置示例**（请替换为您的真实信息）：
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "_yapi_token=您的真实token值; _yapi_uid=您的用户ID",
        "NODE_ENV": "cli"
      }
    }
  }
}
```

#### 方式二：全局配置

编辑Cursor全局配置文件：
- **macOS**: `~/Library/Application Support/Cursor/User/settings.json`
- **Windows**: `%APPDATA%\Cursor\User\settings.json`
- **Linux**: `~/.config/Cursor/User/settings.json`

添加相同的配置内容。

### 🚀 第三步：开始使用

1. **重启Cursor** - 让MCP配置生效
2. **测试连接** - 在Cursor中输入以下命令测试：

```
请获取我的YApi用户信息
请列出所有YApi项目
请搜索用户相关的接口
```

3. **开始管理API** - 现在您可以通过AI助手管理YApi接口了！

### 🆘 快速问题解决

#### ❓ 提示"与YApi服务器通信失败"？
- 检查 `YAPI_BASE_URL` 是否正确
- 确保网络能访问YApi服务器
- 验证YApi服务器是否正常运行

#### ❓ 提示"请登录"或"认证失败"？
- 重新获取Cookie，确保包含 `_yapi_token` 和 `_yapi_uid`
- 检查Cookie是否完整，没有被截断
- 确认YApi登录状态是否有效

#### ❓ Cursor中看不到MCP工具？
- 确认已重启Cursor
- 检查配置文件路径和格式是否正确
- 查看Cursor的MCP连接状态

#### ❓ 需要更多帮助？
- 查看 [详细配置指南](#-详细配置指南)
- 查看 [故障排除](#-故障排除) 章节
- 提交 [GitHub Issue](https://github.com/guocong-bincai/YAPI_MCP_PRO/issues)

---

## 🔧 环境要求与兼容性检查

### 📋 最低系统要求

在开始配置之前，请确保您的系统满足以下要求：

| 要求项 | 最低版本 | 推荐版本 | 验证命令 |
|--------|----------|----------|----------|
| **Node.js** | 16.0.0+ | 18.0.0+ | `node --version` |
| **npm** | 7.0.0+ | 9.0.0+ | `npm --version` |
| **网络访问** | - | - | 能访问YApi服务器和NPM Registry |

### 🚀 Node.js 完整安装指南（新手必看）

> 💡 **如果您已经安装了Node.js，可以跳过此部分**
> 
> 检查是否已安装：在终端/命令提示符中输入 `node --version`
> - 如果显示版本号（如 `v18.17.0`），说明已安装
> - 如果提示 "command not found" 或类似错误，需要安装

#### 🎯 方式一：官方安装器（推荐新手）

**第一步：访问官网下载**

1. 打开浏览器，访问 **[https://nodejs.org/](https://nodejs.org/)**
2. 页面会自动识别您的操作系统
3. 点击绿色的 **"Download Node.js (LTS)"** 按钮

![Node.js官网下载](https://nodejs.org/static/images/logo.svg)

**第二步：根据您的操作系统选择**

| 操作系统 | 下载文件 | 安装方式 |
|----------|----------|----------|
| **Windows** | `node-v18.x.x-x64.msi` | 双击运行，按向导安装 |
| **macOS** | `node-v18.x.x.pkg` | 双击运行，按向导安装 |
| **Linux** | `node-v18.x.x-linux-x64.tar.xz` | 解压或使用包管理器 |

**第三步：安装过程**

**🪟 Windows 用户：**
1. 双击下载的 `.msi` 文件
2. 点击 "Next" 接受许可协议
3. 选择安装路径（建议使用默认路径）
4. **重要：确保勾选 "Add to PATH" 选项**
5. 点击 "Install" 开始安装
6. 安装完成后重启命令提示符

**🍎 macOS 用户：**
1. 双击下载的 `.pkg` 文件
2. 按照安装向导提示操作
3. 输入管理员密码（如果需要）
4. 安装完成后重启终端

**🐧 Linux 用户：**
```bash
# 下载并解压（以Ubuntu为例）
wget https://nodejs.org/dist/v18.17.0/node-v18.17.0-linux-x64.tar.xz
tar -xf node-v18.17.0-linux-x64.tar.xz

# 移动到系统目录
sudo mv node-v18.17.0-linux-x64 /opt/nodejs

# 创建软链接
sudo ln -s /opt/nodejs/bin/node /usr/local/bin/node
sudo ln -s /opt/nodejs/bin/npm /usr/local/bin/npm
sudo ln -s /opt/nodejs/bin/npx /usr/local/bin/npx
```

#### ⚡ 方式二：包管理器安装（适合有经验用户）

**🪟 Windows (使用 Chocolatey):**
```powershell
# 首先安装Chocolatey (如果没有)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

# 安装Node.js
choco install nodejs

# 验证安装
node --version
npm --version
```

**🍎 macOS (使用 Homebrew):**
```bash
# 首先安装Homebrew (如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装Node.js
brew install node

# 验证安装
node --version
npm --version
```

**🐧 Linux (使用包管理器):**
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install nodejs npm

# CentOS/RHEL (使用dnf)
sudo dnf install nodejs npm

# CentOS/RHEL (使用yum)
sudo yum install nodejs npm

# Arch Linux
sudo pacman -S nodejs npm

# 验证安装
node --version
npm --version
```

#### 🔍 安装验证

**安装完成后，请执行以下命令验证：**

```bash
# 检查Node.js版本（应显示 v16.0.0 或更高版本）
node --version

# 检查npm版本（应显示 7.0.0 或更高版本）
npm --version

# 检查npx是否可用
npx --version

# 测试npm连接（可选）
npm ping
```

**✅ 成功安装的标志：**
- `node --version` 显示版本号（如：`v18.17.0`）
- `npm --version` 显示版本号（如：`9.6.7`）
- `npx --version` 显示版本号（如：`9.6.7`）

#### ⚠️ 常见安装问题

**❌ "node: command not found"**
- **Windows**: 重启命令提示符，或检查环境变量PATH
- **macOS/Linux**: 重启终端，或手动添加到PATH：
  ```bash
  echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
  source ~/.bashrc
  ```

**❌ 版本过低**
```bash
# 更新到最新版本
npm install -g npm@latest

# 或重新下载安装最新版Node.js
```

**❌ 权限问题**
```bash
# macOS/Linux: 修复npm权限
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) /usr/local/lib/node_modules
```

**❌ 网络问题（中国用户）**
```bash
# 切换到国内镜像源
npm config set registry https://registry.npmmirror.com

# 验证镜像源
npm config get registry
```

#### 🎉 安装成功后的建议配置

```bash
# 设置npm全局安装目录（避免权限问题）
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

# 添加到环境变量（macOS/Linux）
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
source ~/.profile

# Windows用户需要手动添加 %USERPROFILE%\.npm-global 到PATH环境变量
```

#### 🚀 验证YApi MCP Pro可用性

**安装Node.js后，立即测试我们的工具：**

```bash
# 测试YApi MCP Pro是否可以正常运行
npx -y yapi-mcp-pro --help

# 如果看到帮助信息，说明环境配置成功！
```

**看到类似输出表示成功：**
```
选项：
  --version            显示版本号
  --yapi-base-url      YApi服务器基础URL
  --yapi-token         YApi服务器授权Token
  --help               显示帮助信息
```

### 🔍 环境检查脚本

**一键检查所有环境要求**：

```bash
# Windows (PowerShell)
echo "=== YApi MCP Pro 环境检查 ===" && echo "Node.js版本:" && node --version && echo "NPM版本:" && npm --version && echo "网络连通性:" && npm ping

# macOS/Linux
echo "=== YApi MCP Pro 环境检查 ===" && echo "Node.js版本:" && node --version && echo "NPM版本:" && npm --version && echo "测试NPM连接:" && npm ping

# 检查NPX可用性
npx --version
```

### ⚠️ 常见环境问题

#### ❌ "node: command not found"
**问题**: 系统未安装Node.js
**解决方案**:
- 访问 [nodejs.org](https://nodejs.org/) 下载安装最新LTS版本
- 或使用包管理器：
  ```bash
  # macOS (使用Homebrew)
  brew install node
  
  # Ubuntu/Debian
  sudo apt update && sudo apt install nodejs npm
  
  # Windows (使用Chocolatey)
  choco install nodejs
  ```

#### ❌ "npx: command not found"
**问题**: NPX未正确安装
**解决方案**:
```bash
# 重新安装NPM (NPX包含在NPM中)
npm install -g npm@latest

# 或单独安装NPX
npm install -g npx
```

#### ❌ "EACCES: permission denied"
**问题**: 权限不足
**解决方案**:
```bash
# macOS/Linux: 修复NPM权限
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) /usr/local/lib/node_modules

# 或配置NPM使用不同目录
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
```

#### ❌ 网络连接问题
**问题**: 无法下载NPM包
**解决方案**:
```bash
# 检查NPM Registry连接
npm config get registry

# 切换到国内镜像（如果在中国）
npm config set registry https://registry.npmmirror.com

# 测试网络连接
curl -I https://registry.npmjs.org
```

### 🌍 不同平台的详细配置

#### 🍎 macOS 配置指南

**第一步：安装依赖**
```bash
# 安装Node.js (推荐使用Homebrew)
brew install node

# 验证安装
node --version && npm --version
```

**第二步：配置Cursor**
```bash
# 创建配置目录
mkdir -p ~/.config/Cursor/User

# 编辑配置文件
code ~/.config/Cursor/User/settings.json
# 或使用任意文本编辑器
```

**第三步：添加MCP配置**
在 `settings.json` 中添加：
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "您的完整Cookie字符串",
        "NODE_ENV": "cli"
      }
    }
  }
}
```

#### 🪟 Windows 配置指南

**第一步：安装依赖**
```powershell
# 使用官方安装器
# 访问 https://nodejs.org/ 下载Windows安装包

# 或使用Chocolatey
choco install nodejs

# 验证安装
node --version; npm --version
```

**第二步：配置Cursor**
```powershell
# 打开配置目录
explorer %APPDATA%\Cursor\User\

# 编辑settings.json文件
# 如果文件不存在，创建它
```

**第三步：添加MCP配置**
创建或编辑 `%APPDATA%\Cursor\User\settings.json`：
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "您的完整Cookie字符串",
        "NODE_ENV": "cli"
      }
    }
  }
}
```

#### 🐧 Linux 配置指南

**第一步：安装依赖**
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install nodejs npm

# CentOS/RHEL/Fedora
sudo dnf install nodejs npm  # Fedora
sudo yum install nodejs npm  # CentOS/RHEL

# Arch Linux
sudo pacman -S nodejs npm

# 验证安装
node --version && npm --version
```

**第二步：配置Cursor**
```bash
# 创建配置目录
mkdir -p ~/.config/Cursor/User

# 编辑配置文件
nano ~/.config/Cursor/User/settings.json
# 或使用您喜欢的编辑器
```

**第三步：添加MCP配置**
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "您的完整Cookie字符串",
        "NODE_ENV": "cli"
      }
    }
  }
}
```

### 🧪 配置验证

**完成配置后，使用以下步骤验证**：

1. **测试MCP服务器可执行性**：
```bash
# 在任意目录运行
npx -y yapi-mcp-pro --help
```

2. **检查Cursor配置**：
   - 重启Cursor
   - 打开任意项目
   - 在聊天中输入："请获取我的YApi用户信息"

3. **验证连接状态**：
   - 成功：返回用户信息
   - 失败：检查错误信息并参考 [故障排除](#-故障排除) 章节

### 📊 配置成功指标

✅ **成功配置的标志**：
- `npx -y yapi-mcp-pro --help` 能正常显示帮助信息
- Cursor重启后在MCP连接状态中显示 `yapi-mcp-pro`
- AI助手能正常响应YApi相关请求
- 能成功获取用户信息和项目列表

---

## 📋 目录

- [⚡ 5分钟快速开始](#-5分钟快速开始) - **推荐先看这里**
- [✨ 核心特性](#-核心特性)
- [🎯 支持的AI编辑器](#-支持的ai编辑器)
- [🔧 详细配置指南](#-详细配置指南)
- [📚 MCP工具详解](#-mcp工具详解)
- [💡 使用示例](#-使用示例)
- [🛠️ 项目管理](#️-项目管理)
- [🔍 故障排除](#-故障排除)
- [📖 高级用法](#-高级用法)
- [🤝 贡献指南](#-贡献指南)

## ✨ 核心特性

### 🎯 全面的接口管理
- **接口CRUD**: 创建、读取、更新、删除接口
- **智能搜索**: 多维度搜索接口（名称、路径、项目）
- **批量操作**: 支持接口复制、批量导入导出
- **实时同步**: 与YApi服务器实时同步数据

### 🏗️ 项目与分类管理
- **项目管理**: 创建、更新项目信息
- **分类管理**: 完整的接口分类生命周期管理
- **权限控制**: 基于YApi权限系统的安全访问

### 👥 用户与团队协作
- **用户信息**: 获取当前用户详细信息
- **团队管理**: 查看用户所属分组和权限

### 🧪 测试与质量保证
- **测试集合**: 管理接口测试用例集合
- **数据导入导出**: 支持Swagger、JSON等格式

### ⚡ 性能与体验
- **智能缓存**: 多层缓存机制，提升响应速度
- **实时通信**: SSE支持，实时数据更新
- **双重认证**: Cookie和Token两种认证方式
- **详细日志**: 完整的操作日志和错误追踪

## 🎯 支持的AI编辑器

| 编辑器 | 支持状态 | 配置方式 |
|--------|----------|----------|
| **Cursor** | ✅ 完全支持 | MCP配置 |
| **Claude Desktop** | ✅ 完全支持 | MCP配置 |
| **VS Code** | 🔄 开发中 | 插件形式 |
| **其他支持MCP的工具** | ✅ 理论支持 | 标准MCP协议 |

## 🔧 详细配置指南

### 1. 环境要求

- **Node.js**: >= 16.0.0
- **npm/pnpm**: 最新版本
- **YApi服务器**: 可访问的YApi实例

### 2. 安装部署

#### 方式一：npm安装（推荐）

```bash
# 全局安装
npm install -g yapi-mcp

# 或使用pnpm
pnpm add -g yapi-mcp
```

#### 方式二：源码安装

```bash
# 克隆项目
git clone https://github.com/your-username/yapi-mcp.git
cd yapi-mcp

# 安装依赖
npm install
# 或使用 pnpm (推荐)
pnpm install

# 构建项目
npm run build
```

### 3. 快速配置

#### 📁 配置文件说明

项目的所有敏感信息都集中在 `.env` 文件中，这个文件**不会**被提交到Git，确保您的隐私安全。

```bash
# 1. 复制配置模板
cp .env.example .env

# 2. 编辑配置文件（选择您喜欢的编辑器）
vim .env
# 或者
nano .env
# 或者
code .env
```

💡 **提示**: `.env.example` 文件包含了**超详细的配置指南**，包括：
- 🍪 Cookie认证的分步骤获取方法（推荐）
- 🔑 Token认证的完整操作流程
- 📋 真实格式的配置示例
- ✅ 配置验证和测试方法

**强烈建议先阅读 `.env.example` 文件中的详细说明！**

#### 🔐 必填配置项

打开 `.env` 文件，您需要填写以下**必填项**：

```env
# === 必填项 ===
YAPI_BASE_URL=http://your-yapi-server.com    # 替换为您的YApi服务器地址
YAPI_TOKEN=your_auth_token                   # 替换为您的认证信息（见下方获取方法）

# === 可选项（有默认值）===
PORT=3388                                    # MCP服务端口，默认3388
YAPI_CACHE_TTL=10                           # 缓存时间（分钟），默认10分钟
YAPI_LOG_LEVEL=info                         # 日志级别，默认info
```

#### 🎯 获取认证信息的两种方式

##### 方式一：Cookie认证（推荐）⭐
**优势**: 自动发现所有有权限的项目，配置简单

**步骤**:
1. 打开浏览器，登录您的YApi系统
2. 按 `F12` 打开开发者工具
3. 切换到 `Network`（网络）面板
4. 在YApi页面中随便点击一个功能（如刷新页面）
5. 在网络请求中找到任意一个请求，点击查看详情
6. 找到 `Request Headers` 中的 `Cookie` 字段
7. 复制整个Cookie值

```env
# Cookie认证示例（复制您自己的Cookie）
YAPI_TOKEN=_yapi_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; _yapi_uid=1234; other_cookies=values
```

##### 方式二：Token认证
**优势**: 长期有效，更安全

**步骤**:
1. 登录YApi，进入您要管理的项目
2. 点击项目 `设置` → `Token配置`
3. 复制项目Token和项目ID
4. 按格式配置多个项目（如有需要）

```env
# Token认证示例
# 格式：项目ID:项目Token,项目ID:项目Token
YAPI_TOKEN=PROJECT_ID_1:your_project_token_1,PROJECT_ID_2:your_project_token_2

# 单个项目示例
YAPI_TOKEN=PROJECT_ID:your_project_token
```

#### 📋 完整配置示例

```env
# ================================
# YAPI MCP PRO 配置文件
# ================================
# ⚠️ 重要：此文件包含敏感信息，不要提交到Git仓库！

# === 基础配置（必填）===
YAPI_BASE_URL=http://yapi.yourcompany.com
YAPI_TOKEN=_yapi_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; _yapi_uid=1234

# === 服务配置（可选）===
PORT=3388
YAPI_CACHE_TTL=10
YAPI_LOG_LEVEL=info

# === 高级配置（可选）===
# YAPI_GROUP_ID=YOUR_GROUP_ID      # 默认分组ID（创建项目时使用）
# YAPI_ENABLE_CACHE=true          # 是否启用缓存，默认true
```

### 4. 启动服务

```bash
# 使用项目管理脚本（推荐）
./start-mcp.sh start

# 或手动启动
npm run dev
```

## 🔧 配置指南

### 认证方式选择

#### 🍪 Cookie认证（推荐）

**优势**: 自动发现所有项目，配置简单，权限完整

**获取步骤**:
1. 浏览器登录YApi
2. 打开开发者工具 (F12)
3. 网络面板中复制任意请求的Cookie
4. 配置到 `.env` 文件

```env
# Cookie认证配置
YAPI_BASE_URL=http://your-yapi-server.com
YAPI_TOKEN=_yapi_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; _yapi_uid=YOUR_USER_ID
```

#### 🔑 Token认证

**优势**: 长期有效，安全性高，适合生产环境

**获取步骤**:
1. YApi项目 → 设置 → Token配置
2. 复制项目Token和项目ID
3. 按格式配置多个项目

```env
# Token认证配置
YAPI_BASE_URL=http://your-yapi-server.com
YAPI_TOKEN=PROJECT_ID:YOUR_PROJECT_TOKEN,ANOTHER_PROJECT_ID:ANOTHER_TOKEN
```

### 完整配置参数

```env
# === 基础配置 ===
YAPI_BASE_URL=http://your-yapi-server.com    # YApi服务器地址
PORT=3388                                     # MCP服务端口

# === 认证配置 ===
YAPI_TOKEN=your_auth_info                     # 认证信息（Cookie或Token）

# === 性能配置 ===
YAPI_CACHE_TTL=10                            # 缓存时间（分钟）
YAPI_LOG_LEVEL=info                          # 日志级别

# === 可选配置 ===
YAPI_GROUP_ID=YOUR_GROUP_ID                  # 默认分组ID（创建项目时使用）
```

### 🔗 AI编辑器MCP配置

YAPI MCP PRO 支持多种MCP连接方式，满足不同使用场景的需求。

#### 🎯 Cursor配置

##### 配置文件位置
- **项目级配置**（推荐）: `.cursor/mcp.json`
- **全局配置**: 
  - macOS: `~/Library/Application Support/Cursor/User/settings.json`
  - Windows: `%APPDATA%\Cursor\User\settings.json`
  - Linux: `~/.config/Cursor/User/settings.json`

##### 🚀 方式一：NPM包模式（推荐）⭐

**优势**: 
- ✅ 自动下载最新版本，无需本地构建
- ✅ 配置简单，开箱即用
- ✅ 支持多项目，配置灵活
- ✅ 自动依赖管理

**项目级配置** `.cursor/mcp.json`:
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "_yapi_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; _yapi_uid=YOUR_USER_ID",
        "NODE_ENV": "cli",
        "YAPI_LOG_LEVEL": "info",
        "YAPI_CACHE_TTL": "10"
      }
    }
  }
}
```

**全局配置** `settings.json`:
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "your_cookie_or_token_here",
        "NODE_ENV": "cli"
      }
    }
  }
}
```

##### 🔧 方式二：本地服务器模式（HTTP/SSE）

**优势**:
- ✅ 性能更好，减少启动时间
- ✅ 支持实时数据推送
- ✅ 便于调试和开发
- ✅ 支持多客户端共享

**步骤**:
1. 启动本地MCP服务器
```bash
# 启动服务
./start-mcp.sh start

# 检查状态
./start-mcp.sh status
```

2. 配置Cursor连接
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "url": "http://localhost:3388/sse"
    }
  }
}
```

##### 🛠️ 方式三：本地构建模式

**适用场景**: 需要自定义修改源码

```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "node",
      "args": ["/path/to/yapi-mcp/dist/index.js"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "your_token"
      }
    }
  }
}
```

#### 🖥️ Claude Desktop配置

编辑 `claude_desktop_config.json`:

##### NPM包模式（推荐）
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "your_cookie_or_token",
        "NODE_ENV": "cli"
      }
    }
  }
}
```

##### 本地构建模式
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "node",
      "args": ["/path/to/yapi-mcp/dist/index.js"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "your_token"
      }
    }
  }
}
```

#### 🔄 其他MCP客户端

任何支持MCP协议的工具都可以连接，只需按照对应工具的MCP配置格式进行配置。

#### 📊 配置方式对比

| 配置方式 | 优势 | 缺点 | 适用场景 |
|----------|------|------|----------|
| **NPM包模式** | 🟢 配置简单<br/>🟢 自动更新<br/>🟢 无需构建 | 🔴 首次启动稍慢 | 🎯 **推荐**，适合大多数用户 |
| **HTTP/SSE模式** | 🟢 性能最佳<br/>🟢 支持实时推送<br/>🟢 多客户端共享 | 🔴 需要启动服务<br/>🔴 占用端口 | 🎯 重度使用，多项目协作 |
| **本地构建模式** | 🟢 完全控制<br/>🟢 可自定义修改 | 🔴 需要构建<br/>🔴 维护成本高 | 🎯 开发者，需要定制功能 |

#### ⚙️ 环境变量配置详解

| 环境变量 | 说明 | 默认值 | 示例 |
|----------|------|--------|------|
| `YAPI_BASE_URL` | YApi服务器地址 | 无 | `http://yapi.example.com` |
| `YAPI_TOKEN` | 认证Token或Cookie | 无 | `_yapi_token=xxx; _yapi_uid=123` |
| `NODE_ENV` | 运行环境 | `production` | `cli`, `development` |
| `YAPI_LOG_LEVEL` | 日志级别 | `info` | `debug`, `warn`, `error` |
| `YAPI_CACHE_TTL` | 缓存时效（分钟） | `10` | `30` |
| `YAPI_ENABLE_CACHE` | 是否启用缓存 | `true` | `false` |

#### 🔧 配置验证

配置完成后，在AI编辑器中测试连接：

```
# 测试连接
请获取我的YApi用户信息

# 测试项目列表
请列出所有YApi项目

# 测试接口搜索
请搜索用户相关的接口
```

## 📚 MCP工具详解

YAPI MCP PRO 提供 **19个专业工具**，涵盖YApi的完整功能生态：

### 🔧 基础接口管理 (5个工具)

#### 1. `yapi_get_api_desc` - 获取接口详细信息
**功能**: 获取指定接口的完整定义信息
**参数**:
- `projectId` (string): 项目ID
- `apiId` (string): 接口ID

**返回信息**:
- 接口基本信息（名称、路径、方法）
- 请求参数（URL参数、查询参数、请求头、请求体）
- 响应信息（响应类型、响应内容）
- 接口文档和描述

#### 2. `yapi_save_api` - 新增或更新接口
**功能**: 创建新接口或更新现有接口
**参数**:
- `projectId` (string): 项目ID
- `catid` (string): 分类ID
- `title` (string): 接口标题
- `path` (string): 接口路径
- `method` (string): 请求方法
- `id` (string, 可选): 接口ID（更新时必填）
- `desc` (string, 可选): 接口描述
- `req_*` (可选): 各种请求参数配置
- `res_*` (可选): 响应配置

#### 3. `yapi_search_apis` - 搜索接口
**功能**: 多维度搜索接口
**参数**:
- `nameKeyword` (string, 可选): 接口名称关键字
- `pathKeyword` (string, 可选): 接口路径关键字
- `projectKeyword` (string, 可选): 项目关键字
- `limit` (number, 可选): 返回结果数量限制

**搜索能力**:
- 支持模糊匹配
- 跨项目搜索
- 智能排序和去重

#### 4. `yapi_delete_interface` - 删除接口
**功能**: 删除指定接口
**参数**:
- `interfaceId` (string): 接口ID
- `projectId` (string): 项目ID

#### 5. `yapi_copy_interface` - 复制接口
**功能**: 复制接口到指定分类
**参数**:
- `interfaceId` (string): 源接口ID
- `projectId` (string): 项目ID
- `catId` (string, 可选): 目标分类ID

### 📊 项目管理 (3个工具)

#### 6. `yapi_list_projects` - 列出项目
**功能**: 获取所有可访问的项目列表
**返回信息**:
- 项目ID和名称
- 项目描述
- 基础路径
- 所属分组信息

#### 7. `yapi_create_project` - 创建项目
**功能**: 创建新的YApi项目
**参数**:
- `name` (string): 项目名称
- `basepath` (string): 基础路径
- `group_id` (number): 所属分组ID
- `desc` (string, 可选): 项目描述
- `color` (string, 可选): 项目颜色
- `icon` (string, 可选): 项目图标

#### 8. `yapi_update_project` - 更新项目
**功能**: 更新项目信息
**参数**:
- `id` (number): 项目ID
- `name` (string, 可选): 项目名称
- `basepath` (string, 可选): 基础路径
- `desc` (string, 可选): 项目描述
- `color` (string, 可选): 项目颜色
- `icon` (string, 可选): 项目图标

### 📁 分类管理 (4个工具)

#### 9. `yapi_get_categories` - 获取分类列表
**功能**: 获取项目下的所有接口分类
**参数**:
- `projectId` (string): 项目ID

**返回信息**:
- 分类基本信息
- 每个分类下的接口列表
- 分类创建和更新时间

#### 10. `yapi_create_category` - 创建分类
**功能**: 在项目中创建新的接口分类
**参数**:
- `name` (string): 分类名称
- `project_id` (number): 项目ID
- `desc` (string, 可选): 分类描述

#### 11. `yapi_update_category` - 更新分类
**功能**: 更新分类信息
**参数**:
- `catId` (string): 分类ID
- `name` (string): 分类名称
- `desc` (string, 可选): 分类描述

#### 12. `yapi_delete_category` - 删除分类
**功能**: 删除指定分类
**参数**:
- `catId` (string): 分类ID

### 👤 用户管理 (2个工具)

#### 13. `yapi_get_user_info` - 获取用户信息
**功能**: 获取当前登录用户的详细信息
**返回信息**:
- 用户ID和用户名
- 邮箱地址
- 用户角色和权限
- 账户创建和更新时间

#### 14. `yapi_get_user_groups` - 获取用户分组
**功能**: 获取用户所属的分组列表
**返回信息**:
- 分组ID和名称
- 分组描述
- 成员数量
- 分组创建时间

### 🧪 测试集合 (2个工具)

#### 15. `yapi_get_test_collections` - 获取测试集合
**功能**: 获取项目的测试集合列表
**参数**:
- `projectId` (string): 项目ID

**返回信息**:
- 测试集合基本信息
- 创建和更新时间
- 集合描述

#### 16. `yapi_create_test_collection` - 创建测试集合
**功能**: 创建新的测试集合
**参数**:
- `name` (string): 集合名称
- `project_id` (number): 项目ID
- `desc` (string, 可选): 集合描述

### 📥📤 数据导入导出 (2个工具)

#### 17. `yapi_import_swagger` - 导入Swagger数据
**功能**: 将Swagger文档导入到YApi项目
**参数**:
- `projectId` (string): 目标项目ID
- `catId` (string): 目标分类ID
- `swaggerData` (string): Swagger JSON数据
- `merge` (string, 可选): 合并模式

**支持的合并模式**:
- `normal`: 普通模式
- `good`: 智能合并
- `merge`: 完全覆盖

#### 18. `yapi_export_project` - 导出项目数据
**功能**: 导出项目数据为指定格式
**参数**:
- `projectId` (string): 项目ID
- `type` (string, 可选): 导出格式

**支持的导出格式**:
- `json`: JSON格式
- `markdown`: Markdown文档
- `swagger`: Swagger格式

### 🔄 其他功能 (1个工具)

#### 19. `yapi_run_interface` - 运行接口测试
**功能**: 执行接口测试请求
**参数**:
- `interface_id` (string): 接口ID
- `project_id` (string): 项目ID
- `env_id` (string, 可选): 环境ID
- `domain` (string, 可选): 测试域名
- `headers` (array, 可选): 自定义请求头
- `params` (object, 可选): 请求参数
- `body` (object, 可选): 请求体

## 💡 使用示例

### 🔍 接口搜索与管理

```
# 搜索登录相关接口
请搜索包含"登录"的接口

# 获取特定接口详情
请获取项目YOUR_PROJECT_ID中接口ID为123的详细信息

# 创建新接口
请在项目YOUR_PROJECT_ID的"用户管理"分类中创建一个用户注册接口：
- 路径：/api/user/register
- 方法：POST
- 描述：用户注册接口
```

### 🏗️ 项目初始化

```
# 创建新项目
请创建一个名为"电商系统"的项目，基础路径为"/api"

# 为项目创建分类结构
请为项目YOUR_PROJECT_ID创建以下分类：
1. 用户管理
2. 商品管理  
3. 订单管理
4. 支付管理
```

### 📊 批量操作

```
# 批量创建接口
请为用户模块创建以下接口，都放在项目YOUR_PROJECT_ID的用户管理分类中：
1. GET /api/user/profile - 获取用户信息
2. PUT /api/user/profile - 更新用户信息
3. DELETE /api/user/account - 删除账户

# 导入Swagger文档
请将以下Swagger数据导入到项目YOUR_PROJECT_ID的API分类中：
[粘贴Swagger JSON]
```

### 🧪 测试与验证

```
# 创建测试集合
请为项目YOUR_PROJECT_ID创建一个名为"用户模块测试"的测试集合

# 运行接口测试
请测试项目YOUR_PROJECT_ID中接口ID为123的接口，使用测试环境
```

## 🛠️ 项目管理

### 服务管理脚本

项目提供了便捷的管理脚本 `start-mcp.sh`：

```bash
# 启动服务
./start-mcp.sh start

# 检查状态
./start-mcp.sh status

# 停止服务
./start-mcp.sh stop

# 重启服务
./start-mcp.sh restart

# 查看日志
./start-mcp.sh logs

# 查看实时日志
./start-mcp.sh logs -f
```

### 日志管理

```bash
# 查看错误日志
grep "ERROR" yapi-mcp.log

# 查看特定时间的日志
grep "2024-01-01" yapi-mcp.log

# 清理日志
> yapi-mcp.log
```

### 缓存管理

```bash
# 查看缓存目录
ls -la .yapi-cache/

# 清理缓存
rm -rf .yapi-cache/*

# 重新构建缓存
./start-mcp.sh restart
```

## 🔍 故障排除

### 常见问题

#### 🍪 Cookie认证问题

**问题**: "请登录..." 错误
```bash
# 解决方案
1. 重新登录YApi获取新Cookie
2. 检查Cookie格式是否完整
3. 确认YApi服务器地址正确
```

**问题**: "未配置项目ID，无法加载项目信息"
```bash
# 解决方案
1. 确保Cookie包含 _yapi_token 和 _yapi_uid
2. 检查Cookie是否被截断
3. 重新复制完整的Cookie字符串
```

#### 🔑 Token认证问题

**问题**: "未配置项目ID xxx 的token"
```bash
# 解决方案
1. 检查 .env 中 YAPI_TOKEN 格式
2. 确认项目ID和Token匹配
3. 验证Token是否有效
```

#### 🌐 网络连接问题

**问题**: "与YApi服务器通信失败"
```bash
# 诊断步骤
1. ping your-yapi-server.com
2. curl -I http://your-yapi-server.com
3. 检查防火墙设置
4. 确认YApi服务器状态
```

#### 🔧 服务启动问题

**问题**: 端口被占用
```bash
# 查找占用进程
lsof -i :3388

# 修改端口
echo "PORT=3389" >> .env

# 重启服务
./start-mcp.sh restart
```

### 调试模式

```bash
# 启用调试日志
echo "YAPI_LOG_LEVEL=debug" >> .env

# 重启服务
./start-mcp.sh restart

# 查看详细日志
./start-mcp.sh logs -f
```

### 性能优化

```bash
# 调整缓存时间
echo "YAPI_CACHE_TTL=30" >> .env

# 监控内存使用
ps aux | grep node

# 清理无用缓存
find .yapi-cache -name "*.json" -mtime +7 -delete
```

## 📖 高级用法

### 自定义工具开发

```typescript
// 扩展新的MCP工具
this.server.tool(
  "yapi_custom_tool",
  "自定义工具描述",
  {
    param1: z.string().describe("参数描述")
  },
  async ({ param1 }) => {
    // 工具实现逻辑
    const result = await this.yapiService.customMethod(param1);
    return {
      content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
    };
  }
);
```

### 批量数据处理

```typescript
// 批量导入接口
const interfaces = [
  { title: "接口1", path: "/api/test1", method: "GET" },
  { title: "接口2", path: "/api/test2", method: "POST" }
];

for (const interfaceData of interfaces) {
  await yapiService.saveInterface({
    ...interfaceData,
    project_id: "YOUR_PROJECT_ID",
    catid: "123"
  });
}
```

### 集成CI/CD

```yaml
# GitHub Actions 示例
name: YApi Sync
on:
  push:
    branches: [main]

jobs:
  sync:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '16'
      - name: Install dependencies
        run: npm install
      - name: Sync to YApi
        run: |
          npm run build
          node scripts/sync-to-yapi.js
        env:
          YAPI_BASE_URL: ${{ secrets.YAPI_BASE_URL }}
          YAPI_TOKEN: ${{ secrets.YAPI_TOKEN }}
```

## 🤝 贡献指南

### 开发环境设置

```bash
# 克隆项目
git clone git@github.com:guocong-bincai/YAPI_MCP_PRO.git
cd YAPI_MCP_PRO

# 安装依赖
pnpm install

# 启动开发模式
pnpm run dev

# 运行测试
pnpm test

# 代码格式化
pnpm run format

# 类型检查
pnpm run type-check
```

### 提交规范

```bash
# 功能开发
git commit -m "feat: 添加新的MCP工具"

# 问题修复
git commit -m "fix: 修复Cookie认证问题"

# 文档更新
git commit -m "docs: 更新使用指南"

# 性能优化
git commit -m "perf: 优化缓存机制"
```

### 代码规范

- 使用 TypeScript 进行类型安全开发
- 遵循 ESLint 和 Prettier 配置
- 编写单元测试覆盖核心功能
- 添加详细的 JSDoc 注释

## 📄 许可证

MIT License - 详见 [LICENSE](LICENSE) 文件

## 🙋‍♂️ 支持与反馈

### 获取帮助

1. **文档优先**: 查看本README和相关文档
2. **日志分析**: 检查 `yapi-mcp.log` 文件
3. **社区支持**: 提交GitHub Issue
4. **商业支持**: 联系项目维护者

### 问题报告

提交Issue时请包含：
- 详细的错误描述
- 完整的错误日志
- 环境信息（Node.js版本、操作系统等）
- 复现步骤
- 配置文件（隐藏敏感信息）

### 功能建议

欢迎提交功能建议和改进意见：
- 描述具体的使用场景
- 说明期望的功能行为
- 提供相关的参考资料

---

## 🎉 快速开始模板

### 📦 一键部署（开盒即用）

```bash
# 1. 克隆项目
git clone git@github.com:guocong-bincai/YAPI_MCP_PRO.git
cd YAPI_MCP_PRO

# 2. 安装依赖
pnpm install
# 或者使用 npm
npm install

# 3. 创建配置文件
cp .env.example .env
```

### ⚙️ 配置YApi连接信息

📖 **重要**: 在编辑 `.env` 文件之前，请先查看 `.env.example` 文件，它包含了**完整的配置指南**和获取方法！

编辑 `.env` 文件，填写您的YApi信息：

```bash
# 首先查看详细配置指南
cat .env.example

# 然后使用任意编辑器打开配置文件
code .env        # VS Code
vim .env         # Vim
nano .env        # Nano
```

**最小配置示例**：
```env
# 必填项
YAPI_BASE_URL=http://your-yapi-server.com
YAPI_TOKEN=your_cookie_or_token

# 可选项（推荐保持默认）
PORT=3388
YAPI_CACHE_TTL=10
YAPI_LOG_LEVEL=info
```

### 🔑 获取认证信息（二选一）

#### 方法一：Cookie认证（推荐）
1. 浏览器登录YApi
2. 按 `F12` → `Network` 面板
3. 操作任意功能，点击网络请求
4. 复制 `Request Headers` 中的 `Cookie`
5. 粘贴到 `YAPI_TOKEN=` 后面

#### 方法二：Token认证
1. YApi项目 → 设置 → Token配置
2. 复制项目ID和Token
3. 格式：`YAPI_TOKEN=项目ID:Token`

### 🚀 启动服务

```bash
# 构建项目
pnpm run build

# 启动MCP服务
./start-mcp.sh start

# 检查状态
./start-mcp.sh status
```

### 🔗 配置AI编辑器

#### 🎯 Cursor配置（多种方式）

##### 配置文件位置
- **项目级配置**（推荐）: `.cursor/mcp.json`
- **全局配置**: `~/.cursor/mcp.json`

##### 🚀 方式一：NPM包模式（推荐）⭐

**优势**: 自动下载最新版本，无需本地构建，配置简单

**项目级配置** `.cursor/mcp.json`:
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "_yapi_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; _yapi_uid=YOUR_USER_ID",
        "NODE_ENV": "cli",
        "YAPI_LOG_LEVEL": "info",
        "YAPI_CACHE_TTL": "10"
      }
    }
  }
}
```

##### 🔧 方式二：本地服务器模式（HTTP/SSE）

**优势**: 性能更好，支持实时推送，多客户端共享

**步骤**:
1. 启动本地MCP服务器
```bash
./start-mcp.sh start
```

2. 配置Cursor连接
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "url": "http://localhost:3388/sse"
    }
  }
}
```

##### 🛠️ 方式三：本地构建模式

**适用场景**: 需要自定义修改源码

```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "node",
      "args": ["/path/to/YAPI_MCP_PRO/dist/index.js"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "your_token"
      }
    }
  }
}
```

#### 🖥️ Claude Desktop配置

##### NPM包模式（推荐）
编辑 `claude_desktop_config.json`：
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "npx",
      "args": ["-y", "yapi-mcp-pro"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "your_cookie_or_token",
        "NODE_ENV": "cli"
      }
    }
  }
}
```

##### 本地构建模式
```json
{
  "mcpServers": {
    "yapi-mcp-pro": {
      "command": "node",
      "args": ["/path/to/YAPI_MCP_PRO/dist/index.js"],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-server.com",
        "YAPI_TOKEN": "your_token"
      }
    }
  }
}
```

#### 📊 配置方式对比

| 配置方式 | 优势 | 缺点 | 适用场景 |
|----------|------|------|----------|
| **NPM包模式** | 🟢 配置简单<br/>🟢 自动更新<br/>🟢 无需构建 | 🔴 首次启动稍慢 | 🎯 **推荐**，适合大多数用户 |
| **HTTP/SSE模式** | 🟢 性能最佳<br/>🟢 支持实时推送<br/>🟢 多客户端共享 | 🔴 需要启动服务<br/>🔴 占用端口 | 🎯 重度使用，多项目协作 |
| **本地构建模式** | 🟢 完全控制<br/>🟢 可自定义修改 | 🔴 需要构建<br/>🔴 维护成本高 | 🎯 开发者，需要定制功能 |

### ✅ 验证安装

在AI编辑器中输入以下任意命令测试：

```
请列出所有YApi项目
请搜索用户相关的接口
请帮我创建一个新的接口分类
```

### 🎯 配置检查清单

- [ ] 已克隆项目并安装依赖
- [ ] **已仔细阅读 `.env.example` 文件的详细配置指南** 📋
- [ ] 已创建 `.env` 文件 (`cp .env.example .env`)
- [ ] 已配置 `YAPI_BASE_URL`（YApi服务器地址）
- [ ] 已配置 `YAPI_TOKEN`（Cookie或Token，按 `.env.example` 指南获取）
- [ ] 已构建项目 (`pnpm run build`)
- [ ] 已启动服务 (`./start-mcp.sh start`)
- [ ] 已配置AI编辑器的MCP连接
- [ ] 已测试基本功能

### 🔒 安全提醒

⚠️ **重要安全事项**：

1. **`.env` 文件包含敏感信息**，绝对不要提交到Git仓库
2. **定期更换Token**，尤其是在多人协作的项目中
3. **不要在代码中硬编码**任何Token或密钥
4. **使用完毕后及时停止服务**：`./start-mcp.sh stop`

✅ **项目已配置安全防护**：
- `.gitignore` 已忽略所有敏感文件
- 代码中使用环境变量，无硬编码敏感信息
- 支持Token掩码显示，保护日志安全

### 🆘 常见问题

**Q: 提示"与YApi服务器通信失败"？**
A: 检查 `YAPI_BASE_URL` 是否正确，确保网络能访问YApi服务器

**Q: 提示"请登录"或"未配置token"？**
A: 重新获取Cookie或Token，确保格式正确

**Q: 端口3388被占用？**
A: 修改 `.env` 中的 `PORT=3389`，然后重启服务

**Q: 如何确保我的Token安全？**
A: 
- 使用Cookie认证（自动过期）
- 定期更换Token
- 不要截图或分享包含Token的配置
- 项目配置的.gitignore已保护敏感文件

**🚀 现在你已经拥有了最强大且安全的YApi AI助手！**

| 环境变量 | 说明 | 默认值 | 示例 |
|----------|------|--------|------|
| `YAPI_BASE_URL` | YApi服务器地址 | 无 | `http://yapi.example.com` |
| `YAPI_TOKEN` | 认证Token或Cookie | 无 | Token: `projectId:token` 或 Cookie: `_yapi_token=xxx; _yapi_uid=123` |
| `PORT` | MCP服务器端口 | `3388` | `3000` |
| `YAPI_CACHE_TTL` | 缓存时效（分钟） | `10` | `30` |
| `YAPI_LOG_LEVEL` | 日志级别 | `info` | `debug`, `info`, `warn`, `error` |
| `YAPI_ENABLE_CACHE` | 是否启用缓存 | `true` | `false` 禁用缓存，`true` 启用缓存 |

## ✨ 功能特性

### 🔗 多种MCP连接方式
- **📦 NPM包模式**: 使用 `npx yapi-mcp-pro` 自动下载最新版本（推荐）
- **🌐 HTTP/SSE模式**: 本地服务器模式，支持实时数据推送
- **🛠️ 本地构建模式**: 支持源码自定义修改和调试

### 🔐 灵活的认证机制
- **🍪 Cookie认证**: 自动发现所有有权限的项目，配置简单
- **🔑 Token认证**: 项目级Token认证，长期有效，更安全
- **👥 多项目支持**: 同时管理多个YApi项目

### 📋 完整的接口生命周期管理
- **接口CRUD**: 创建、读取、更新、删除接口
- **🔍 智能搜索**: 多维度搜索接口（名称、路径、项目）
- **📁 分类管理**: 完整的接口分类生命周期管理
- **🧪 测试集合**: 管理和运行接口测试用例

### 🚀 高性能与智能缓存
- **⚡ 智能缓存**: 多层缓存机制，提升响应速度
- **🔄 实时同步**: 与YApi服务器实时同步数据
- **🎯 灵活缓存控制**: 支持强制刷新和完全禁用缓存
- **📊 性能监控**: 详细的操作日志和性能统计

### 🛠️ 开发者友好
- **📄 数据导入导出**: 支持Swagger导入和多格式导出
- **🔧 环境变量配置**: 灵活的配置管理
- **🐛 详细日志**: 完整的操作日志和错误追踪
- **🎨 TypeScript支持**: 完整的类型定义和智能提示

---

## 🎊 总结

### ✅ **YAPI MCP PRO 现在支持多种连接方式**

| 连接方式 | 特点 | 适用场景 |
|----------|------|----------|
| **📦 NPM包模式** | 🚀 开箱即用，自动更新 | 🎯 **推荐给所有用户** |
| **🌐 HTTP/SSE模式** | ⚡ 高性能，实时推送 | 🎯 重度使用，多项目协作 |
| **🛠️ 本地构建模式** | 🔧 完全控制，可定制 | 🎯 开发者，需要自定义功能 |

### 🚀 **快速开始推荐路径**

1. **新用户** → 选择 **NPM包模式**，配置简单，开箱即用
2. **重度用户** → 选择 **HTTP/SSE模式**，性能最佳，支持实时推送  
3. **开发者** → 选择 **本地构建模式**，可以自定义修改源码

### 💡 **配置要点**
- **认证方式**: Cookie认证最简单，Token认证最安全
- **配置级别**: 项目级配置优先，全局配置备用
- **环境变量**: 支持丰富的环境变量配置
- **缓存机制**: 智能缓存提升性能，支持强制刷新

### 🎯 **立即开始**
选择适合您的连接方式，按照对应的配置指南进行设置，几分钟内即可开始使用强大的YApi AI助手！

### 🔗 **相关链接**
- 📦 [NPM包地址](https://www.npmjs.com/package/yapi-mcp-pro)
- 📚 [详细配置指南](CURSOR-MCP-SETUP.md)
- 🐛 [问题反馈](https://github.com/guocong-bincai/YAPI_MCP_PRO/issues)
- 💬 [功能建议](https://github.com/guocong-bincai/YAPI_MCP_PRO/discussions)

---

**🎉 享受您的YApi AI助手之旅！**