AllMCP
Open-source MCP hub providing a single endpoint for AI agents to access dozens of business integrations (CRMs, spreadsheets, telephony, ads) with multi-tenancy, OAuth, and context-efficient tool discovery.
README
AllMCP
One MCP endpoint, every business integration — multi-tenant, context-efficient, self-hostable.
AllMCP is an open-source MCP hub: point any MCP client at a single endpoint and your AI agents get native, typed tools for CRMs, spreadsheets, telephony, ads platforms, and more. You host it; your users self-service their own provider connections through one-click browser flows. AllMCP handles OAuth, token refresh, credential encryption, and every API call.
Claude / ChatGPT / any MCP client
│
▼
https://your-host/mcp/ ← one endpoint, one API key
│
├─ bitrix24_list_contacts()
├─ google_sheets_values_get()
├─ amocrm_create_lead()
└─ … 12 providers, hundreds of tools
Why AllMCP
- Native three-level multi-tenancy.
Client → Organization → Useris built into the connection layer (URL + headers), not bolted on with string tags. One deployment serves an entire AI platform's customer base; every end user connects their own accounts, and credentials are encrypted per user per provider. - Context-efficient by design. Advertising hundreds of tools kills an agent's context window. AllMCP shows only system tools plus the connected providers' core tools; everything else stays hidden until the agent calls
describe_category()— or is revealed automatically on dispatch. Agents keep their context; tools stay one call away. - Native connectors, typed responses. Every tool is a hand-written connector returning typed, documented schemas — no proxying third-party MCP servers, no raw JSON dumps. Provider quirks (pagination, error shapes, rate limits) are absorbed inside the connector and documented in per-provider
findings.mdresearch notes. - Per-category agent skills. Connectors ship with workflow guides that
describe_category()serves to agents — the agent learns how to use a provider's tools, not just their signatures. - MCP OAuth 2.1 authorization server. Header-less clients (Claude web/mobile/Desktop connectors, ChatGPT dev mode) connect with nothing but the URL — authorization-code + PKCE, dynamic client registration, rotating refresh tokens.
- Production-grade engineering. Real-database tests (PostgreSQL + DragonflyDB via containers), structured logging, Prometheus metrics, encrypted credential storage, strict pre-commit gauntlet (isort → black → ruff → mypy → bandit).
Providers
| Provider | Category |
|---|---|
| Bitrix24 | CRM |
| amoCRM / Kommo | CRM |
| SalesDrive | CRM |
| Google Sheets | Spreadsheets |
| Google Docs | Documents |
| Google Ads | Advertising |
| Binotel | Telephony |
| Altegio | Booking |
| iiko | Restaurant ERP |
| YouGile | Project management |
| Linear | Issue tracking |
Adding a connector is deliberately cheap: one folder, a CONNECTOR_META, and tool modules that follow a documented pattern. See CONTRIBUTING.md.
Quickstart (self-host)
Requirements: Docker + Docker Compose, uv.
git clone https://github.com/Perception-Dynamics-Inc/allmcp.git
cd allmcp
cp .env.example .env # dev defaults work out of the box
make dev # postgres + dragonfly + rabbitmq + app + celery
make migrate # apply schema
The MCP endpoint is now at http://localhost:8000/mcp/, the REST API at http://localhost:8000/api, interactive docs at http://localhost:8000/docs.
Register a client and connect an agent (set PUBLIC_API_REGISTRATION_ENABLED=true in .env first — self-registration is off by default):
curl -X POST http://localhost:8000/api/auth/register \
-H 'Content-Type: application/json' \
-d '{"name": "my-platform"}'
# → returns your API key (shown once): allmcp_...
{
"mcpServers": {
"allmcp": {
"url": "http://localhost:8000/mcp/",
"headers": { "X-API-Key": "allmcp_..." }
}
}
}
Multi-tenant mode: append ?org_id=<your-org-ref>&user_id=<your-user-ref> to the URL and AllMCP scopes every credential and tool call to that end user — no other changes required.
There is also a CLI: npx allmcp (npm, source in cli/).
Provider OAuth apps
For OAuth2 providers (Google, amoCRM, …) each deployment registers its own OAuth app with the provider, then stores the client credentials in the provider_oauth_apps table:
INSERT INTO provider_oauth_apps (_id, provider, client_id, client_secret_encrypted, ...)
Secrets are encrypted with your ENCRYPTION_KEY — see src/allmcp/services/oauth.py for the exact row shape. API-key providers (Bitrix24 webhooks, YouGile, …) need no setup: users paste their key into the hosted connect page.
Architecture
src/allmcp/
├── core/ # config, database, cache, logger, security, celery
├── models/ # SQLAlchemy ORM — UUID7 PKs, one file per table
├── schemas/ # Pydantic — typed request/response models
├── services/ # business logic — ServiceResult[T], no exceptions
├── mcp/ # FastMCP server, tenant middleware, system tools
│ ├── middleware.py # per-call tenant resolution, rate limits, usage logs
│ └── tools/ # list_providers, connect_provider, describe_category, …
├── connectors/ # one folder per provider — the heart of the project
└── api/ # FastAPI REST — dashboard, OAuth callbacks, key entry
The agent loop every MCP client follows:
list_providers() → connect_provider("bitrix24", api_key=…) → bitrix24_list_deals()
For OAuth providers, connect_provider returns a browser URL; the end user clicks, consents, and the agent's next call just works.
Hosted version
Don't want to run infrastructure? The managed cloud version lives at allmcp.co — same core, plus a hosted dashboard, usage analytics, and zero-setup provider OAuth apps.
Contributing
New connectors, bug fixes, and docs are all welcome — see CONTRIBUTING.md for the connector-authoring guide and dev workflow. Security reports: see SECURITY.md.
License
Apache-2.0 © Perception Dynamics, Inc.
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.