Skip to content

DFL MCP

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

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.

Use your DFL email and password for the shared global login described in Auth & security. Your client sends that current bearer credential to the fleet endpoints you configure. Each endpoint exposes its own tool set.

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

Use dfl-auth login with your DFL email and password. The shared credential lives in ~/.dfl-mcp/. Register each connection in global user scope. Follow Auth & security to renew the credential, update the client’s token environment and reconnect the client.

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 and the Anthropic SDK can use the fleet. The shared auth guide explains the global client prerequisite.

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

  subgraph auth["Global DFL login"]
    login["dfl-auth login<br/><small>DFL email/password → 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 login or renewal"| login
  login -.->|"current token → client environment"| 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.