使用说明
自动MCP🚀
自动MCP 是一个功能强大的平台,可以自动生成即用型 模型上下文协议(MCP) 后端API文档中的服务器。只需上传您的OpenAPI、Swagger或Postman收藏,AutoMCP就会使用谷歌的Gemini AI生成一个完整的、可用于生产的MCP服务器包。
✨ 特性
- 🤖 人工智能发电:使用Google Gemini AI生成高质量的MCP服务器代码
- 📚 支持多种格式:支持OpenAPI 3.x、Swagger 2.x和Postman集合
- 🔧 完成包生成:生成具有以下功能的完整MCP服务器:
- TypeScript工具实现
- 类型定义
- 配置文件
- 带有依赖项的Package.json
- 全面自述
- 🎯 智能解析:自动提取端点、参数、模式和身份验证方案
- 📦 随时可用:生成的包可以立即部署
- 🔒 安全:本地文件存储,无云依赖
- 🚀 快速:高效的解析和代码生成管道
📋 先决条件
- Node.js >=18.x
- npm >=9.x
- Google Gemini API密钥 (在这里买一个)
🛠️ 安装
-
克隆仓库
git clone <repository-url> cd AutoMCP -
安装依赖项
npm install -
设置环境变量
cp .env.example .env编辑
.env并添加您的Gemini API密钥:PORT=3000 GEMINI_API_KEY=your_gemini_api_key_here GEMINI_MODEL=gemini-1.5-pro GEMINI_MAX_TOKENS=32768 MAX_FILE_SIZE=10485760 -
构建项目
npm run build
⚙️ 配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
PORT |
服务器端口 | 3000 |
GEMINI_API_KEY |
Google Gemini API密钥 | 必需 |
GEMINI_MODEL |
使用Gemini模型 | gemini-1.5-pro |
GEMINI_TEMPERATURE |
发电温度 | 0.7 |
GEMINI_MAX_TOKENS |
每个请求的最大令牌数 | 32768 |
MAX_FILE_SIZE |
最大上传文件大小(字节) | 10485760 (10 MB) |
NODE_ENV |
环境模式 | development |
支持的Gemini型号
gemini-1.5-pro(推荐)gemini-progemini-1.5-flash
要列出可用型号:
npm run list-models
🚀 用法
启动服务器
开发模式:
npm run dev
生产方式:
npm run build
npm start
服务器将于启动 http://localhost:3000
API工作流
1.上传API文档
curl -X POST http://localhost:3000/api/upload \
-F "file=@your-api-docs.json"
答复:
{
"status": "success",
"fileId": "8f4be01f-236d-4f67-8b70-6cf347b81d12",
"filename": "pet-store-openapi.json",
"metadata": {
"title": "Swagger Petstore",
"version": "1.0.0",
"endpoints": 19
}
}
2.生成MCP服务器
curl -X POST http://localhost:3000/api/generate \
-H "Content-Type: application/json" \
-d '{
"fileId": "8f4be01f-236d-4f67-8b70-6cf347b81d12"
}'
答复:
{
"status": "success",
"packageId": "8f4be01f-236d-4f67-8b70-6cf347b81d12",
"packageName": "mcp-swagger-petstore---openapi-3-0",
"downloadUrl": "/api/download/8f4be01f-236d-4f67-8b70-6cf347b81d12",
"toolsGenerated": 19
}
3.检查发电状态
curl http://localhost:3000/api/status/8f4be01f-236d-4f67-8b70-6cf347b81d12
4.下载生成的包
curl -O http://localhost:3000/api/download/8f4be01f-236d-4f67-8b70-6cf347b81d12
或在浏览器中打开:
http://localhost:3000/api/download/8f4be01f-236d-4f67-8b70-6cf347b81d12
使用邮递员
导入提供的Postman收藏(AutoMCP.postman_collection.json)为了便于测试。看 POSTMAN_SETUP.md 了解详情。
📚 API文档
端点
GET /api/health
健康检查端点。
答复:
{
"status": "ok",
"timestamp": "2024-01-15T10:30:00.000Z",
"uptime": 3600
}
POST /api/upload
上传API文档文件(OpenAPI/Swagger/Postman)。
请求:
- 方法:
POST - 内容类型:
multipart/form-data - 主体:
file(文件字段)
答复:
{
"status": "success",
"fileId": "uuid",
"filename": "api-docs.json",
"metadata": { ... }
}
POST /api/generate
从上传的文件生成MCP服务器。
请求:
{
"fileId": "uuid"
}
答复:
{
"status": "success",
"packageId": "uuid",
"packageName": "mcp-api-name",
"downloadUrl": "/api/download/uuid",
"toolsGenerated": 19
}
GET /api/download/:id
将生成的MCP服务器包下载为ZIP格式。
答复:
- 内容类型:
application/zip - 文件:
mcp-server-package.zip
GET /api/status/:id
获取包的生成状态。
答复:
{
"status": "completed",
"packageId": "uuid",
"packageName": "mcp-api-name",
"toolsGenerated": 19,
"createdAt": "2024-01-15T10:30:00.000Z"
}
🏗️ 建筑
AutoMCP
├── API Layer (Express)
│ ├── Upload Controller
│ ├── Generate Controller
│ └── Download Controller
├── Parser Layer
│ ├── OpenAPI Parser
│ ├── Schema Resolver
│ └── Data Transformer
├── Gemini Integration
│ ├── Gemini Client (with retry logic)
│ ├── Code Generator
│ └── Prompt Templates
├── Generator Layer
│ ├── MCP Package Generator
│ └── Config Template Generator
└── Storage Layer
├── File Storage (Local)
└── Package Storage (Local)
数据流
- 上传 → 文件已保存到临时存储
- 解析 → OpenAPI/Swagger解析为结构化格式
- 变换 → 针对Gemini提示进行标准化的数据
- 生成 → Gemini AI生成MCP服务器代码
- 组装 → 代码组装成完整的包
- 包裹 → ZIP存档已创建
- 下载 → 软件包可供下载
🧪 测试生成的MCP服务器
1.取出并安装
unzip mcp-server-package.zip
cd mcp-server-package
npm install
2.配置
创建 .env 文件:
API_BASE_URL=https://your-api.com/v2
API_KEY=your_api_key
3.建造
npm run build
4.使用MCP检查员进行测试
npx @modelcontextprotocol/inspector node dist/index.js
这将在以下位置打开web UI http://localhost:5173 您可以在其中测试所有生成的工具。
5.测试单个工具
node -e "
import('./dist/tools/getPetById.js').then(m =>
m.getPetById({petId: 1})
.then(console.log)
.catch(console.error)
);
"
🔧 发展
项目结构
src/
├── api/ # API routes and controllers
├── config/ # Configuration management
├── gemini/ # Gemini AI integration
├── generators/ # MCP package generators
├── middleware/ # Express middleware
├── parsers/ # API documentation parsers
├── transformers/ # Data transformers
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
└── server.ts # Main server entry point
开发命令
# Development with hot reload
npm run dev
# Build TypeScript
npm run build
# Production start
npm start
# List available Gemini models
npm run list-models
代码风格
- 具有严格模式的TypeScript
- ES2020目标
- CommonJS模块
- API的Express.js
- 异步/等待异步操作
🐛 故障排除
常见问题
1.Gemini API错误
错误: 404 Not Found - models/gemini-X is not found
解决方案:
- 查看可用型号:
npm run list-models - 更新
GEMINI_MODEL在.env到一个有效的模型 - 系统将自动检测并使用可用型号
2.文件上传错误
错误: File too large
解决方案:
- 增加
MAX_FILE_SIZE在.env - 或者压缩API文档文件
3.发电超时
错误: Generation timeout
解决方案:
- 增加
GEMINI_MAX_TOKENS在.env - 将大型API拆分为较小的服务
- 检查Gemini API配额限制
4.生成的MCP服务器错误
错误: API error: 500 Internal Server Error
解决方案:
- 检查生成的API基础URL
config.ts - 验证API身份验证凭据
- 使用直接测试API
curl
调试模式
启用详细日志记录:
DEBUG=* npm run dev
📝 生成的包结构
mcp-api-name/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── config.ts # Configuration
│ ├── types.ts # TypeScript types
│ └── tools/ # Generated tool implementations
│ ├── getPetById.ts
│ ├── addPet.ts
│ └── ...
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
├── .env.example # Environment template
├── .gitignore
└── README.md # Usage instructions
🤝 贡献
欢迎投稿!请按照以下步骤操作:
- 克隆该仓库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
ISC许可证
🙏 致谢
📞 支持
对于问题、疑问或贡献:
- 在GitHub上打开一个问题
- 检查现有文档
- 查看故障排除部分
🗺️ 路线图
- []支持邮递员收藏
- []Swagger 2.x支持改进
- []自定义提示模板
- []批量生成
- []云存储集成
- []Web UI仪表板
- []API版本控制支持
- []身份验证方案改进
建于❤️ 为了黑客马拉松