One profile per project in Claude Code
Add FGAC to a single project directory instead of all of Claude — and pick which agent profile that project gets just by the URL it connects to. Your research repo reads mail; your ops repo can send it. Neither knows the other exists.
The URL is the profile
Every agent profile in your FGAC dashboard has its own MCP endpoint: https://fgac.ai/api/mcp/<profile>. An agent that completes OAuth against a profile's URL attaches to that profile automatically — its rules, its mailboxes, its spreadsheet grants. The plain /api/mcp endpoint keeps working and maps to your read-only Default Profile. Copy each profile's URL (or its ready-made command) from the Connect a new agent via MCP card on the profile.
Set it up in a project directory
- Add the server in your project. Run this inside the project directory (swap
research-botfor your profile's URL from the dashboard):claude mcp add \ --transport http \ fgac https://fgac.ai/api/mcp/research-botThis scopes the server to that directory only — other projects and the rest of Claude never see it. Prefer config files? The same thing as a
.mcp.jsonin the project root (checked in, so your whole team gets the entry — each person still signs in as themselves):{ "mcpServers": { "fgac": { "type": "http", "url": "https://fgac.ai/api/mcp/research-bot" } } } - Sign in. Run
claude mcp login fgacin the same directory and approve the browser prompt — done. Or authenticate from inside Claude Code: start a session, send any first message, then run/mcpand pick fgac → Authenticate. (A freshly added server appears only in new sessions, and/mcplists it after the session has started — so: new session, one message, then /mcp.) - That's it. The connection appears in your dashboard already attached to the profile from the URL. Re-scope, upgrade, or block it there any time — the agent never holds Google credentials, so changes take effect immediately.
Same name everywhere, different powers per project
Call the server fgac in every project. Claude Code keeps a separate sign-in per project for the same server name, and each sign-in registers its own OAuth client with FGAC — so your inbox-triage repo on /api/mcp/inbox-agent and your reporting repo on /api/mcp/sheets-agent show up as two independent connections, each bound to its own profile, each revocable on its own. The URL decides the profile once, at first sign-in; changing a connection's profile later is a dashboard action, never a silent side effect of a URL.
Good to know
- Profile URLs use the profile's label, lowercased and hyphenated: “Research Bot” →
research-bot. The dashboard shows the exact URL, so copying beats guessing. - A URL whose profile doesn't exist (typo, deleted profile) still connects — it just falls back to the read-only Default Profile, so a mistake can never grant more than the default.
- This works in Claude Code everywhere it runs — terminal, the desktop app, and IDE extensions — and the same per-profile URLs work in Cursor, Windsurf, and any other MCP client.