MCP HTTP服务器
](https://nodejs.org/)   ](https://github.com/nickcarndt/mcp-partner-integration-demo/releases)
用于商业工作流的轻量级、生产就绪的MCP服务器。 部署在Vercel上,并通过自定义MCP工具与Shopify和Stripe集成。
此服务器使ChatGPT(和其他MCP客户端)能够搜索Shopify库存,创建Stripe Checkout会话,并通过简单的自然语言请求检索付款状态。
演示
通过MCP搜索Shopify
ChatGPT调用 shopify_search_products 工具和返回实时商店库存。
ChatGPT searching Shopify products via MCP
*通过ChatGPT进行端到端MCP工具调用。*
通过MCP进行条纹结账会话
ChatGPT使用创建条带检出会话 stripe_create_checkout_session 工具。
ChatGPT creating Stripe checkout session
*托管Stripe Checkout直接通过MCP创建。*
特性
- MCP HTTP传输
/api/server和/mcp重写 - 流式HTTP+SSE会话状态(Redis支持)
- 商务工具:Shopify产品搜索、Stripe Checkout创建和支付状态检索
- Vercel上的无服务器(Node.js 22,最大执行时间60秒)
- 所有工具输入/输出都有严格的Zod模式
- 健康和准备终点(
/api/healthz,/api/healthz/ready) - CORS allowlist针对ChatGPT连接器进行了优化
快速开始
先决条件
- Node.js 22+
- 已安装Vercel CLI(
npm i -g vercel)
本地开发
cd vercel-server
npm install
npm run dev部署到Vercel
cd vercel-server
npm install
vercel --prod看 vercel-server/DEPLOYMENT.md 有关环境设置说明。
MCP端点
MCP运输服务于 /api/server 使用 mcp-handler,具有流式HTTP和可选的基于SSE的会话状态(Redis)。
- 基础路径:
/api/server(改写自/mcp) - 方法:
GET,POST,DELETE
示例——列出工具:
curl -X POST https://mcp-partner-integration-demo.vercel.app/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}'卫生检查:
curl -X POST https://mcp-partner-integration-demo.vercel.app/mcp \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}'健康终点
GET /api/healthz--活性检查GET /api/healthz/ready--准备就绪探测器
可用工具
| 工具 | 说明 |
|---|---|
ping | 连接性+MCP握手验证 |
shopify_search_products | 搜索Shopify管理API产品 |
stripe_create_checkout_session | 创建条纹结账会话(价格解释为美元) |
stripe_create_checkout_session_legacy | 使用现有的条纹价格ID创建会话 |
stripe_get_payment_status | 检索PaymentIntent状态 |
配置
| 变量 | 描述 | 必填 |
|---|---|---|
REDIS_URL | Redis连接字符串(用于SSE会话状态) | 是 |
SHOPIFY_STORE_URL / SHOPIFY_SHOP | Shopify商店域名/子域名 | 是 |
SHOPIFY_ACCESS_TOKEN | Shopify Admin API代币 | 是 |
SHOPIFY_API_VERSION | 默认为 2024-10 | 可选 |
STRIPE_SECRET_KEY | 条纹密钥 | 是 |
MCP_SERVER_URL | 基本MCP服务器URL(否 /mcp 后缀) | 可选 |
NEXT_PUBLIC_SITE_URL | 用于结账重定向的前端URL | 推荐 |
ALLOWED_ORIGINS | 逗号分隔的CORS列表 | 可选 |
项目结构
.
├── vercel-server/
│ ├── api/
│ │ ├── server.ts
│ │ ├── healthz.ts
│ │ └── healthz/ready.ts
│ ├── lib/
│ │ ├── cors.ts
│ │ ├── schemas.ts
│ │ ├── utils.ts
│ │ └── tools/
│ │ ├── shopify.ts
│ │ └── stripe.ts
│ ├── vercel.json
│ └── package.json
├── CHANGELOG.md
├── LICENSE
├── README.md
└── SECURITY.md安全
- CORS满负荷运行 针对ChatGPT+可选前端源进行了调优
- 严格的Zod验证 适用于每个工具和端点
- 没有未经身份验证的商业行为 MCP工具边界之外
故障排除
Redis/升级
症状: /api/healthz/ready 返回503或MCP工具失败,并显示“Redis不可用”
原因: 升级免费版可能会在大约2周的不活动后删除不活动的数据库
修复:
- 在Upstash仪表板中还原或重新创建Redis实例
- 更新
REDIS_URLVercel中的环境变量 - 重新部署:
vercel --prod或从仪表板触发重新部署 - 验证:
curl https://your-deployment.vercel.app/api/healthz/ready应该返回200
实时MCP端点(演示)
https://mcp-partner-integration-demo.vercel.app/mcp
公开、价格有限、用于评估/测试。 不适用于生产流量或大型工作负载。
注: 集 MCP_SERVER_URL 到基本URL(例如。, https://mcp-partner-integration-demo.vercel.app)没有 /mcp 后缀。
许可证
麻省理工学院——见 许可证.
