mcpfoundry
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Forge production-ready MCP servers from databases or OpenAPI specs.
Create secure, production-ready MCP servers from your database or API — in under 5 minutes. ⚒️
Quick Start · Features · Security · Examples · Contributing
Stop hand-writing MCP servers. Point
mcpfoundryat a Postgres database or an OpenAPI spec and get a clean, runnable, secure-by-option MCP server — with parameter validation, typed tools, and an HTTP endpoint — generated for you. Node.js or Python. Zero boilerplate.
⚡ Quick Start (60 seconds)
npx mcpfoundry create \
--type openapi \
--input https://petstore3.swagger.io/api/v3/openapi.json \
--output ./petstore-mcp
cd petstore-mcp && npm install && npm start
# 🎉 MCP server live on http://localhost:3000/mcp
That's a full MCP server — every endpoint turned into a validated tool — running. No SDK wrangling, no transport plumbing, no boilerplate.
✨ Why mcpfoundry?
| ⏱️ Ship in 5 minutes | One command turns a DB or API into a working MCP server. |
| 🔒 Secure by option | Add --secure for a zero-trust JWT guard + deception canary. Off by default, never forced. |
| 🛡️ Hardened by default | Every tool gets strict Zod / Pydantic parameter validation — no opt-in needed. |
| 🏭 Production quality | Self-contained, lint-clean, type-safe output that builds and boots out of the box. |
| 🧩 Maintainable & extensible | Clean Template-Compiler architecture — add a language with a folder, no core changes. |
| 🌐 HTTP or stdio | Streamable HTTP by default; --no-http for stdio (Claude Desktop / Claude Code style). |
| 🐍 Node.js & Python | First-class @modelcontextprotocol/sdk (TS) and FastMCP (Python) output. |
| 🔌 DB & OpenAPI | Introspect Postgres into CRUD tools, or convert any OpenAPI/Swagger spec (file or URL, JSON/YAML). |
🛠️ Two ways to create
1. From an OpenAPI / Swagger spec
Every endpoint becomes a typed, validated MCP tool.
mcpfoundry create --type openapi --input ./openapi.yaml --output ./my-server
2. From a database
Tables are introspected into ready-to-wire CRUD tools.
mcpfoundry create --type database \
--provider postgres \
--uri "postgresql://user:pass@localhost:5432/mydb" \
--output ./db-server --lang python
💡 Preview first with
--dry-runto see exactly which tools you'll get — no files written:✔ Dry run — 4 tool(s) would be generated: • list_pets(limit?: integer) • create_pet(name: string, tag?: string) • get_pet_by_id(pet_id: integer) • delete_pet(pet_id: integer)
🔐 The ZTAI Security Shield (optional)
Pass --secure and every generated server enforces zero-trust access — recommended, never required:
- 🔑 JWT Guard — verifies a short-lived HS256 token (an
Authorization: Bearerheader per request over HTTP, orZTAI_AUTH_TOKENat startup over stdio) againstJWT_SECRET. Invalid or missing → rejected before any tool runs. - 🧱 Parameter hardening — strict Zod / Pydantic schemas (this is always on, even without
--secure— it's just good hygiene). - 🪤 Deception canary — set
ZTAI_CANARY_IDand tool output carries a subtle, traceable marker to help detect adversarial data exfiltration.
Without --secure you still get a perfectly good, vendor-neutral MCP server.
🎛️ All options
| Flag | Description |
|---|---|
--type |
database or openapi (required) |
--provider |
postgres | mysql | mongodb (database mode) |
--uri |
DB connection string (database mode) |
--input |
OpenAPI spec — file path or URL, JSON or YAML (openapi mode) |
--output |
Output directory (required) |
--lang |
nodejs (default) or python |
--transport |
http (default) or stdio |
--no-http |
Shortcut for --transport stdio |
--port |
Port for the HTTP transport (default 3000) |
--secure |
Embed the optional ZTAI Security Shield |
--force |
Overwrite a non-empty output directory |
--dry-run |
Preview the generated tools, then exit |
Postgres is fully supported today. MySQL & MongoDB are scaffolded and open for contributions.
🧩 How it works
mcpfoundry follows a clean Template-Compiler pattern:
source (DB / OpenAPI) ──▶ parser ──▶ normalized IR (ToolSpec[])
│
Handlebars compiler
│
▼
templates/<lang>/ ──▶ your generated server
Parsers and templates are decoupled by a normalized intermediate representation, so adding a new language is just a new templates/<lang>/ folder — no engine changes. See CONTRIBUTING.md.
🤝 Contributing
Two of the most common contributions — a new language template or a new database provider — need zero changes to the core engine. See CONTRIBUTING.md.
📄 License
MIT — build freely.
⭐ Star on GitHub if mcpfoundry saved you an afternoon.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found