Auto-generate MCP servers from any data source. Zero code required.
Point MCP-Maker at a database, spreadsheet, or API and get a fully functional MCP server in seconds — ready for Claude, ChatGPT, Cursor, and any MCP-compatible AI client.
pip install mcp-maker
What is MCP? The Model Context Protocol is the open standard for connecting AI to external tools and data. MCP-Maker auto-generates a complete MCP server from your data source — you don't write a single line of code.
pip install mcp-maker
# Generate from your database
mcp-maker init sqlite:///mydata.db
# Connect to Claude Desktop
mcp-maker config --install
# Restart Claude — your AI can now query your dataNo Claude needed — talk to your SQLite database right from the terminal:
pip install "mcp-maker[chat]"
# Chat with any SQLite database (no init required)
mcp-maker chat sqlite:///mydata.db💡
initvschat:initgenerates a server file for AI clients (Claude, Cursor) and supports all 13 connectors.chatlets you query directly from the terminal — currently supports SQLite only (PostgreSQL and MySQL coming soon).
╭──────────────────────────────────╮
│ 💬 MCP-Maker Chat │
╰──────────── v0.2.6 ─────────────╯
📊 Connected: 3 tables (users, orders, products)
🔧 12 tools available (read-only)
🧠 Provider: OpenAI (gpt-4o-mini)
You > How many orders were placed this month?
🔧 count_orders(date_from='2026-03-01')
There were 47 orders placed this month.
You > Who is our top customer?
🔧 list_orders(order_by='total', order_dir='desc', limit=1)
Your top customer is Sarah Chen with $12,450 in orders.
LLM Providers: chat supports OpenAI and OpenRouter (500+ models including Claude, Gemini, Llama, DeepSeek):
# OpenAI (default)
mcp-maker chat sqlite:///data.db --api-key sk-xxx
# OpenRouter — auto-detected from key prefix
mcp-maker chat sqlite:///data.db --api-key sk-or-xxx --model anthropic/claude-sonnet-4
mcp-maker chat sqlite:///data.db --api-key sk-or-xxx --model google/gemini-2.5-flash
mcp-maker chat sqlite:///data.db --api-key sk-or-xxx --model deepseek/deepseek-chatYour Data Source MCP-Maker Output
┌──────────────┐ ┌──────────────────┐ ┌─────────────────────────┐
│ SQLite │ │ │ │ 📄 mcp_server.py │
│ PostgreSQL │ │ │ │ ↳ Editable, yours │
│ MySQL │───▶│ mcp-maker init │───▶│ │
│ Airtable │ │ │ │ ⚙️ _autogen_tools.py │
│ Google Sheets│ │ (auto-inspect) │ │ ↳ list_users() │
│ Notion │ │ (auto-generate) │ │ ↳ search_orders() │
│ CSV/JSON │ │ │ │ ↳ join_tasks_users() │
│ +6 more │ └──────────────────┘ └─────────────────────────┘
└──────────────┘ Standalone Python file ✅
Works forever, even after
uninstalling MCP-Maker
MCP-Maker generates a standalone Python file. No runtime dependency on MCP-Maker — uninstall it after generation and your server keeps running.
| Connector | URI Format | Auth | Install |
|---|---|---|---|
| SQLite | sqlite:///my.db |
— | Built-in |
| Files (CSV/JSON) | ./data/ |
— | Built-in |
| PostgreSQL | postgres://user:pass@host/db |
DB creds | pip install "mcp-maker[postgres]" |
| MySQL | mysql://user:pass@host/db |
DB creds | pip install "mcp-maker[mysql]" |
| Airtable | airtable://appXXXX |
API key | pip install "mcp-maker[airtable]" |
| Google Sheets | gsheet://SPREADSHEET_ID |
Service acct | pip install "mcp-maker[gsheets]" |
| Notion | notion://DATABASE_ID |
Integration | pip install "mcp-maker[notion]" |
| Excel | excel:///path.xlsx |
— | pip install "mcp-maker[excel]" |
| MongoDB | mongodb://user:pass@host/db |
DB creds | pip install "mcp-maker[mongodb]" |
| Supabase | supabase://PROJECT_REF |
API key | pip install "mcp-maker[supabase]" |
| REST API | openapi:///spec.yaml |
API token | pip install "mcp-maker[openapi]" |
| Redis | redis://host:6379/0 |
Password | pip install "mcp-maker[redis]" |
| HubSpot | hubspot://pat=TOKEN |
PAT | pip install "mcp-maker[hubspot]" |
# Install all connectors at once
pip install "mcp-maker[all]"For each table/collection, MCP-Maker generates:
| Tool | Description |
|---|---|
list_{table} |
Paginated listing with filters, sorting, field selection, date ranges |
get_{table} |
Lookup by primary key |
search_{table} |
Full-text search across string columns |
count_{table} |
Count with optional filters |
insert_{table} |
Insert a single record (with --ops insert) |
update_{table} |
Update by ID (with --ops update) |
delete_{table} |
Delete by ID (with --ops delete) |
batch_insert_{table} |
Bulk insert up to 1,000 records in a transaction |
batch_delete_{table} |
Bulk delete by IDs |
join_{from}_with_{to} |
Cross-table queries via auto-discovered foreign keys |
export_{table}_csv |
Export to CSV |
export_{table}_json |
Export to JSON |
Additional tools based on flags: --semantic (vector search), --webhooks (event hooks), --audit (structured logging).
# Core
mcp-maker init <source> # Generate MCP server
mcp-maker chat <source> # Chat with your database (NEW)
mcp-maker serve # Run the generated server
mcp-maker inspect <source> # Dry run — preview what would be generated
# Configuration
mcp-maker config --install # Auto-configure Claude Desktop
mcp-maker env set KEY VALUE # Store API keys in .env
mcp-maker env list # List stored keys (masked)
mcp-maker list-connectors # Show available connectors
# Deployment
mcp-maker deploy --platform railway # Generate Railway deployment files
mcp-maker deploy --platform render # Render deployment
mcp-maker deploy --platform fly # Fly.io deployment
# Generation Options
mcp-maker init <source> --ops read,insert # Control what the LLM can do
mcp-maker init <source> --tables users,orders # Only expose specific tables
mcp-maker init <source> --async # Async tools (aiosqlite/asyncpg)
mcp-maker init <source> --auth api-key # Require MCP_API_KEY for access
mcp-maker init <source> --semantic # Enable ChromaDB vector search
mcp-maker init <source> --webhooks # Real-time event notifications
mcp-maker init <source> --audit # Structured JSON audit logging
mcp-maker init <source> --cache 60 # Cache reads for N seconds
mcp-maker init <source> --no-ssl # Disable SSL (local dev only)
mcp-maker init <source> --consolidate-threshold 10 # Consolidate large schemas
# Chat Options
mcp-maker chat <source> --api-key sk-xxx # OpenAI key
mcp-maker chat <source> --api-key sk-or-xxx # OpenRouter key (auto-detected)
mcp-maker chat <source> --model gpt-4o # Choose model
mcp-maker chat <source> --provider openrouter # Explicit provider
mcp-maker chat <source> --tables users # Limit to specific tablesMCP-Maker generates two files:
mcp_server.py— Your editable entry point. Add custom tools, business logic, middleware. Never overwritten on re-generation._autogen_mcp_server.py— Auto-generated tools. Regenerated safely when you runinitagain.
| Feature | Description |
|---|---|
| Credential Isolation | Connection strings and API keys loaded from .env — never embedded in generated code |
| Granular Permissions | --ops read (default) prevents writes. Explicitly enable insert, update, delete |
| API Key Auth | --auth api-key gates every tool call behind MCP_API_KEY validation |
| SSL/TLS by Default | PostgreSQL and MySQL connections enforce encrypted transport |
| SQL Injection Prevention | Column whitelist validation on all dynamic queries |
| Batch Limits | Bulk operations capped at 1,000 records to prevent resource exhaustion |
| Rate Limiting | Built-in token bucket throttling for cloud APIs (Airtable, Notion, Sheets) |
MCP-Maker generates a .mcp-maker.lock file tracking your schema fingerprint. On re-generation, it detects changes (added/removed tables and columns) and displays a color-coded migration diff before updating tools.
For schemas with 20+ tables, the --consolidate-threshold flag switches from per-table tools to consolidated generic tools (e.g., query_database), preventing LLM context window overflow.
The generated server works with any MCP-compatible client:
| Client | Setup |
|---|---|
| Claude Desktop | mcp-maker config --install (automatic) |
| Cursor | Add to Cursor Settings → MCP Servers |
| Windsurf | Add to ~/.codeium/windsurf/mcp_config.json |
| VS Code + Continue | Add to Continue's MCP config |
| ChatGPT Desktop | OpenAI MCP support (rolling out) |
| Any MCP client | Run mcp-maker serve and point to it |
# Core (SQLite + Files + CLI)
pip install mcp-maker
# With chat support (OpenAI / OpenRouter)
pip install "mcp-maker[chat]"
# With specific connectors
pip install "mcp-maker[postgres]"
pip install "mcp-maker[airtable]"
pip install "mcp-maker[gsheets]"
pip install "mcp-maker[notion]"
# With async support
pip install "mcp-maker[async-sqlite]"
pip install "mcp-maker[async-postgres]"
pip install "mcp-maker[async-mysql]"
# Everything
pip install "mcp-maker[all]"Requirements: Python 3.10+
| Guide | Description |
|---|---|
| Getting Started | Installation, first server, Claude Desktop setup |
| CLI & Architecture Reference | All commands, env vars, security details |
Each guide includes step-by-step setup, examples, and troubleshooting:
| Connector | Guide |
|---|---|
| SQLite | docs/sqlite.md |
| Files (CSV/JSON) | docs/files.md |
| PostgreSQL | docs/postgresql.md |
| MySQL | docs/mysql.md |
| Airtable | docs/airtable.md |
| Google Sheets | docs/google-sheets.md |
| Notion | docs/notion.md |
| Excel | docs/excel.md |
| MongoDB | docs/mongodb.md |
| Supabase | docs/supabase.md |
| REST API (OpenAPI) | docs/openapi.md |
| Redis | docs/redis.md |
| HubSpot | docs/hubspot.md |
| Semantic Search | docs/semantic-search.md |
MCP-Maker is designed for community contributions — each connector is a self-contained PR.
See CONTRIBUTING.md for a step-by-step guide.
git clone https://github.com/MrAliHasan/mcp-maker.git
cd mcp-maker
make install # Set up dev environment
make check # Run lint + tests (272 tests)Found a vulnerability? Please report it privately via SECURITY.md.