Universal MCP Server Generator - Create MCP servers from any OpenAPI spec
Project description
OmniMCP - Universal MCP Server Generator
Generate MCP (Model Context Protocol) servers from any OpenAPI specification. Connect LLM agents to Slack, GitHub, Notion, Stripe, and 100+ other APIs instantly.
How It Works
OmniMCP is a generator tool that creates standalone MCP server packages:
- Install OmniMCP → The generator CLI
- Run
omnimcp generate <provider>→ Creates a new Python package (e.g.,omnimcp_slack) - Install the generated package →
pip install -e .in the output folder - Run the MCP server →
python -m omnimcp_slack
Each generated server is independent and can be distributed separately.
Features
- Parse OpenAPI 2.0 & 3.x - Automatically handles both Swagger and OpenAPI specs
- Generate MCP Servers - Creates complete, runnable Python packages with FastMCP
- Auth Ready - Pre-configured authentication for popular APIs (OAuth2, API Key, Bearer)
- CLI & Programmatic - Use from command line or import as a library
- LLM Enhancement - Optional Claude-powered review and description enhancement
Installation
pip install omnimcp
For LLM review features:
pip install omnimcp[llm]
Quick Start
1. Generate a Server
# Generate MCP server for Slack
omnimcp generate slack --output ./servers
# Generate with LLM review (optional)
omnimcp generate notion --review --output ./servers
# List available providers
omnimcp list
# Search for APIs
omnimcp list --search "email"
# Get provider info
omnimcp info github
2. Install and Run the Generated Server
Each generated server is a standalone pip package. After generation:
# Navigate to the generated server
cd servers/slack
# Install the generated package
pip install -e .
# Set the required environment variable (shown after generation)
export SLACK_BOT_TOKEN=xoxb-your-token
# Run the MCP server
python -m omnimcp_slack
3. Connect to Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"slack": {
"command": "python",
"args": ["-m", "omnimcp_slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token"
}
}
}
}
Note: The environment variable name depends on the provider and auth type. The CLI will show you the exact variable name after generation.
Programmatic Usage
from omnimcp.generator import OpenAPIParser, MCPConverter, MCPCodeGenerator
# Parse an OpenAPI spec
parser = OpenAPIParser()
parsed = parser.parse("https://api.example.com/openapi.json")
# Convert to MCP tools
converter = MCPConverter()
tools = converter.convert(parsed)
# Generate server code
generator = MCPCodeGenerator()
server = generator.generate(
tools=tools,
server_name="myapi",
base_url=parsed.base_url,
auth_type="bearer",
)
# Write to disk
server.write("./output/myapi")
Supported Providers
Tier 1 (Production Ready)
- Slack
- GitHub
- Notion
- Stripe
- Airtable
- HubSpot
- Trello
- Discord
Tier 2 (Auto-generated + Reviewed)
- Asana, Linear, Jira
- Zendesk, Intercom
- Mailchimp, SendGrid, Twilio
- Shopify, Zoom, Calendly
- And 30+ more...
Tier 3 (Fully Automated)
- All 2000+ APIs from APIs.guru
Development
# Clone and install
git clone https://github.com/omnimcp/omnimcp.git
cd omnimcp
pip install -e ".[dev]"
# Run tests
pytest
# Run example
python scripts/generate_example.py
Environment Variables
# For LLM review (optional)
ANTHROPIC_API_KEY=sk-ant-...
# Per-provider credentials (names shown after generation)
SLACK_BOT_TOKEN=xoxb-... # Slack (OAuth2/Bot token)
GITHUB_TOKEN=ghp_... # GitHub (Bearer token)
NOTION_TOKEN=secret_... # Notion (Bearer token)
STRIPE_API_KEY=sk_test_... # Stripe (API Key)
AIRTABLE_TOKEN=pat... # Airtable (Bearer token)
Tip: Run
omnimcp info <provider>to see the required environment variable.
Architecture
omnimcp/
├── generator/ # Core generator engine
│ ├── parser.py # OpenAPI 2.0/3.x parsing
│ ├── converter.py # OpenAPI → MCP tools
│ ├── codegen.py # Python code generation
│ └── reviewer.py # LLM enhancement
├── auth/ # Authentication layer
│ ├── registry.py # Auth config management
│ ├── handlers.py # OAuth2, API Key, Bearer
│ └── configs/ # Per-provider YAML configs
├── specs/ # Spec management
│ ├── fetcher.py # APIs.guru + first-party
│ └── registry.py # Provider index
└── cli.py # Command-line interface
License
MIT
Project details
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 auramcp-0.1.0.tar.gz.
File metadata
- Download URL: auramcp-0.1.0.tar.gz
- Upload date:
- Size: 31.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
884fa4b6c4ae7a09743ad8e8c42ec2b5cb4cc445d999ea501650f688e33e1a0a
|
|
| MD5 |
8cc302c56e8baa7ba75b2f5cf2bdca08
|
|
| BLAKE2b-256 |
7b637086750e0797d370b85edc0e3e445d710f11c5111154f93c7a0106b05942
|
File details
Details for the file auramcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: auramcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 39.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84f2d5cdc0595c9d6c47933f6b0f39cb8956d0c09a80587784d5d7206a6fb693
|
|
| MD5 |
602aa9b16930b4a23fcbe1af10560263
|
|
| BLAKE2b-256 |
06f6185bd130d2774fe70de4ce548b30f34546dfed16af256050b2a92e1ab4ec
|