Skip to main content
Glama
Baneado98

OpenAPI Doctor

by Baneado98

_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/run endpoint with Authorization: Bearer <KEY>. No key → an upsell (the premium is never executed for free).

  • src/server.ts — the hosted side. /pro/run is gated by two coexisting payment lanes:

    • x402 (USDC per call, for AI agents) via x402-express.

    • Stripe prepaid API key (for humans) — a valid Bearer key skips x402. The 402 body always shows BOTH lanes (pay_with_card_stripe + x402 accepts).

  • 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. Replace run(input,{deep}) with the real logic. Keep the contract: deep=false cheap/local, deep=true premium/server-only.

Related MCP server: Paid MCP Server Template

Make a new MCP from this template

  1. Copy the folder: cp -r _mcp-template-gated <new-name>.

  2. Replace placeholders across the repo:

    • OpenAPI Doctor → human name, e.g. dns-doctor

    • openapi-doctor → npm/url slug, e.g. dns-doctor

    • SERVICE_KEY → the buyer's env var, e.g. DNS_DOCTOR_KEY (PowerShell one-liner is in the comment block of scripts/rename.txt.)

  3. In package.json/server.json/stripeLane.ts env defaults set:

    • STRIPE_KEY_PREFIX (e.g. dns_), STRIPE_PLAN_NAME, SERVICE_KEY_ENV, SERVICE_PRO_URL, homepage/PUBLIC_BASE_URL = the Vercel URL.

  4. Write the real engine.ts and the real tool schema/description in mcpServer.ts.

  5. 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 tool
audit_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).

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesA URL to an OpenAPI/Swagger spec, or the raw spec JSON.
deepNoWhen 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

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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. 1 tool updatev0.1.0
    • First observedaudit_openapi

TDQS

A4.4/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no risk of ambiguity or confusion between tools.

Naming Consistency5/5

A single tool follows a consistent naming pattern by default; no contradictions exist.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Template 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    A template for MCP servers that enforces a paywall gate, offering free local execution and monetizing premium features via Stripe or x402 payments.
    MIT