Postman到MCP服务器生成器

一个Python后端系统,将Postman集合(v2.0/v2.1)转换为功能完整的FastMCP服务器,支持Cloud Run部署。

  • by Saksham-1612
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Saksham-1612/mcp-forge

使用说明

邮递员到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模板

添加新功能

  1. 更新中的验证规则 app/validators/
  2. 更新中的解析逻辑 app/parser/
  3. 更新中的模板 app/templates/
  4. 如果需要,请更新模型 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许可证-根据需要为您的用例进行定制。

贡献

这是一个黑客马拉松项目。您可以根据需要自由扩展和修改!