Skip to main content
Glama

Adi MCP

A remote Model Context Protocol server that exposes tools from many services through one endpoint, deployed on Cloudflare Workers.

Every integration lives in its own package and knows nothing about any other. Adding a provider means creating a folder and adding one line to a registration array — no existing code changes.

MCP client (Claude, etc.)
        │  Streamable HTTP + bearer/OAuth
        ▼
   ┌─────────────┐
   │  /mcp       │  Hono on Cloudflare Workers
   │  CORS · security headers · auth · rate limit
   └──────┬──────┘
          │  ProviderRegistry
   ┌──────┴───────────────────────────────────┐
   │  x   linkedin   github   gmail   notion  │  …13 providers + system
   └──────┬───────────────────────────────────┘
          │  per-provider credentials (KV, encrypted)
          ▼
   third-party APIs

Status

Provider

Auth

State

X

OAuth 2.0 + PKCE

Implemented — post, read profile, search, delete

LinkedIn

OAuth 2.0

Implemented — read profile, share post

GitHub

OAuth 2.0

Scaffold

Gmail

Google OAuth 2.0

Scaffold

Google Calendar

Google OAuth 2.0

Scaffold

Notion

OAuth 2.0

Scaffold

Obsidian

Bearer (Local REST API plugin)

Scaffold

Postgres

Connection string

Scaffold

Supabase

Service-role key

Scaffold

Stripe

API key

Scaffold

Resend

API key

Scaffold

Filesystem

Sandboxed local root

Scaffold

Browser

Browser Rendering / CDP

Scaffold

system

none

Implemented — server introspection

Scaffold means the package is structurally complete — real Zod schemas, real validation, real credential wiring, registered and discoverable over MCP — but execute() throws a NotImplementedError that MCP clients receive as a normal tool error. Filling one in means writing its API client; nothing else has to change. See docs/ADDING_PROVIDERS.md.

Related MCP server: Remote MCP Server (Authless)

Quickstart

pnpm install

Create apps/server/.dev.vars (wrangler's local secrets file — it does not read .env):

MCP_BEARER_TOKEN=some-long-random-string
LOG_LEVEL=debug

Start the server:

pnpm dev

Then check it is alive:

curl http://127.0.0.1:8787/health
{ "status": "ok", "server": "adi-mcp", "version": "0.1.0", "providers": 14, "tools": 29 }

List the tools over MCP:

curl -s -X POST http://127.0.0.1:8787/mcp -H "Authorization: Bearer some-long-random-string" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Connecting a client

Point any MCP client at https://<your-worker>.workers.dev/mcp with an Authorization: Bearer <MCP_BEARER_TOKEN> header. The server advertises its auth scheme at /.well-known/oauth-protected-resource so compliant clients can discover it after a 401.

For clients that sign in rather than take a pasted token — Claude Desktop, Claude on the web — set AUTH_STRATEGY=oauth2. That turns on the built-in OAuth 2.1 authorization server (/.well-known/oauth-authorization-server, dynamic client registration, PKCE), so the client can register and complete a sign-in flow on its own. See docs/OAUTH.md.

Provider credentials are separate from that token — connect each service once via /providers/<id>/connect. See docs/OAUTH.md.

Commands

pnpm dev              # wrangler dev on :8787
pnpm test             # all 294 tests
pnpm test:coverage    # with coverage report
pnpm typecheck        # tsc across every package
pnpm lint             # eslint, type-aware
pnpm format           # prettier
pnpm build            # wrangler dry-run bundle
pnpm scaffold:provider <id> "<Name>" <credential-kind>

Local Postgres for the postgres provider:

docker compose up -d postgres

Documentation

Doc

What's in it

Architecture

Layers, request lifecycle, why it's built this way

Deployment

KV setup, secrets, deploying to Cloudflare

Adding providers

Step-by-step new integration

OAuth

Both auth layers explained end to end

Tools

Writing tools: schemas, validation, errors, docs

Resources & prompts

The other two MCP primitives

Layout

apps/server/        Cloudflare Worker: Hono app, MCP endpoint, OAuth routes
packages/core/      Provider/Tool/Resource/Prompt types, registry, logger, errors, KV, rate limit
packages/auth/      Auth strategies + credential providers (OAuth2, API key, bearer)
packages/<id>/      One isolated package per integration
shared/             Env bindings and constants shared across packages
scripts/            Provider scaffolding script
docs/               The docs above

License

MIT

F
license - not found
-
quality - not tested
C
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.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

  • Remote MCP server for The Colony — a social network for AI agents (posts, DMs, search, marketplace).

View all MCP Connectors

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/adityasingh2929/adi-mcp'

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