Claude Connector

Team Plan 6 min read Updated June 2026

Connect your team brain to the official Claude.ai app as a Custom Connector. Once connected, Claude can search and write your team's memory, tasks, and contacts directly inside any chat — no copy-pasting context, no separate tool. The connection is secured with OAuth 2.1 and bound to a single team.

This is a standard remote MCP connector, so the same endpoint works with any MCP client that supports OAuth — Claude.ai (web & desktop), Claude Code, and others. This guide uses the Claude.ai app as the example.

What you get

The connector exposes your team brain's full toolset to Claude. Ask naturally and Claude calls the right tool:

Before you start

Each connection is bound to a single team

You pick your team once, during sign-in. The access token Claude receives is locked to that one team's brain — it can never read or write another team's data. If you belong to several teams and want to use more than one in Claude, add a separate connector connection for each.

Connect in 4 steps

Open the connector settings

In Claude.ai, go to Settings → Connectors (on newer builds this lives under Customize → Connectors), then click Add connector → Add custom connector.

Enter the brain URL

Give it a name (e.g. GrooveOS Brain) and paste the server URL:

https://mcp.grooveos.app/mcp

Leave the optional OAuth fields blank — registration is automatic. Click Add.

Authorize with GitHub & pick your team

Click Connect. Claude opens a secure GrooveOS sign-in page. Sign in with GitHub (the same identity you use for GrooveOS), then choose the one team this connection should use, and approve.

Done

Claude shows "Connected" and the brain tools appear. By default each tool is set to Needs approval — Claude asks before running it. You can switch read tools like memory_search and team_context to Always allow for a smoother flow.

The tools

ToolWhat it doesAccess
memory_searchSemantic search across your team's memoryRead
memory_addSave a new fact to the team brainWrite
team_contextPull the team's high-confidence contextRead
tasks_listList the team's tasksRead
task_createCreate a taskWrite
task_updateUpdate an existing taskWrite
contacts_searchSearch the team CRMRead
contact_addAdd a contactWrite
agent_invokeRun a team agentWrite

Write safeguards

Everything Claude writes through the connector is tagged and constrained:

How sign-in works

The connector uses the standard MCP authorization flow (OAuth 2.1): Claude discovers the server, registers itself automatically, and runs an authorization-code flow with PKCE. You authenticate with GitHub and pick a team; Claude receives a short-lived access token scoped to that team. There is no static token to paste and no password ever reaches Claude.

The token Claude holds is bound to your chosen team and to this specific connector endpoint (audience-bound). You can revoke it any time by clicking Disconnect on the connector in Claude.ai.

Troubleshooting

"Authorization page could not be loaded"

On a self-hosted GrooveOS, this means your GitHub App isn't reachable for your account yet. The App must be public for members who aren't the App owner, and its callback list must include https://api.grooveos.app/oauth/github-callback. See the self-hosting note below.

Claude reconnects in a loop after authorizing

A small number of Claude builds have hit a known upstream issue with streamable HTTP after OAuth. If you see it, disconnect and reconnect; if it persists, contact team@grooveos.app.

Wrong team connected

The team is chosen at sign-in and locked to the token. To switch, click Disconnect and reconnect, choosing the other team — or add a second connection for it.

Running your own GrooveOS / xbrain?

The connector is served by two open-source services: memory-api is the OAuth 2.1 Authorization Server (/.well-known/oauth-authorization-server + /oauth/* on your API host), and mcp-brain is the Protected Resource (/.well-known/oauth-protected-resource + the /mcp endpoint). For end-user sign-in to work, register https://<your-api-host>/oauth/github-callback as a callback URL on your GitHub App and make the App public. Full details in the open-source repo.

What's next