Skip to main content
Glama

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 → User is 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.md research 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).

Related MCP server: MCP Hub

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.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Perception-Dynamics-Inc/allmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server