使用说明
邮递员到MCP服务器生成器
一个Python后端系统,将Postman集合(v2.0/v2.1)转换为功能齐全的FastMCP服务器,准备进行Cloud Run部署。
特性
- ✅ 严格验证:在不支持的功能上快速失败
- ✅ 智能解析:从请求体推断模式
- ✅ 身份验证支持:承载、API密钥和基本身份验证
- ✅ HTTP传输:可通过HTTP访问远程MCP服务器
- ✅ 云就绪:为云运行生成Dockerfile
- ✅ 类型安全:使用Pydantic模型进行验证
- ✅ 基于模板:用于代码生成的Jinja2模板
支持的功能
HTTP方法
- 获取、发布、放置、修补、删除
认证
- 承载令牌
- API密钥(头或查询)
- 基本认证
车身类型
- 原始JSON
- 表单数据(url编码)
- 表单数据(多部分)
不支持的功能
发电机将 失败 如果遇到:
- ❌ 未解决的变量(
{{var}}) - ❌ OAuth、AWS签名、摘要、NTLM身份验证
- ❌ 文件上传
- ❌ 邮递员脚本(预请求/测试)
- ❌ GraphQL模式
- ❌ 二进制数据
安装
pip install -r requirements.txt
用法
基本用法
python main.py collection.json
自定义输出目录
python main.py collection.json -o ./my-servers
来自stdin
cat collection.json | python main.py -
详细模式
python main.py collection.json -v
建筑
/app
/models # Pydantic models (EndpointModel, AuthConfig)
/validators # Strict validation layer
/parser # URL, body, and auth parsing
/generator # Jinja2 template rendering
/templates # Template files (.j2)
/utils # Helper functions
/output # Generated servers (timestamped folders)
main.py # CLI entry point
生成的输出
每一代人都会创建一个带有时间戳的文件夹,其中包含:
output/YYYYMMDD_HHMMSS/
├── server.py # FastMCP server
├── requirements.txt # Python dependencies
├── Dockerfile # Cloud Run ready
├── README.md # Usage documentation
└── env.example # Environment variables template
验证规则
收集级别
- 必备
info和item领域 - 必须是v2.0或v2.1
- 没有重复的端点名称
端点级别
- 必须有URL和方法
- POST/PUT/PATCH必须有正文
- GET/DELETE不能有正文
- 没有未解决的变量
- 仅支持身份验证类型
- 没有邮差脚本
示例
# Generate server from Postman collection
python main.py my-api.postman_collection.json
# Navigate to output
cd output/20250128_183000
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp env.example .env
# Edit .env with your credentials
# Run the server
python server.py
# Server will be available at http://localhost:8080/mcp
发展
项目结构
- 模型:使用Pydantic定义数据结构
- 验证器:实施严格的验证规则
- 解析器:从Postman格式中提取并规范化数据
- 发电机:渲染Jinja2模板并写入文件
- 模板:所有输出文件的Jinja2模板
添加新功能
- 更新中的验证规则
app/validators/ - 更新中的解析逻辑
app/parser/ - 更新中的模板
app/templates/ - 如果需要,请更新模型
app/models/
错误处理
系统提供结构化错误消息:
✗ Validation Error:
Unresolved variable: {{API_URL}} in URL in request 'Get Users'
Field: {{API_URL}}
云运行部署
生成的Dockerfile已准备好进行云运行:
cd output/YYYYMMDD_HHMMSS
# Build
docker build -t my-mcp-server .
# Test locally
docker run -p 8080:8080 --env-file .env my-mcp-server
# Deploy to Cloud Run
gcloud builds submit --tag gcr.io/PROJECT_ID/my-mcp-server
gcloud run deploy my-mcp-server \
--image gcr.io/PROJECT_ID/my-mcp-server \
--platform managed \
--region us-central1
许可证
MIT许可证-根据需要为您的用例进行定制。
贡献
这是一个黑客马拉松项目。您可以根据需要自由扩展和修改!
