Auto-generate MCP servers from any data source. Zero code required.
Project description
⚒️ MCP-Maker
Auto-generate MCP servers from any data source. Zero code required.
Point MCP-Maker at a database, spreadsheet, or directory and get a fully functional MCP server in seconds — ready for Claude, ChatGPT, Cursor, and any MCP-compatible AI.
Note: MCP-Maker is built on top of the official MCP Python SDK (
mcppackage). The SDK is the low-level framework for building MCP servers in Python — you write every tool, resource, and handler yourself. MCP-Maker uses that SDK under the hood to auto-generate everything from your data source. Think of it like Django vs raw SQL: same power, less work.
How It Works
Your Data Source MCP-Maker MCP Server
┌──────────────┐ ┌──────────────────┐ ┌─────────────────────────┐
│ SQLite DB │ │ │ │ 📄 server.py (Editable) │
│ Google Sheet │───▶│ mcp-maker init │───▶│ ↳ Add custom tools │
│ Airtable │ │ │ │ │
│ Notion DB │ │ (auto-inspect) │ │ ⚙️ _autogen_tools.py │
│ CSV files │ │ (auto-generate) │ │ ↳ list_users() │
│ PostgreSQL │ │ │ │ ↳ search_users() │
│ MySQL │ └──────────────────┘ └─────────────────────────┘
└──────────────┘ Ready for Claude ✅
🏢 Enterprise-Ready Architecture
- Non-Destructive Generation:
mcp-maker initsafely outputs two files:server.py(your editable entry point) and_autogen_tools.py. Regenerate as often as you like—your custom tools and business logic are never overwritten. - Credential Hardening: Connection strings and API keys are strictly forbidden in generated files. They are securely loaded via generated
.envfiles and standard environment variables. - API Key Authentication (
--auth api-key): Gate access to your generated server with anMCP_API_KEYenvironment variable. Every tool call is wrapped with an auth check. - SSL/TLS by Default: All PostgreSQL and MySQL connections enforce encrypted transport (
sslmode=require/ssl=True). Disable with--no-sslfor local development only. - Schema Versioning & Migrations: Generates a
.mcp-maker.lockfile tracking your schema fingerprint. On re-generation, detects added/removed tables/columns and displays a detailed migration diff with color-coded changes, then auto-updates tools. - Multi-Source Servers: Combine multiple data sources into a single server:
mcp-maker init sqlite:///users.db mongodb://localhost/ordersmerges schemas and generates tools for both. - Relationship Detection: Auto-discovers foreign keys in SQL databases and generates
join_tools (e.g.,join_orders_with_users). - Pagination Helpers: All
list_tools return{results, total, has_more, next_offset}for proper cursor-based pagination. - Column Selection: Pass
fields="name,email"to anylist_tool to receive only specific columns instead ofSELECT *. - Date Range Filters: When date/datetime columns are detected,
list_tools auto-generatedate_from/date_toparameters. - Batch Operations:
batch_insert_andbatch_delete_tools wrapped in transactions for all SQL connectors, MongoDB, and Supabase. - Export Tools:
export_{table}_csv()andexport_{table}_json()for every table across all connectors. - Webhook Support (
--webhooks): Register, list, and remove webhooks for real-time notifications on insert/update/delete events. - Redis Pub/Sub:
publish_message(),channel_list(), andchannel_subscribers()tools for Redis channels. - Async Generation (
--async): Generate async tools usingaiosqlite,asyncpg, oraiomysqlfor high-concurrency MCP servers. - LLM Context Optimization (
--consolidate-threshold): For massive schemas (>20 tables), MCP-Maker intelligently switches from generating per-table CRUD tools to consolidated generic tools (e.g.,query_database) to prevent LLM context window bloat and reasoning degradation. - Structured Audit Logging (
--audit): Optionally generate servers that output structured JSON logs for every tool invocation, ready for ingestion into Datadog, Splunk, or ELK. - Async-Ready Connection Pooling: Fast, thread-safe database interactions with built-in connection pooling for PostgreSQL (
psycopg2.pool), MySQL, and SQLite. - Guaranteed Code Quality: All generated Python code is automatically syntactically verified through
ast.parseand statically formatted withblack.
✨ Why MCP-Maker?
- Zero-Code Generation: Instantly maps tables, columns, and APIs into atomic MCP tools. No coding required.
- Zero Vendor Lock-In: The generated
mcp_server.pyfile is a 100% standalone, standard Python file built entirely on the official SDK. You can uninstall MCP-Maker immediately after generation and your server will continue to run flawlessly forever. - Granular Security (
--ops): You control exactly what the LLM can do. Explicitly authorizeread,insert,update, ordeleteoperations. - Auto-Rate Limiting: Built-in TokenBucket throttling for Cloud APIs (Airtable, Notion, Google Sheets) prevents
429 Too Many Requestsbans when LLMs make aggressive parallel tool calls. - Semantic Vector Search (
--semantic): Automatically spins up a ChromaDB vector database alongside your SQL tables for high-quality, meaning-based search. - Context Window Optimized (
--tables): Only expose the data you actually need to prevent LLM context bloat and hallucination. - Environment Management: Safely manage API credentials via
mcp-maker envinstead of hardcoding them.
🔌 Supercharged Connectors
While basic tools stop at simple SQL tables, MCP-Maker's Connectors are engineered for complex enterprise use cases:
- HubSpot: Acts as an Enterprise Data-Bridge, intelligently auto-discovering custom objects, custom properties, mapping Deal Pipelines natively, resolving
owner_idsto human names, and exposing batch upsert endpoints. - Notion: Supports Multi-Database URIs (
notion://DB1,DB2), automatically parses 20+ property types (Rollups, Relations, Formulas), handles cursor pagination, and exposes deepfiltertools. - Airtable: Generates tools to query via Airtable Formulas, target specific Views, automatically sorts records, and discovers your Bases directly (
mcp-maker bases). - Google Sheets: Treats entire tabs as discrete SQL-like tables, infers column types, and provides pinpoint
update_celltools. - PostgreSQL / MySQL: Detects Primary Keys automatically, maps all complex SQL native types, and fully supports SSL-encrypted TLS connections.
Quick Start (2 minutes)
Step 1: Install
pip install mcp-maker
Step 2: Generate a server from your data
# SQLite database
mcp-maker init sqlite:///path/to/my_database.db
# CSV/JSON files in a directory
mcp-maker init ./my-data/
# Google Sheets (see docs for auth setup)
mcp-maker init gsheet://YOUR_SPREADSHEET_ID
# Airtable
mcp-maker init airtable://appXXXXXXXXXX
# Notion
mcp-maker init notion://DATABASE_ID
This creates a mcp_server.py file with all your tools.
Step 3: Connect to Claude Desktop
# Auto-configure Claude Desktop
mcp-maker config --install
# Restart Claude Desktop, then ask:
# "What tables are in my database?"
# "Show me the top 10 customers"
# "Search for records containing 'Python'"
That's it. Your AI can now query your data.
📖 Documentation
👉 Getting Started Guide — Tutorial, installation, first server, Claude Desktop setup
📋 CLI Reference & Architecture — CLI commands, env vars, security, architecture
Connector Guides (with 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 — Formulas, views, sorting, CRUD |
| Google Sheets | docs/google-sheets.md — GCP service account setup |
| Notion | docs/notion.md — Integration setup, multi-DB support |
| Excel | docs/excel.md — .xlsx files, sheets as tables |
| MongoDB | docs/mongodb.md — Document sampling, full CRUD |
| Supabase | docs/supabase.md — Auth/storage tools, PostgREST |
| REST API | docs/openapi.md — OpenAPI/Swagger specs |
| Redis | docs/redis.md — Key grouping, type-aware tools |
| HubSpot | docs/hubspot.md — Enterprise CRM Data-Bridge, PAT auth |
Feature Guides
| Feature | Guide |
|---|---|
| Semantic Search | docs/semantic-search.md — ChromaDB vector search, search by meaning |
🔌 Supported Connectors (13)
| Connector | URI Format | Auth Required | Install |
|---|---|---|---|
| SQLite | sqlite:///my.db |
❌ | Built-in |
| Files | ./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 | ./data.xlsx or 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:///path/to/spec.yaml |
✅ API token | pip install "mcp-maker[openapi]" |
| Redis | redis://host:6379/0 |
✅ Password | pip install "mcp-maker[redis]" |
| HubSpot | hubspot://pat=YOUR_TOKEN |
✅ PAT | pip install "mcp-maker[hubspot]" |
Install all connectors at once:
pip install "mcp-maker[all]"
CLI Commands
mcp-maker init <source> # Generate an MCP server
mcp-maker init <source> --ops read,insert # Include specific write operations
mcp-maker init <source> --tables users,orders # Only include specific tables
mcp-maker init <source> --semantic # Enable vector/semantic search
mcp-maker init <source> --audit # Enable structured JSON audit logging
mcp-maker init <source> --auth api-key # Require MCP_API_KEY for access
mcp-maker init <source> --async # Generate async tools (aiosqlite/asyncpg)
mcp-maker init <source> --cache 60 # Cache read results for 60 seconds
mcp-maker init <source> --no-ssl # Disable SSL for local development
mcp-maker init <source> --force # Skip schema change warnings
mcp-maker init <source> --consolidate-threshold 10 # Consolidate large schemas
mcp-maker deploy --platform railway # Generate deployment files
mcp-maker deploy --platform render # Render deployment
mcp-maker deploy --platform fly # Fly.io deployment
mcp-maker serve # Run the generated server
mcp-maker inspect <source> # Preview what would be generated (dry run)
mcp-maker config --install # Auto-write Claude Desktop config
mcp-maker env set KEY VALUE # Store API keys safely in .env
mcp-maker env list # List stored keys (masked)
mcp-maker list-connectors # Show available connectors
mcp-maker bases # Discover Airtable bases
📦 Installation
# Core (SQLite + Files)
pip install mcp-maker
# With PostgreSQL support
pip install "mcp-maker[postgres]"
# With Airtable support
pip install "mcp-maker[airtable]"
# With Google Sheets support
pip install "mcp-maker[gsheets]"
# With Notion support
pip install "mcp-maker[notion]"
# With semantic search (ChromaDB vector search)
pip install "mcp-maker[semantic]"
# With async support
pip install "mcp-maker[async-sqlite]" # aiosqlite
pip install "mcp-maker[async-postgres]" # asyncpg
pip install "mcp-maker[async-mysql]" # aiomysql
# New connectors
pip install "mcp-maker[excel]" # Excel (.xlsx)
pip install "mcp-maker[mongodb]" # MongoDB
pip install "mcp-maker[supabase]" # Supabase
pip install "mcp-maker[openapi]" # REST API (OpenAPI specs)
pip install "mcp-maker[redis]" # Redis
# All connectors + semantic search + async
pip install "mcp-maker[all]"
# Development
pip install "mcp-maker[dev]"
🤝 Contributing
MCP-Maker is designed for community contributions — each new connector is a self-contained PR.
See CONTRIBUTING.md for detailed instructions and a step-by-step connector creation guide.
make install # Set up dev environment
make check # Run lint + tests
🔒 Security
Found a vulnerability? Please report it privately — see SECURITY.md.
📄 License
This project is licensed under the MIT License.
This project follows the Contributor Covenant Code of Conduct.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_maker-0.2.4.tar.gz.
File metadata
- Download URL: mcp_maker-0.2.4.tar.gz
- Upload date:
- Size: 143.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
940cbbc0375a79453b5089af1b5521bff54e6a32fce5fe189745bed49d5e645b
|
|
| MD5 |
df38a9fda0727eed41b14fd6849143b8
|
|
| BLAKE2b-256 |
b1085995aab7c6cbba00ec0aefde361e1f261ae6ea14642ed10b3426a33a9462
|
Provenance
The following attestation bundles were made for mcp_maker-0.2.4.tar.gz:
Publisher:
publish.yml on MrAliHasan/mcp-maker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_maker-0.2.4.tar.gz -
Subject digest:
940cbbc0375a79453b5089af1b5521bff54e6a32fce5fe189745bed49d5e645b - Sigstore transparency entry: 1092848468
- Sigstore integration time:
-
Permalink:
MrAliHasan/mcp-maker@ecff120961edf6b87b8906277f5ad42d7bd87bfa -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/MrAliHasan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ecff120961edf6b87b8906277f5ad42d7bd87bfa -
Trigger Event:
release
-
Statement type:
File details
Details for the file mcp_maker-0.2.4-py3-none-any.whl.
File metadata
- Download URL: mcp_maker-0.2.4-py3-none-any.whl
- Upload date:
- Size: 126.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
692d5c0b27ba60bb23f4843d52cd9b9b5a02289c22aafcaff34b07fff5b02f3c
|
|
| MD5 |
9ae37cc7e84f1ccfee17fc2029fedddb
|
|
| BLAKE2b-256 |
3797cb82b425834a829da4df2fa0c301d22df0bbdd2b4cc274e42fac3d0cfee1
|
Provenance
The following attestation bundles were made for mcp_maker-0.2.4-py3-none-any.whl:
Publisher:
publish.yml on MrAliHasan/mcp-maker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_maker-0.2.4-py3-none-any.whl -
Subject digest:
692d5c0b27ba60bb23f4843d52cd9b9b5a02289c22aafcaff34b07fff5b02f3c - Sigstore transparency entry: 1092848472
- Sigstore integration time:
-
Permalink:
MrAliHasan/mcp-maker@ecff120961edf6b87b8906277f5ad42d7bd87bfa -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/MrAliHasan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ecff120961edf6b87b8906277f5ad42d7bd87bfa -
Trigger Event:
release
-
Statement type: