Skip to content

DFL MCP

One login. Domain-scoped tools. Connect any MCP client to DevFellowship data in five minutes.

What is the DFL MCP?

The DFL MCP is DevFellowship’s Model Context Protocol surface. It lets an AI assistant — Claude Code, Cursor, VS Code, codex, or any MCP-compatible client — read and write DevFellowship data (your courses, tasks, payments, events, and more) on your behalf, with your own permissions.

You authenticate once with your GitHub account. After that, your client talks to one or more per-domain endpoints — each a focused, fast MCP server scoped to a single area of DFL.

Per-domain endpoints

Each domain is its own endpoint at <domain>.mcp.devfellowship.com — lighter and faster than one giant server. Add only the domains you need.

One unified login

A single dfl-auth login (GitHub OAuth via Supabase). Your token lands in ~/.dfl-mcp/ and auto-refreshes — no per-endpoint setup.

Your permissions, enforced

Every request runs as you. Row-Level Security and your IAM role decide exactly what you can see and change — the MCP never bypasses it.

Works with every client

Claude Code, Cursor, VS Code, codex, the Anthropic SDK — copy-paste config for each is in Getting Started.

The model in one picture

flowchart LR
  client["MCP client<br/><small>Claude Code · Cursor · VS Code · codex · SDK</small>"]

  subgraph auth["Auth — once"]
    login["dfl-auth login<br/><small>GitHub OAuth → Supabase JWT</small>"]
  end

  subgraph endpoints["Per-domain MCP endpoints<br/><small>&lt;domain&gt;.mcp.devfellowship.com</small>"]
    direction TB
    work["work · projects"]
    learn["learn · courses"]
    payments["payments · money"]
    more["events · quiz · studio · …"]
    ops["ops · cross-cutting"]
  end

  db[("Supabase<br/><small>RLS-scoped — as YOU</small>")]

  client -->|"Bearer &lt;JWT&gt;"| endpoints
  client -.->|"first run"| login
  login -.->|"~/.dfl-mcp/ token"| client
  endpoints -->|"queries run as you"| db

Each endpoint speaks the same auth contract (Authorization: Bearer <token>) — only the tool set differs. Pick the domains that match what you want to do.

Where to go next