OpenAPI Doctor
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenAPI DoctorValidate the OpenAPI spec at ./api.yaml"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
_mcp-template-gated — MCP server template WITH the paywall gate baked in
This is the reusable factory template for every NEW MCP in the fleet. It is born with the server-side paywall gate already wired, so a new MCP can never again ship the premium tier for free (the bug that made conversion impossible on the first 10 servers).
The gate (the whole point)
src/mcpServer.ts— the locally-installed package. The FREE tier (deep=false) runs here. The PREMIUM tier (deep=true) does NOT run here: it is forwarded to the hosted/pro/runendpoint withAuthorization: Bearer <KEY>. No key → an upsell (the premium is never executed for free).src/server.ts— the hosted side./pro/runis gated by two coexisting payment lanes:x402 (USDC per call, for AI agents) via
x402-express.Stripe prepaid API key (for humans) — a valid
Bearerkey skips x402. The 402 body always shows BOTH lanes (pay_with_card_stripe+ x402accepts).
src/stripeLane.ts— Stripe Checkout → webhook mints an API key into KV.src/kv.ts— Cloudflare KV (key store + funnel counters), degrades gracefully.src/engine.ts— EXAMPLE engine. Replacerun(input,{deep})with the real logic. Keep the contract:deep=falsecheap/local,deep=truepremium/server-only.
Related MCP server: Paid MCP Server Template
Make a new MCP from this template
Copy the folder:
cp -r _mcp-template-gated <new-name>.Replace placeholders across the repo:
OpenAPI Doctor→ human name, e.g.dns-doctoropenapi-doctor→ npm/url slug, e.g.dns-doctorSERVICE_KEY→ the buyer's env var, e.g.DNS_DOCTOR_KEY(PowerShell one-liner is in the comment block ofscripts/rename.txt.)
In
package.json/server.json/stripeLane.tsenv defaults set:STRIPE_KEY_PREFIX(e.g.dns_),STRIPE_PLAN_NAME,SERVICE_KEY_ENV,SERVICE_PRO_URL,homepage/PUBLIC_BASE_URL= the Vercel URL.
Write the real
engine.tsand the real tool schema/description inmcpServer.ts.npm install && npx tsc— must build clean.
Verify the gate (regla 7 — not done until this passes)
FORCE_LISTEN=true PORT=8899 PRO_API_KEYS=test_key X402_ENABLED=true node dist/server.js &
curl -s -o /dev/null -w "%{http_code}\n" "http://127.0.0.1:8899/run?target=x" # 200 (free)
curl -s -o /dev/null -w "%{http_code}\n" "http://127.0.0.1:8899/pro/run?target=x" # 402 (no key)
curl -s -o /dev/null -w "%{http_code}\n" -H "Authorization: Bearer test_key" "http://127.0.0.1:8899/pro/run?target=x" # 200 (paid key)
curl -s -o /dev/null -w "%{http_code}\n" -H "Authorization: Bearer wrong" "http://127.0.0.1:8899/pro/run?target=x" # 402 (bad key)MCP stdio: deep=true without a key must print the UPSELL (never run premium); deep=false returns the local free result.
Production env (set in Vercel, sourced from config/)
STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, CLOUDFLARE_ACCOUNT_ID/API_TOKEN/KV_NAMESPACE_ID,
optionally SERVICE_KEY. Everything degrades gracefully if a lane is unconfigured —
the x402 gate + 402 always work even with no Stripe/KV. Never set the deep engine
to run client-side.
Available Tools
1 toolaudit_openapiA
Audit an OpenAPI/Swagger spec (URL to openapi.json or raw JSON) for API-security smells an agent won't catch reading prose: no security scheme, plaintext http servers, unauthenticated POST/PUT/DELETE, object-id endpoints with no auth (OWASP API1 BOLA/IDOR). Returns SECURE/REVIEW/INSECURE. deep=true lists the exact offending operations + fixes (premium).
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | A URL to an OpenAPI/Swagger spec, or the raw spec JSON. | |
| deep | No | When true, runs the PREMIUM tier. Requires an API key (set OPENAPI_DOCTOR_KEY in your MCP env); without one you'll get instructions to unlock it. The free verdict needs no key. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the premium requirement for deep, the return verdicts, and the input formats. It does not mention idempotency or rate limits, but overall provides good transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded, and every sentence adds essential information. No fluff, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool without output schema, the description covers inputs, return values, and premium behavior. It could specify the output format, but the information provided is sufficient for an AI agent to understand the tool's operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the deep parameter's functionality and the API key requirement, which goes beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Audit') and resource ('OpenAPI/Swagger spec'), clearly stating what the tool does. It lists specific security smells (no security scheme, plaintext http, etc.), and distinguishes its purpose from generic prose reading, although no siblings are listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the deep parameter (premium tier) and notes that the free verdict requires no key. It does not explicitly state when not to use the tool, but given no sibling tools, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
audit_openapi
TDQS
Scored across 1 tool
With only one tool, there is no risk of ambiguity or confusion between tools.
A single tool follows a consistent naming pattern by default; no contradictions exist.
A single tool is slightly thin but appropriate for a focused security auditing server; the count does not feel excessive or insufficient for its niche purpose.
The tool covers the core auditing functionality well with options for deep analysis, though additional tools for spec validation or fixes could enhance completeness.
Maintenance
Related MCP Connectors
Billing proxy for MCP servers. Adds Stripe and x402 crypto payments without writing billing code.
Monetize any MCP server: x402 paywall, pay-per-call billing in USDC on Base, agent marketplace.
- mcpOAuthcom.stripe
MCP server integrating with Stripe - tools for customers, products, payments, and more.
Marketplace of MCP servers and agent skills, free and paid, where developers publish and monetise.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA comprehensive framework for building and deploying commercial MCP servers with integrated billing, usage metering, and Stripe payment processing. It enables developers to monetize AI tools through a complete ecosystem including API key management, affiliate tracking, and automated deployment scripts.-
- FlicenseNot gradedqualityDmaintenanceA production-ready template for building monetized MCP servers that require per-call payments via the Mainlayer infrastructure. It provides a structured payment gate that ensures AI agents pay for tool usage before accessing server logic or data.-
- AlicenseNot gradedqualityCmaintenanceTemplate for creating MCP servers with a server-side paywall gate, enabling free local usage and premium hosted tier with Stripe and x402 payment lanes.MIT
- AlicenseNot gradedqualityCmaintenanceA template for MCP servers that enforces a paywall gate, offering free local execution and monetizing premium features via Stripe or x402 payments.MIT