MCP Server
Groupthink's MCP (Model Context Protocol) server lets you ask any MCP-compatible AI assistant (Claude Desktop, Claude Code, Cursor, and others) to use Groupthink on your behalf. Your assistant can send the Groupthink bot into live meetings (joining, transcribing, speaking, chatting, leaving), read and write your relationship intelligence, and pull notes from meetings you have already had, surfaced in whichever tool you already work in.
- "Send the Groupthink bot to this Zoom and tell me what got covered when it's done: https://zoom.us/j/..."
- "What is happening in the meeting right now?"
- "Who am I meeting with this afternoon, and what should I prepare?"
- "Show me the notes from my call with sarah@example.com yesterday."
- "Show me my relationships I'm falling behind on"
- "What do I know about sarah@example.com?"
- "Save this as a note on sarah@example.com: we agreed to revisit pricing in Q3."
- "Find people I've talked to about pricing"
Prerequisites
Before setting up, you'll need:
- A Groupthink account, signed in at app.groupthink.com
- An MCP-compatible AI client. Tested with Claude Desktop, Claude Code, and Cursor; also works with other clients that support remote MCP servers over HTTP.
Step 1: Mint an API Token
- Open Settings → API Tokens on app.groupthink.com (sign in if prompted).
- Click New token, give it a recognizable name (such as "Claude Desktop" or "Cursor on personal Mac"), and click Create token.
- Copy the token value when it appears. You will only see this once. Save it somewhere safe (a password manager works well). Once you dismiss the create panel, the token cannot be retrieved.
You can revoke a token from the same Settings page at any time. Any client using the revoked token will immediately lose access.
Step 2: Connect Your AI Client
Pick the client you use. The Claude Code path is the fastest: one command, no extra dependencies.
Claude Code (fastest)
From your terminal, run:
claude mcp add --transport http --scope user groupthink https://api.groupthink.com/v1/mcp-server \
--header "Authorization: Bearer YOUR_TOKEN_HERE"
Replace YOUR_TOKEN_HERE with the token from Step 1. The --scope user flag makes Groupthink available in every Claude Code project, not just the directory you ran the command from. Claude Code supports remote HTTP MCP servers natively, so no bridge is required.
Verify the server loaded with claude mcp list. You're done.
Claude Desktop
Claude Desktop reaches the Groupthink MCP through a small bridge called mcp-remote, which runs automatically via npx on first use. You need Node.js installed (most modern Macs already have it; check by running node --version in Terminal).
Edit your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the groupthink entry inside the existing mcpServers block. If you already have other MCP servers configured (for example, Playwright or a Cooking MCP), keep them. Add the groupthink key alongside them, don't replace the whole file:
{
"mcpServers": {
"groupthink": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.groupthink.com/v1/mcp-server",
"--header",
"Authorization:Bearer YOUR_TOKEN_HERE"
]
}
}
}
Replace YOUR_TOKEN_HERE with the token from Step 1. Save the file and fully quit and relaunch Claude Desktop.
Cursor
Cursor uses the same mcp-remote bridge as Claude Desktop. Open Cursor settings, go to the MCP Servers section, and add the same entry:
{
"mcpServers": {
"groupthink": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.groupthink.com/v1/mcp-server",
"--header",
"Authorization:Bearer YOUR_TOKEN_HERE"
]
}
}
}
Other clients
Any MCP client that can run a local stdio server should work with the mcp-remote bridge above. Replace the URL and Authorization header value as needed; the rest of the config shape is identical. Clients with native remote HTTP transport support can point directly at https://api.groupthink.com/v1/mcp-server with your token as a Bearer credential.
Step 3: Try It Out
Open a new conversation in your AI assistant and try a natural-language prompt. Sending the bot into a live meeting (have a Zoom, Google Meet, or Microsoft Teams URL ready):
- "Send the Groupthink bot to this Zoom: [your meeting URL]"
- "What is being said in the meeting right now?"
- "Have the bot say 'Sorry I'm running late, I'll be there in five minutes' in the meeting"
- "Tell the bot to leave the meeting"
- "Save these notes from the meeting: ..."
Working with your relationship intelligence:
- "What relationships do I have in Groupthink?"
- "Tell me about my relationship with [their email]"
- "Who am I falling behind on?"
- "What meetings do I have this week, and what should I know about the attendees?"
- "Show me the notes from my call with [their email] yesterday."
- "Save this as a note on [their email]: [paragraph of context, dossier text, political read, etc.]"
Your assistant should call the appropriate Groupthink tools and respond with your real data. Tools that change state (sending the bot, posting chat, speaking, saving notes) write a usage row to your account so you can see what was done on your behalf.
Reference: Tools Your Assistant Can Call
The MCP server exposes fifteen tools, split across participating live in meetings and working with your relationship and meeting intelligence. You usually don't need to know these by name — your assistant picks the right one from a natural-language prompt — but here's the full catalog.
Live meeting participation
These tools send the Groupthink bot into a live meeting and let your assistant interact with it. Each tool except join_meeting operates on a bot_id returned by join_meeting.
| Tool | What it does |
|---|---|
| join_meeting | Send the Groupthink bot to a Zoom, Google Meet, or Microsoft Teams URL. Returns the bot_id that subsequent tools operate on. |
| get_transcript | Fetch new transcript lines from the bot since the last call. Maintains a per-user cursor so repeated calls return only what is new. |
| speak | Have the bot speak text aloud in the meeting using TTS. Subject to a small per-user daily spend cap to prevent runaway audio cost. |
| send_chat | Send a chat message into the meeting via the bot. Max 2000 characters. |
| bot_status | Get the bot's current state (joining, in_call_recording, done, errored, etc), name, meeting URL, and creation time. |
| leave_meeting | Tell the bot to leave the meeting. Recall may take a few seconds to remove the bot. Also clears the per-user transcript cursor. |
| save_notes | Persist agent-generated meeting notes (summary, action items, key decisions, contributions) against the bot's meeting. Idempotent. |
| get_notes | Retrieve previously saved agent meeting notes for the bot's meeting. |
Your relationship and meeting intelligence
Read tools query the graph; upsert_relationship_note writes a free-form note back to it. get_upcoming_meetings and get_past_meetings cover the calendar in both directions so your assistant can answer "who am I meeting with at 2pm" and "what got covered in my call with sarah yesterday" without you remembering any IDs. Personal details surfaced by get_relationship carry source-meeting attribution + extraction timestamps so your assistant can verify currency before relaying a fact.
| Tool | What it does |
|---|---|
| list_relationships | Lists your relationships with frequency status. Optional filter by status (on track, falling behind, overdue). |
| get_relationship | Returns detailed information about one relationship, looked up by email or relationship ID. Includes personal details (with source meeting + extracted-at timestamp), tags, user notes, and meeting context. Supports filter / pagination on personal_details. |
| search_relationships | Searches across names, emails, tags, and personal details to find specific contacts. |
| get_relationship_insights | Returns a high-level summary of your relationship health and who needs outreach. |
| get_upcoming_meetings | Lists upcoming meetings with the relationship context for each attendee, including each attendee's relationship ID so your assistant can chain directly to get_relationship. |
| get_past_meetings | Lists meetings you attended in the last N days (default 7, max 30, optional email filter). Each meeting includes the Groupthink bot_id inline when a recording exists, so your assistant can chain into get_notes or get_transcript without you remembering an id. |
| upsert_relationship_note | Writes a free-form, user-authored note onto a relationship. Stored verbatim, distinct from auto-extracted personal_details. Supports upsert by source so re-pushing the same content doesn't duplicate. |
Revoking a Token
Open Settings, switch to the API Tokens tab, find the token you want to revoke, and click Revoke. Confirm the destructive action when prompted. Any client using the revoked token will immediately lose access.
Revoke any token you no longer recognize, or that you saved somewhere insecure.
Troubleshooting
"401 Unauthorized" or "Authentication required" Your token is missing, expired, or revoked. Mint a new one and update your client config.
"No relationships found" or empty responses You may not have relationships tracked yet. Relationships are built automatically from your meeting activity in Groupthink. Run a meeting or two first.
"No calendars connected"
The get_upcoming_meetings tool needs a connected calendar. Connect Google Calendar or Outlook in Groupthink first.
Claude Desktop says no MCP servers found, or the Groupthink tools don't show up
Make sure your claude_desktop_config.json is valid JSON and that you fully quit and relaunched Claude Desktop after editing it.
What's Next
- Manage your tokens at app.groupthink.com/settings#api-tokens. You can mint and revoke tokens from there at any time.
- More tools will land as Groupthink's relationship intelligence grows. If a tool is missing that would unlock a workflow for you, email support@groupthink.com.
Privacy & Scope
Tokens authenticate as your user account and have access to the same data you do in the Groupthink app, scoped to your relationships and your calendars. They do not grant access to other users' data.
Treat your tokens like passwords. Anyone with a token can read your relationship data through any MCP client.