Connect Claude Code, Claude Desktop, or any MCP client to securely act on everything in CompanyOS — tasks, projects, meetings, notes, calendar, comments, teams, the org, activity, the brain, and AI agents — with OAuth 2.1, per-org or all-organization tokens, granular scopes, a Root/Admin switch, and full member parity across 130+ tools.
What the Company-Brain MCP is
The Company-Brain MCP is a first-party Model Context Protocol server built directly into the CompanyOS API. Connect an MCP client — Claude Code, Claude Desktop, or anything that speaks MCP — and it can read and write everything you can reach in CompanyOS: projects, tasks, boards, comments, notifications, meetings, notes, calendar, teams, the org and its members, activity, the knowledge brain, and the AI agents. Every tool call is scoped to one organization and runs with your permissions, so an agent can do exactly what you can do in the web app — nothing more.
Endpoint
https://api.company.chele.bi/api/v1/mcp — a single streamable-HTTP MCP endpoint. Authentication is OAuth 2.1; there is nothing to copy-paste, the client walks you through a browser consent the first time.
How access works
The MCP uses standard OAuth 2.1 so you never hand a client a raw API key. The first time a client connects it discovers the authorization server, registers itself, and opens a CompanyOS consent screen in your browser. You pick a workspace and approve a set of permissions; the client receives a token scoped to that org and those permissions.
PKCE (S256) on the authorization code flow — safe for public/native clients.
RFC 9728 protected-resource metadata — clients auto-discover the auth server from the MCP endpoint.
Per-organization or all-organization tokens — mint a token for one workspace, or choose *All my organizations* to receive a single cross-org token that works in every workspace you belong to.
`org_id` targeting — with an all-organization token, every tool accepts an optional org_id so the agent chooses which workspace a call lands in; a single-org token infers it automatically.
Granular scopes — you approve exactly which domains the agent may read and write.
The consent screen
When a client connects you land on the CompanyOS authorization page. Choose a single workspace, or pick All my organizations to authorize every workspace you belong to at once with one cross-org token, then tick the permissions. Read permissions for the core domains are pre-checked as a sensible baseline; write and elevated permissions are an explicit, deliberate opt-in. Approve to connect, or decline to cancel — either way you are returned to the client.
Root / Admin — full access
One switch for trusted agents
At the top of the consent screen is a Root / Admin toggle. Turn it on and every permission is selected and locked, granting the agent the complete tool surface on your behalf. Use it when you want an agent to act as a full operator of your workspace; leave it off and hand-pick scopes when you want to keep the agent narrow.
Install
Claude Code
Add the server, then run /mcp and complete the browser consent:
bash
claude mcp add --transport http companyos https://api.company.chele.bi/api/v1/mcp
# then, inside Claude Code:
/mcp # opens the CompanyOS consent screen in your browser
Claude Desktop and other clients
Point any MCP client at the endpoint. Clients that don't yet speak OAuth-protected HTTP natively can bridge through mcp-remote:
The first call triggers the OAuth flow and opens the consent screen in your browser. After you approve, the client stores the per-org token and reconnects automatically.
Permissions (scopes)
Scopes are grouped by domain, with a read tier, a write tier, and a few elevated tiers for sensitive admin actions. Approving a domain's read scope lets the agent see that data; the write scope lets it create, edit, and delete. Root/Admin grants all of them at once.
Domain
Scopes
Covers
Tasks
tasks:read, tasks:write
Tasks, boards, sub-tasks, relations, labels, triage, and projects
Notes
notes:read, notes:write
Notes and documents
Meetings
meetings:read, meetings:write
Meetings, transcripts, summaries, share links, templates and recipes
Calendar
events:read, events:write
Calendar events and briefs
Comments
comments:read, comments:write
Comments on tasks, notes and meetings
Notifications
notifications:read, notifications:write
Your notifications, read/archive/snooze
Teams
teams:read, teams:write
Teams and their members
Organization
org:read, org:manage, org:create (elevated)
Org details, members, roles, invites, and creating new organizations
All organizations
orgs:all (elevated)
Granted by the All my organizations consent option — one token that acts across every workspace you belong to
The MCP exposes the full member surface — every action a person can take in the web app, an agent can take through a tool. Tools are grouped below by domain. Creates accept an optional idempotency_key so a retried call never duplicates work, and destructive deletes take a confirm flag (call once to preview, again with confirm=true to apply).
Targeting an organization
Every tool accepts an optional org_id. With a single-organization token you can omit it — the call uses the token's workspace. With an All my organizations token, pass org_id to choose which workspace a call acts on.
Linking to tasks and notes
Embed a clickable reference to a task or note in any description or comment using a Markdown link of the form [label](/__mention/kind/id). See the References & Mentions page for the full format and examples.
Tasks and boards
Tool
What it does
list_project_tasks
List a project's tasks with board-style filters
get_task
Fetch one task with its identifier, counts and blocked state
create_task
Create a task (supports sub-tasks, bug kind, severity, mentions, relations)
update_task
Edit title, description, priority, assignee, due date, labels, kind, severity
transition_task_status
Move a task to a new workflow status
delete_task
Delete a task (confirm-gated)
create_tasks_batch
Create several tasks at once from a list of titles
get_task_board
Read the board grouped into status columns
list_my_tasks
Your assigned / created / subscribed / recent tasks
list_subtasks
List a task's sub-tasks
subscribe_task, unsubscribe_task
Follow or unfollow a task
list_task_relations
List blocking / blocked-by / related links
add_task_relation, remove_task_relation
Link or unlink two tasks
Labels (tags)
Tool
What it does
list_labels
List the org's task labels
create_label
Create a label (get-or-create, safe to retry)
attach_task_labels, detach_task_labels
Add or remove labels on a task
delete_label
Delete a label org-wide (confirm-gated)
Triage
Tool
What it does
list_triage
Incoming items awaiting routing
accept_triage_task, decline_triage_task
Accept or decline a triage item
Projects
Tool
What it does
list_projects, get_project, create_project
Browse and create projects
update_project
Edit name, description, status, team, lead, target date
Post a meeting to a Slack channel (elevated integrations:manage)
get_my_profile, update_my_profile
Read and update your own profile
Safety and conventions
Org-scoped — every token is pinned to one organization; tools only ever touch that workspace.
Scope-checked per call — a tool runs only if your token carries its scope, otherwise it returns insufficient_scope.
Idempotent creates — pass an idempotency_key and a retried create returns the original result instead of duplicating.
Confirm-gated deletes — destructive tools preview first and only act when called again with confirm=true.
Mirrors the app — every action is exactly what a member can do in the UI, and shows up in activity the same way.
New permissions need a fresh consent
If you connected before a new tool domain shipped, your existing token won't carry the new scopes. Re-run the client's connect flow (/mcp in Claude Code) and approve again — ticking Root/Admin grants the entire current surface in one step.