tiandashu/yapi-mcp-server
3.3
If you are the rightful owner of yapi-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This is a Model Context Protocol (MCP) server designed for integration with the YApi interface management platform, supporting automatic generation of TypeScript type definitions, Mock data, and API request code.
Tools
7
Resources
0
Prompts
0
YApi MCP Server
这是一个 Model Context Protocol (MCP) 服务器,用于与 YApi 接口管理平台集成,支持自动生成 TypeScript 类型定义、Mock 数据和 API 请求代码。
功能特性
🔧 核心功能
- 配置文件读取: 自动读取项目中的
yapi.config.json
配置文件 - YApi 数据获取: 通过配置的 remoteUrl 获取 YApi 项目的完整接口信息
- TypeScript 类型生成: 根据接口响应 Schema 自动生成 TypeScript interface 定义
- Mock 数据生成: 智能生成符合接口结构的 Mock 测试数据
- API 请求代码生成: 自动生成 Axios 或 Fetch 风格的 API 请求函数
- 完整工作流: 提供一键式从配置到生成的完整解决方案
- 灵活的文件路径配置: 支持自定义输出目录
快速开始
1. 安装依赖
npm install
2. 配置 YApi
在您的前端项目根目录下创建 yapi.config.json
文件:
{
"remoteUrl": "https://your-yapi-domain.com/api/open/plugin/export-full?type=json&pid=1437&status=all&token=your-token",
"type": "yapi",
"dataKey": "data",
"mockPath": "src/mocks",
"typePath": "src/types",
"apiPath": "src/api"
}
3. 启动服务
# 开发模式
node server.js
# 或者使用npm命令
npm start
主要工具
🎯 YApi 工作流工具 (推荐)
yapi_workflow({
projectPath: '/path/to/your/project', // 可选
interfacePath: '/api/user/info', // 指定接口路径
method: 'GET', // 请求方法
generateMock: true, // 是否生成Mock数据
generateType: true, // 是否生成TypeScript类型
generateApi: true, // 是否生成API请求代码
mockType: 'full', // Mock类型:full | data-only
requestLib: 'axios', // 请求库:axios | fetch
})
📝 单独功能工具
读取配置文件
read_config({ projectPath: '/path/to/project' })
获取 YApi 数据
get_yapi_data({
remoteUrl: 'https://your-yapi-url...',
interfacePath: '/api/user/info',
method: 'GET',
})
生成 TypeScript 类型
generate_types({
resBodySchema: 'JSON Schema字符串',
dataKey: 'data',
interfaceName: 'UserInfo',
})
生成 Mock 数据
generate_mock_from_yapi({
resBodySchema: 'JSON Schema字符串',
dataKey: 'data',
mockType: 'full',
})
生成 API 请求代码
generate_api_code({
path: '/api/user/info',
method: 'GET',
title: '用户信息接口',
reqParams: [], // 路径参数
reqQuery: [], // 查询参数
interfaceName: 'UserInfoData',
requestLib: 'axios', // 或 'fetch'
})
保存生成的文件
save_yapi_files({
projectPath: '/path/to/project',
types: {
/* 类型数据 */
},
mockData: {
/* Mock数据 */
},
apiCode: {
/* API代码数据 */
},
config: {
/* 配置对象 */
},
filename: 'user-api',
})
配置文件说明
必填字段
remoteUrl
: YApi 项目导出接口 URLtype
: 平台类型,固定为 "yapi"
可选字段
dataKey
: 响应数据字段名,默认 "data"mockPath
: Mock 文件输出路径,默认 "src/mocks"typePath
: 类型文件输出路径,默认 "src/types"apiPath
: API 代码输出路径,默认 "src/api"
生成的文件示例
TypeScript 类型定义
/** 用户信息接口 */
export interface UserInfoData {
/** 用户ID */
userId: number
/** 用户名 */
username: string
/** 邮箱 */
email: string
}
API 请求代码 (Axios)
/**
* 用户信息接口
*/
export const getUserInfo = async (): Promise<UserInfoData> => {
const response = await axios.get('/api/user/info')
return response.data
}
Mock 数据
{
"code": "200",
"success": true,
"message": "操作成功",
"data": {
"userId": 12345,
"username": "测试用户",
"email": "test@example.com"
}
}
技术栈
- Node.js - 运行环境
- Model Context Protocol (MCP) - 协议标准
- ES6 Modules - 模块系统
- Axios - HTTP 请求库
- Zod - 参数验证
特色功能
🎨 智能代码生成
- 根据接口路径和方法自动生成函数名
- 支持路径参数和查询参数的自动处理
- 生成带有完整 TypeScript 类型的代码
🔧 灵活配置
- 支持多种输出路径配置
- 支持 Axios 和 Fetch 两种请求方式
- 支持完整响应或仅数据部分的 Mock 生成
📁 项目结构友好
- 自动创建输出目录
- 支持自定义文件命名
- 符合前端项目常见目录结构
使用场景
- 前端项目初始化: 快速生成所有接口的类型定义和请求函数
- 接口对接: 为新接口快速生成相关代码文件
- Mock 开发: 生成符合接口结构的测试数据
- 类型安全: 确保前端代码与后端接口的类型一致性
完整示例
# 1. 创建配置文件
echo '{
"remoteUrl": "https://your-yapi.com/api/open/plugin/export-full?type=json&pid=123&status=all&token=xxx",
"type": "yapi",
"dataKey": "data",
"mockPath": "src/mocks",
"typePath": "src/types",
"apiPath": "src/api"
}' > yapi.config.json
# 2. 启动MCP服务
node server.js
# 3. 使用工作流生成代码
yapi_workflow({
interfacePath: '/api/user/profile',
method: 'GET',
generateMock: true,
generateType: true,
generateApi: true,
requestLib: 'axios'
})
许可证
MIT License
支持与反馈
如有问题或建议,请通过 Issues 或内部渠道联系开发团队。