Reference

FAQ

Common questions, direct answers.

How does the LLM-generated code stay safe?

Three layers: strict Zod validation of the JSON spec, regex scan for banned tokens (eval, child_process, prompt-injection markers), and a static check on the rendered TypeScript before Docker build. If any layer trips, the build fails with a clear error and nothing is deployed.

What happens if Claude hallucinates a broken tool?

The build fails at the static-check or Docker-build stage. The user sees the exact error in the live log and can refine the prompt and rebuild. No invalid server ever serves traffic.

Do my secrets ever leave my environment?

No. Secrets are AES-256-GCM encrypted at rest in your Postgres, decrypted only when injecting into your container at boot. They never appear in audit logs, build logs, or the prompt sent to Claude.

Why MCP and not OpenAPI?

MCP standardizes the discovery, invocation, auth, and streaming surface in a way OpenAPI never did. The point is that any spec-compliant client picks up any spec-compliant server with zero per-API integration work. OpenAPI requires custom glue for every client.

Can I use my own Claude API key?

Yes — set ANTHROPIC_API_KEY in .env. On self-hosted control planes you can also wire a separate per-org key (Sprint 4).

What if I don't set ANTHROPIC_API_KEY?

The generator falls back to a deterministic mock spec (two tools: echo, now) so you can verify the full pipeline without burning credits.

Cold-start latency?

Generated containers stay warm. After first boot, /mcp responds in sub-50ms in-region.

Rate limits?

Default 100 requests/min/IP per tool. Configurable per server. Quota enforced before hitting your container.

How is OAuth different from API keys?

OAuth 2.1 with PKCE + Dynamic Client Registration + Resource Indicators means the AI client gets a short-lived, audience-bound token. Compromised tokens expire and can't be replayed against other servers. API keys are static and replayable forever.

Can the AI client itself get phished into using a malicious server?

The MCP spec mandates user consent on initial server addition. Beyond that, each server's scope is opaque to other servers — there's no cross-server token leakage because of audience binding.

How do I export my server's code?

Every build record stores the rendered TypeScript in Postgres. The /servers/:id detail page exposes it for download (Sprint 4 UI; available now via API).

What about ChatGPT specifically?

ChatGPT supports MCP via Custom Connectors. The wizard's install tab gives you the URL + OAuth setting; the handshake runs automatically on first call.