mcp-partner-integration-demo

nickcarndt/mcp-partner-integration-demo

3.2

If you are the rightful owner of mcp-partner-integration-demo and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The Model Context Protocol (MCP) server is designed to facilitate seamless integration of tools via REST endpoints, specifically for multi-agent workflows in environments like ChatGPT.

Tools
2
Resources
0
Prompts
0

MCP HTTP Server

Node.js Deploy: Vercel Version

A lightweight, production-ready MCP server for commerce workflows. Deployed on Vercel and integrated with Shopify and Stripe through custom MCP tools.

This server enables ChatGPT (and other MCP clients) to search Shopify inventory, create Stripe Checkout Sessions, and retrieve payment status through simple natural-language requests.

Demo

Shopify Search via MCP

ChatGPT calling the shopify_search_products tool and returning live store inventory.

ChatGPT searching Shopify products via MCP

End-to-end MCP tool invocation via ChatGPT.

Stripe Checkout Session via MCP

ChatGPT creating a Stripe Checkout Session using the stripe_create_checkout_session tool.

ChatGPT creating Stripe checkout session

Hosted Stripe Checkout created directly through MCP.

Features

  • MCP HTTP transport at /api/server with /mcp rewrite
  • Streamable HTTP + SSE session state (Redis-backed)
  • Commerce tools: Shopify product search, Stripe Checkout creation, and payment status retrieval
  • Serverless on Vercel (Node.js 22, 60s max execution time)
  • Strict Zod schemas for all tool inputs/outputs
  • Health and readiness endpoints (/api/healthz, /api/healthz/ready)
  • CORS allowlist optimized for ChatGPT connectors

Quick Start

Prerequisites

  • Node.js 22+
  • Vercel CLI installed (npm i -g vercel)

Local Development

cd vercel-server
npm install
npm run dev

Deploy to Vercel

cd vercel-server
npm install
vercel --prod

See vercel-server/DEPLOYMENT.md for environment setup instructions.

MCP Endpoint

MCP transport is served at /api/server using mcp-handler, with Streamable HTTP and optional SSE-based session state (Redis).

  • Base path: /api/server (rewritten from /mcp)
  • Methods: GET, POST, DELETE

Example — list tools:

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":{}}'

Sanity check:

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":{}}'

Health Endpoints

  • GET /api/healthz — liveness check
  • GET /api/healthz/ready — readiness probe

Available Tools

ToolDescription
pingConnectivity + MCP handshake verification
shopify_search_productsSearch Shopify Admin API products
stripe_create_checkout_sessionCreate a Stripe Checkout Session (price interpreted as USD dollars)
stripe_create_checkout_session_legacyCreate sessions using existing Stripe Price IDs
stripe_get_payment_statusRetrieve PaymentIntent status

Configuration

VariableDescriptionRequired
REDIS_URLRedis connection string (for SSE session state)Yes
SHOPIFY_STORE_URL / SHOPIFY_SHOPShopify store domain/subdomainYes
SHOPIFY_ACCESS_TOKENShopify Admin API tokenYes
SHOPIFY_API_VERSIONDefaults to 2024-10Optional
STRIPE_SECRET_KEYStripe secret keyYes
MCP_SERVER_URLBase MCP server URL (no /mcp suffix)Optional
NEXT_PUBLIC_SITE_URLFrontend URL for checkout redirectsRecommended
ALLOWED_ORIGINSComma-separated CORS allowlistOptional

Project Structure

.
├── 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

Security

  • CORS allowlist tuned for ChatGPT + optional frontend origins
  • Strict Zod validation for every tool and endpoint
  • No unauthenticated commerce actions outside MCP tool boundaries

Troubleshooting

Redis/Upstash

Symptom: /api/healthz/ready returns 503 or MCP tools fail with "Redis unavailable"

Cause: Upstash free tier may delete inactive databases after ~2 weeks of inactivity

Fix:

  1. Restore or recreate Redis instance in Upstash dashboard
  2. Update REDIS_URL environment variable in Vercel
  3. Redeploy: vercel --prod or trigger redeploy from dashboard
  4. Verify: curl https://your-deployment.vercel.app/api/healthz/ready should return 200

Live MCP Endpoint (Demo)

https://mcp-partner-integration-demo.vercel.app/mcp

Public, rate-limited, and intended for evaluation/testing. Not intended for production traffic or large workloads.

Note: Set MCP_SERVER_URL to the base URL (e.g., https://mcp-partner-integration-demo.vercel.app) without the /mcp suffix.

License

MIT — see .