import Link from 'next/link'; import { CodeBlock } from '@/components/code-block'; const PROMPT_EXAMPLE = `Create an MCP server that searches our Notion workspace. Tools: search_pages, get_page_content. Auth: NOTION_API_KEY.`; const OUTPUT_EXAMPLE = `> Generating spec... OK (2 tools) > Static checks OK > Building image bmm-mcp-notion OK 17.2s > Deploying container OK > Live at https://notion-x9.mcp.buildmymcpserver.com > First request: 401 → token → 200 OK`; const INSTALL_SNIPPET = `{ "mcpServers": { "notion": { "url": "https://notion-x9.mcp.buildmymcpserver.com/mcp", "auth": "oauth2" } } }`; const EXAMPLES: { title: string; desc: string }[] = [ { title: 'Postgres reader', desc: 'Read-only access to your tables with schema introspection.' }, { title: 'Salesforce', desc: 'Query opportunities, accounts and leads from Claude.' }, { title: 'Notion', desc: 'Search pages, read content, append blocks.' }, { title: 'GitHub', desc: 'List issues, search code, post comments — scoped to one repo.' }, { title: 'Stripe', desc: 'Look up charges, customers, refunds (read-only by default).' }, { title: 'Custom REST', desc: 'Wrap any HTTP API behind one prompt-defined tool surface.' }, ]; const MARKETPLACE_POINTS: { t: string; d: string }[] = [ { t: 'Fork and own', d: 'Start from a server someone already shipped. Fork it, paste your own credentials, deploy — no prompt required.', }, { t: 'Secrets never travel', d: "A template carries the spec and generated code, never the author's API keys. You add your own on fork.", }, { t: 'Ranked by real usage', d: 'Templates rise on fork count and active deploys — not vanity stars. The useful ones surface themselves.', }, ]; const FAQ: { q: string; a: string }[] = [ { q: 'What is MCP?', a: 'Model Context Protocol — an open standard from Anthropic for connecting AI assistants to external tools, data and APIs over a transport like Streamable HTTP.', }, { q: 'Do I need to write code?', a: 'No. You describe the tool in natural language. We generate the TypeScript server, run static checks, build a Docker image and deploy it to a public OAuth-protected URL.', }, { q: 'Which clients work?', a: 'Claude Desktop, Cursor, ChatGPT Custom Connectors, VS Code Copilot, Continue.dev — anything that speaks the MCP spec.', }, { q: 'How is auth handled?', a: 'Every generated server is an OAuth 2.1 Resource Server. Our control plane is the Authorization Server (PKCE + Dynamic Client Registration + Resource Indicators per RFC 8707).', }, { q: 'Can I self-host?', a: 'Yes. The runner is a plain Docker container; the control plane is open to BYO Postgres + Redis. See the self-hosting guide in docs.', }, { q: 'What about secrets?', a: 'AES-256-GCM at rest in Postgres, injected as environment variables into the runtime container. Never logged, never echoed back.', }, { q: 'Cold starts?', a: 'No cold starts. Containers stay warm. Sub-50ms tool-call overhead on average for in-region requests.', }, { q: 'Rate limits?', a: 'Default 100 requests/min/IP per tool. Configurable per server. Quota enforced at the Traefik layer before hitting your container.', }, { q: 'How fast is generation?', a: 'Spec → image → live URL typically completes in 45-90 seconds.', }, { q: 'Logs and metrics?', a: 'Live log streaming to the dashboard, structured tool-call metrics (P50/P95/P99 latency, error rate, per-tool throughput) — all retained for 30 days.', }, { q: 'What if I cancel?', a: 'You can export the full TypeScript source of every server you built. No vendor lock-in.', }, { q: 'Custom domain?', a: 'Pro plan and above. Add a CNAME, we provision Let’s Encrypt automatically.', }, ]; const TIERS = [ { name: 'Hobby', price: '€0', tag: 'Forever free', features: ['1 server', '100k calls/mo', 'BMM subdomain', 'Community support'] }, { name: 'Pro', price: '€49', tag: '/ month', features: ['5 servers', '1M calls/mo', 'Custom domain', 'Priority build queue', 'Email support'] }, { name: 'Team', price: '€149', tag: '/ month', features: ['25 servers', '10M calls/mo', 'RBAC + audit log', 'SLA 99.9%', 'Slack support'] }, { name: 'Enterprise', price: '€499+', tag: '/ month', features: ['Unlimited', 'BYOC', 'SSO / SAML', 'Dedicated cluster', 'Customer success'] }, ]; export default function Landing() { return ( <> {/* Hero */}
v0.1 — updated 2026-05-20

Describe your tool.
We host the server.
AI uses it.

From prompt to production MCP server in 60 seconds. OAuth 2.1, Streamable HTTP, ready for Claude, Cursor and ChatGPT.

Start building free Read the docs
OAuth 2.1 + PKCE Streamable HTTP AES-256 secrets Per-server isolation
{/* How it works */}

How it works

Three steps. No JSON to write, no Docker to manage.

{[ { n: '01', t: 'Describe your tool', d: 'A sentence is enough. List your secrets and which APIs to call.' }, { n: '02', t: 'We generate, check, deploy', d: 'Claude writes the spec. We render TypeScript, run static checks, build a container, deploy to your subdomain.' }, { n: '03', t: 'Install in your client', d: 'Copy the snippet into Claude Desktop, Cursor or ChatGPT. OAuth flow on first use.' }, ].map((s) => (
{s.n}

{s.t}

{s.d}

))}
{/* Works with */}

Works with the clients you already use

{['Claude Desktop', 'Cursor', 'ChatGPT', 'VS Code Copilot', 'Continue.dev'].map((t) => ( {t} ))}
{/* Examples */}

Built for the work you actually have

Anything with an HTTP API or a database, in minutes.

{EXAMPLES.map((e) => (
{e.title}

{e.desc}

))}
{/* Marketplace */}

Start from a template, ship in seconds

The marketplace is a library of working MCP servers the community already built. Fork one to skip the prompt — or publish your own and let others build on it.

Browse the marketplace →
{MARKETPLACE_POINTS.map((p) => (

{p.t}

{p.d}

))}
{/* Pricing */}

Pricing

Pay for tool calls, not for boilerplate.

{TIERS.map((t, i) => (
{t.name}
{t.price} {t.tag}
    {t.features.map((f) => (
  • — {f}
  • ))}
))}
{/* FAQ */}

FAQ

{FAQ.map((f) => (

{f.q}

{f.a}

))}
); }