Skip to content

tomchen-stripe/mcp-server-prototype

Repository files navigation

about

this is a prototype of an mcp server that dynamically populates 176 (out of 572) of Stripe's APIs through three MCP metatools:

  • list-api-endpoints
  • get-api-endpoint-schema
  • invoke-api-endpoint

176 APIs are programmatically parsed from top-level APIs in Stripe's OpenAPI spec.

instructions.txt is used as a system prompt for grounding the user's LLM to:

  • call tools in this sequence: list-api-endpoints, then get-api-endpoint-schema, then invoke-api-endpoint
  • adhering to "deprecated" or best-practice descriptions in the OpenAPI spec

example

Prompt: update the prices of all my products to be 10 dollars more than they are (5-6 step workflow):

using with claude code (laptop or devbox)

git clone https://github.com/tomchen-stripe/mcp-server-prototype
cp .env.template .env

# set your STRIPE_SECRET_KEY in .env

npm install
npm run build
claude mcp add --transport stdio mcp-server-prototype -- npx -y npm run start

claude

using with mcp_stripe evals (devbox)

cd ~/stripe
git clone https://github.com/tomchen-stripe/mcp-server-prototype
cp .env.template .env

# set your STRIPE_SECRET_KEY in .env

npm install
npm run build
npm run start streamableHttp

Then follow: https://stripe.sourcegraphcloud.com/stripe-internal/pay-server/-/blob/lib/mcp_stripe/evals/README.md

usage arguments

npm run start <stdio|streamableHttp> <static|dynamic>

<stdio|streamableHttp>: protocol to talk to MCP server (default: stdio)

<static|dynamic|code>:

  • static (default): all 176 tools are listed statically during tools/list response
  • dynamic: all 176 tools are returned in a response from the static list-api-endpoints tool during tools/list response
  • code: code execution

About

prototyping dynamic mcp tools + OpenAPI spec

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published