0nMCP
A universal AI API orchestrator that connects to 17+ services (Stripe, Slack, GitHub, etc.) and enables natural language task execution, multi-step automation, and complex orchestration across them without coding.
README
<div align="center">
██████╗ ███╗ ██╗███╗ ███╗ ██████╗██████╗
██╔═████╗████╗ ██║████╗ ████║██╔════╝██╔══██╗
██║██╔██║██╔██╗ ██║██╔████╔██║██║ ██████╔╝
████╔╝██║██║╚██╗██║██║╚██╔╝██║██║ ██╔═══╝
╚██████╔╝██║ ╚████║██║ ╚═╝ ██║╚██████╗██║
╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝╚═╝
The Universal AI API Orchestrator
Connect your apps. Say what you want. AI does the rest.
Demo · Install · Services · Tools · Examples · Contributing
</div>
The Problem
You have Stripe for payments. SendGrid for email. Slack for messaging. Airtable for data. A CRM for contacts.
Today, to automate across them, you need:
- Zapier ($50+/month) — and build complex zaps
- n8n/Make — and learn their visual builders
- Custom code — and maintain API integrations forever
What if you could just... talk to them?
The Solution
You: "Invoice john@acme.com for $500 and notify #sales on Slack when it's sent"
0nMCP figures out the rest:
Step 1: Found John Smith (john@acme.com) in Stripe
Step 2: Created invoice INV-0042 for $500.00
Step 3: Posted to #sales: "New invoice sent to John Smith for $500"
Done. 3 steps. 2 services. 1.2 seconds.
No workflows. No mapping. No code. Just results.
Watch It Work
# In Claude Desktop after setup:
You: "Connect to Stripe with key sk_live_xxx"
AI: Connected to Stripe (8 capabilities available)
You: "Connect to Slack with bot token xoxb-xxx"
AI: Connected to Slack (4 capabilities available)
You: "Get my Stripe balance and post it to #finance"
AI: Your Stripe balance is $12,450.00. Posted to #finance.
That's it. No configuration files. No workflow builders. No decisions about which API to use.
Installation
One Command
npx 0nmcp
Or install globally:
npm install -g 0nmcp
Configure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"0nmcp": {
"command": "npx",
"args": ["0nmcp"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}
ANTHROPIC_API_KEYis optional. It enables AI-powered multi-step task planning. Without it, 0nMCP still works using keyword-based routing.
Restart Claude Desktop. Start talking.
Supported Services
| Service | Type | What You Can Do |
|---|---|---|
| Stripe | Payments | Create customers, send invoices, check balance, subscriptions, products, prices |
| SendGrid | Send emails, manage contacts, templates, lists | |
| Resend | Send transactional emails, manage domains | |
| Twilio | SMS/Voice | Send SMS, make calls, check message status |
| Slack | Communication | Post to channels, DMs, list users, create channels |
| Discord | Communication | Send messages, list server channels |
| OpenAI | AI | Text generation, DALL-E images, embeddings, TTS |
| Airtable | Database | CRUD records in any base, list bases |
| Notion | Database | Search, create pages, query databases |
| GitHub | Code | Repos, issues, pull requests |
| Linear | Projects | Issues, projects (GraphQL) |
| Shopify | E-commerce | Products, orders, customers, inventory |
| HubSpot | CRM | Contacts, companies, deals |
| Supabase | Database | Tables, auth users, storage buckets |
| Calendly | Scheduling | Events, event types, availability |
| Google Calendar | Scheduling | Events, calendars, CRUD |
| CRM | CRM | Contacts, pipelines, tags, workflows, custom values, SMS, email, snapshots |
17 services. 100+ capabilities. One interface.
More coming: Mailchimp, QuickBooks, Jira, Asana, Zendesk, Intercom, Webflow, WordPress...
Examples
Simple Tasks
"Send an email to sarah@example.com: Meeting moved to 3pm"
"Create a Stripe customer for mike@startup.io"
"Post to #engineering on Slack: Deploy complete!"
"Send SMS to +1555123456: Your order shipped"
"What's my Stripe balance?"
"Search Notion for project roadmap"
Multi-Step
"Create a Stripe invoice for $1000, then email the link to john@client.com"
"Create a GitHub issue for the login bug, then post it to #bugs on Slack"
"Look up sarah@example.com in my CRM and send her a follow-up email"
Complex Orchestration
"Check if we have any overdue invoices in Stripe. If so, send a summary
to #finance on Slack and email the finance team."
The AI:
- Queries Stripe for overdue invoices
- Formats a summary
- Posts to Slack
- Sends the email
- Reports back
You describe the outcome. AI figures out the path.
CRM Snapshots — Deploy Entire Configurations
"Deploy a full CRM snapshot with a 12-stage sales pipeline,
all lead tags, custom values, and 18 workflow definitions"
One tool call. Everything deployed:
{
"pipeline": {
"name": "Sales Pipeline",
"stages": ["001. New Lead", "002. Attempt to Contact", "003. Engaged",
"004. Appointment Set", "005. Appointment Showed", "006. Proposal Sent"]
},
"tags": ["New Lead", "FB Lead", "Hot Lead", "Booked Appointment", "No Show"],
"custom_values": {
"calendar_link": "https://calendly.com/yourlink",
"support_email": "support@yourco.com",
"welcome_sms": "Hey {{contact.first_name}}, welcome aboard!"
},
"workflows": [
{
"id": "001a",
"name": "001.a New Lead In",
"trigger": { "type": "tag_added", "tag": "New Lead" },
"actions": [
{ "type": "send_sms", "message": "{{custom_values.welcome_sms}}" },
{ "type": "wait", "duration": "10 minutes" },
{ "type": "add_tag", "value": "Contacted" }
]
}
]
}
All Tools
Universal Tools (7)
| Tool | Description |
|---|---|
execute |
Run any task in natural language across all connected services |
connect_service |
Connect a new service with credentials |
disconnect_service |
Remove a connected service |
list_connections |
See what's connected and capability counts |
list_available_services |
Browse all 17 services grouped by category |
get_service_info |
Deep dive on a specific service — endpoints, auth, capabilities |
api_call |
Direct API call to any connected service endpoint |
CRM Tools (10)
| Tool | Description |
|---|---|
crm_auth_url |
Generate OAuth authorization URL |
crm_exchange_token |
Exchange auth code for access + refresh tokens |
crm_refresh_token |
Refresh an expired access token |
crm_create_tags |
Bulk create tags in a sub-account |
crm_create_pipeline |
Create pipeline with ordered stages |
crm_create_custom_values |
Push custom key-value pairs |
crm_process_workflow |
Process workflow JSON — extracts and creates tags + custom values |
crm_deploy_snapshot |
Full deployment: pipeline + tags + custom values + all workflows |
crm_list_workflows |
List all workflows |
crm_list_pipelines |
List all pipelines and stages |
17 tools total. Universal orchestration + deep CRM integration.
How It Works
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ You (Claude) │────▶│ 0nMCP │────▶│ Your APIs │
│ │ │ │ │ │
│ "Invoice John │ │ 1. Parse intent │ │ Stripe │
│ for $500 and │ │ 2. Plan steps │ │ SendGrid │
│ notify #sales" │ │ 3. Execute APIs │ │ Slack │
│ │◀────│ 4. Chain data │◀────│ CRM │
│ │ │ 5. Summarize │ │ + 13 more... │
└─────────────────┘ └──────────────────┘ └─────────────────┘
With ANTHROPIC_API_KEY (AI Mode)
Claude analyzes your task, inspects connected services and their capabilities, creates a multi-step execution plan, runs every API call in order, passes data between steps, and summarizes the results.
Without API Key (Keyword Mode)
The orchestrator uses keyword matching to route tasks to the right service. Less intelligent but still functional for straightforward single-service requests.
Why Not Just Use...
| 0nMCP | Zapier | Custom Code | |
|---|---|---|---|
| Setup time | 2 minutes | 30+ min per zap | Hours/days |
| Learning curve | None (natural language) | Medium (visual builder) | High (APIs, auth) |
| Multi-step tasks | Just describe it | Build complex zaps | Write orchestration logic |
| Cost | Free + your API keys | $20-$100+/month | Your time |
| Flexibility | Say what you want | Triggers/actions only | Unlimited but complex |
| Maintenance | Zero | Update broken zaps | Fix API changes |
| Open source | Yes (MIT) | No | Depends |
Architecture
0nMCP/
├── index.js # Entry point — 7 universal tools + server startup
├── catalog.js # Service catalog — 17 integrations with endpoints
├── connections.js # Connection manager — credential storage (~/.0nmcp/)
├── orchestrator.js # AI execution planner — the brain
├── crm.js # CRM tools — 10 dedicated tools, first full integration
├── package.json
├── LICENSE # MIT
├── CONTRIBUTING.md
└── README.md
| Component | What It Does |
|---|---|
| Service Catalog | Defines all 17 services — their base URLs, endpoints, auth patterns, and capabilities |
| Connection Manager | Stores and retrieves credentials locally at ~/.0nmcp/connections.json |
| Orchestrator | The brain — parses natural language, plans multi-step execution, calls APIs, chains data |
| Universal Tools | MCP interface: execute, connect_service, api_call, etc. |
| CRM Tools | Direct access: pipelines, tags, custom values, workflows, full snapshot deploy |
Security
- Local execution — MCP server runs on your machine, not in the cloud
- Direct API calls — Requests go straight to each service, not through a proxy
- Your credentials — Stored locally at
~/.0nmcp/connections.json, never sent anywhere - Anthropic key — Only used for task planning (never passed to external services)
- Open source — Audit every line yourself
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY |
No | Enables AI-powered multi-step planning. Keyword matching without it. |
Credential Storage
Connections stored in plain text at ~/.0nmcp/connections.json. For production:
- Use a secrets manager
- Encrypt the connections file
- Use environment variables for credentials
For Developers
Adding a New Service
Drop a definition into catalog.js:
your_service: {
name: "Your Service",
type: "category",
description: "What it does",
baseUrl: "https://api.yourservice.com",
authType: "api_key",
credentialKeys: ["apiKey"],
capabilities: [
{ name: "do_thing", actions: ["create", "list"], description: "Does the thing" },
],
endpoints: {
do_thing: { method: "POST", path: "/things", body: { name: "" } },
list_things: { method: "GET", path: "/things" },
},
authHeader: (creds) => ({
"Authorization": `Bearer ${creds.apiKey}`,
"Content-Type": "application/json",
}),
},
Add keyword triggers to orchestrator.js. Submit a PR. Done.
See CONTRIBUTING.md for the full guide.
Roadmap
- [x] Core orchestration engine with AI planning
- [x] 17 service integrations
- [x] Multi-step execution with data chaining
- [x] CRM deep integration (10 dedicated tools)
- [x] Full snapshot deployment (pipeline + tags + values + workflows)
- [x] Keyword fallback mode (works without Anthropic key)
- [ ] OAuth flows — connect with one click
- [ ] Credential encryption — at-rest security
- [ ] Execution history — see what ran and when
- [ ] Scheduled tasks — "every Monday, send a report"
- [ ] Webhooks — trigger on external events
- [ ] Conditionals — "if balance < $100, alert me"
- [ ] More services — 50+ planned
- [ ] npm publish —
npx 0nmcplive on npm - [ ] Web dashboard — manage connections visually
- [ ] Plugin system — bring your own services
Contributing
We want 0nMCP to be the open standard for AI-powered API orchestration.
Ways to contribute:
- Add a service — Drop it in the catalog. See CONTRIBUTING.md
- Report bugs — Open an issue
- Suggest features — Start a discussion
- Improve docs — PRs welcome
- Star the repo — Help others find it
git clone https://github.com/Crypto-Goatz/0nMCP.git
cd 0nMCP
npm install
node index.js
License
MIT License — do whatever you want with it. See LICENSE.
Credits
Built on:
- Anthropic — Claude and the MCP standard
- Model Context Protocol — The protocol that makes this possible
<div align="center">
Stop building workflows. Start describing outcomes.
Star this repo if you believe AI should just do things for you.
Made with conviction by RocketOpp
"The best automation is the one you don't have to build."
</div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.