MCP
Connect Codex, Cursor, Claude, and other coding assistants to Collabute context.
Use this guide to connect coding agents to Collabute via MCP.
Supported coding agents
Requirements
- You must belong to an active Collabute organization.
- Your role must be allowed to use the target integrations.
- At least one integration should be connected in Settings > Integrations.
- You need your MCP URL:
- production:
https://api.collabute.ai/api/mcp
Important auth note
Collabute MCP is OAuth-first. Do not configure static PAT headers for MCP clients.
When new scopes are introduced (for example meeting:read), you must re-run OAuth approval so your MCP client receives updated scopes.
Scopes
meeting:read: read recent meetings, meeting context, and transcript pagesmemory:read: read memory retrieval datalinear:read: read cached Linear task dataslack:read: read indexed Slack thread/message datavercel:read: read connected Vercel project/deployment datawrite:propose: create pending proposals (no direct third-party write)
Capability catalog (for AI agents)
Use this section as the runtime capability contract for Claude, Codex, Cursor, OpenCode, OpenClaw, and Amp. At runtime, tools/list is the source of truth for what the current token can access.
| Tool | Scope | Use when | Returns | | --- | --- | --- | --- | | system.ping | none | You need a quick connectivity/tenant check | server status, org/user context | | meeting.list_recent | meeting:read | You need deterministic recency discovery for meetings | recent meeting list with transcript/summary flags | | meeting.get | meeting:read | You need actionable meeting context | meeting metadata + summary + memory evidence + cited transcript snippets | | meeting.get_transcript | meeting:read | User explicitly asks for full transcript content | paginated transcript segments (offset, limit) | | memory.search | memory:read | You need org memory retrieval by query | ranked memory items, traces, diagnostics | | memory.get_bundle | memory:read | You need intent-shaped context bundle | structured context + prompt addendum | | linear.search_tasks | linear:read | You need task lookup in connected Linear data | matching tasks list | | linear.get_task | linear:read | You need one exact task by id/key | single task payload | | slack.search_threads | slack:read | You need Slack thread/message evidence | matching messages + thread identifiers | | slack.list_suggestions | slack:read | You need generated Slack suggestions | suggestion list and statuses | | vercel.list_projects | vercel:read | You need project inventory | connected Vercel projects | | vercel.list_deployments | vercel:read | You need deployment status/history | deployment list | | vercel.get_deployment | vercel:read | You need one deployment detail | single deployment metadata | | meeting.propose_task_from_meeting | write:propose | User asks to create a task from meeting evidence | pending proposal only | | memory.propose_write | write:propose | User asks to persist memory updates | pending proposal only | | integration.propose_action | write:propose | User asks for integration-side mutation | pending proposal only |
Tool selection rules (for external agents)
- Prefer deterministic retrieval tools before broad search.
- For meeting-task requests, use this strict order:
meeting.list_recent -> meeting.get -> meeting.propose_task_from_meeting.
- Do not call
meeting.get_transcriptunless user explicitly requests full transcript. - Use proposal tools for writes; do not assume direct mutation is available.
- If a tool is missing in
tools/list, the active OAuth token likely lacks that scope.
Prompt-to-tool playbooks
"Fetch my recent meetings and create a task out of it"
- Call
meeting.list_recent(pick top relevant meeting). - Call
meeting.getwith a focused query like"action items and owners". - Call
meeting.propose_task_from_meetingwithsourceSnippetIdsfrom returned snippets. - Tell the user task creation is pending approval (proposal flow).
"Show me the transcript for meeting X"
- Call
meeting.get_transcriptwithoffset: 0,limit: 200. - If
hasMore = true, continue paging withnextOffset.
"What changed in Linear/Slack/Vercel recently?"
- Use provider-specific read tool first:
linear.search_tasks, slack.search_threads, or vercel.list_deployments.
- Use
memory.searchonly when additional organizational context is needed.
Agent setup
Claude Code
- Add the server:
claude mcp add --transport http collabute https://api.collabute.ai/api/mcp- Start a Claude Code session and run:
/mcp- Complete the OAuth approval in browser.
- Verify:
claude mcp list
Codex
- Add the server:
codex mcp add collabute --url https://api.collabute.ai/api/mcp- Open Codex MCP management, then complete OAuth in browser when prompted.
- Verify:
codex mcp list
Cursor
- Open Cursor MCP settings and add a remote MCP server:
- name:
collabute - url:
https://api.collabute.ai/api/mcp
- Or add URL-based config:
{
"mcpServers": {
"collabute": {
"url": "https://api.collabute.ai/api/mcp"
}
}
}- Open a chat/tooling session and approve OAuth in browser.
OpenCode
- Add a remote MCP server (interactive):
opencode mcp addUse:
- name:
collabute - type/transport: remote HTTP
- url:
https://api.collabute.ai/api/mcp
- When OpenCode asks setup questions, use:
- Location:
Current project(or your preferred scope) - Enter MCP server name:
collabute - Select MCP server type:
Remote - Enter MCP server URL:
https://api.collabute.ai/api/mcp - Does this server require OAuth authentication?
Yes - Do you have a pre-registered client ID?
No(recommended)
- If your OpenCode build forces a client ID entry, use a stable value like:
opencode-collabute-localCollabute MCP supports OAuth public clients (token_endpoint_auth_method=none).
- Complete OAuth when prompted.
- If needed, trigger auth manually:
opencode mcp auth collabute- Verify:
opencode mcp list
OpenClaw
- Add Collabute MCP as a remote HTTP server:
mcporter config add --transport http collabute https://api.collabute.ai/api/mcp- Run OAuth login for the server:
mcporter config login collabute- Verify server and tool discovery:
mcporter list collabute --schemaDo not set a manual Authorization header for Collabute MCP. OpenClaw/mcporter should use the OAuth flow and token cache.
Amp
- Add the server URL in Amp MCP setup:
amp mcp add collabute https://api.collabute.ai/api/mcp- Complete OAuth in browser when prompted.
- Verify:
amp mcp listIf your Amp build does not yet support remote MCP OAuth, update Amp first. Collabute MCP does not accept static PAT-style header setup.
Optional: manual device flow (advanced)
Use this only for clients/environments that cannot open browser auth automatically.
- Start:
curl -sX POST https://api.collabute.ai/api/mcp/oauth/device/start \
-H "content-type: application/json" \
-d '{"clientName":"Collabute MCP Client"}'- Open
verification_uri_complete, sign in, and approve.
- Exchange:
curl -sX POST https://api.collabute.ai/api/mcp/oauth/token \
-H "content-type: application/json" \
-d '{"grant_type":"urn:ietf:params:oauth:grant-type:device_code","device_code":"<device_code>"}'- Refresh:
curl -sX POST https://api.collabute.ai/api/mcp/oauth/token \
-H "content-type: application/json" \
-d '{"grant_type":"refresh_token","refresh_token":"<refresh_token>"}'Verify installation
- Confirm
collabuteis connected in your agent’s MCP list. - Ask the agent to list tools from
collabute. - Run one read tool (for example
meeting.list_recent) and confirm org-scoped data is returned.
Recommended first checks
meeting.list_recentmeeting.getmemory.searchlinear.search_tasksslack.search_threadsvercel.list_deployments
Meeting-first workflow
For prompts like "fetch my recent meetings and create a task out of it", agents should use this sequence:
meeting.list_recentto identify candidate meetings.meeting.getto gather structured context plus cited snippets.meeting.propose_task_from_meetingto create a pending Linear proposal.
meeting.get returns hybrid evidence by default:
- ranked memory evidence
- cited transcript snippets
- no full transcript dump
If full transcript is explicitly required, use meeting.get_transcript (paginated with offset and limit).
When to use MCP
Use MCP when the request depends on organization context:
- Team decisions, meeting memory, and follow-up context.
- Live task/deployment/communication status.
- Time-sensitive status questions.
For generic coding questions without org context, MCP can be skipped.
Common issues
Unauthorized or forbidden
- OAuth approval was not completed.
- Access token is invalid, expired, or revoked.
- Your org role is restricted for one or more integration scopes.
- Your token is missing
meeting:readfor meeting tools. Re-run OAuth consent to grant the new scope.
Tool returns no data
- Integration is not connected.
- Query scope is too narrow or incorrect.
- No matching recent data exists.
Access denied in provider tools
- Confirm your org integration policy allows your role.
- Ask an admin/owner to update integration access settings.
Best practices
- Start with read-first retrieval before action requests.
- Use narrow prompts (team/project/channel/time window).
- Keep one MCP connection per person/account.
- Revoke access immediately when it is no longer needed.
