Atrix MCP

Your workspace, inside the assistant you already use

One URL connects Atrix to Claude, ChatGPT, Codex, Cursor and anything else that speaks MCP. 85 tools, six ready-made prompts and live resources across your products, work, ideas, pages, calendar and customers — and a credential that can never do more than the person who made it.

120
calls a minute
per token
30
writes a minute
counted separately
85
tools
46 read, 39 write
49
grantable scopes
10 asked for by name

Setup

Pick your client. It takes about a minute.

Every one of these signs you in through your browser, so no key is ever pasted into a config file. If you would rather hold a token yourself, each tab says how.

The terminal client. One command adds the server; the first tool call walks you through sign-in in a browser.

What you need: Nothing to paste. Step 2 signs you in and stores a scoped token for you — a bearer token is only for CI, and the note below says how.

  1. 1

    Add the server. No credential goes in this command.

    bash
    claude mcp add --transport http atrix https://atrix.dev/api/mcp
  2. 2

    Run /mcp inside Claude Code and choose Authenticate. A browser opens, you pick the workspace and the scopes, and the token is stored for you.

    text
    /mcp
  3. 3

    Check it took.

    bash
    claude mcp list

A first connection asks only to read (customers, products, work, ideas). Tools that change things are listed as needing additional approval; the first time one is called, Claude Code is told which scope is missing and re-opens the browser to approve exactly that. To widen or change a connection yourself, run /mcp, choose atrix, and Authenticate again. Prefer a token you control? Skip the browser entirely with --header "Authorization: Bearer atx_pat_…".

Two ways in, for two different situations

Sign in — for anything with a browser

Full OAuth 2.1: dynamic registration so there is no app to create, PKCE on every exchange, refresh tokens, and a consent screen that names the workspace and every scope before you approve it. Revoke it later without changing your password or disturbing anyone else.

RFC 6749 · 7591 · 7636 · 8252 · 8414 · 8707 · 9728 · 7009

An Atrix Token — for scripts, CI and servers

Mint one in settings, tick the scopes, choose 30 days, 90 days, a year or no expiry. It is shown once. It begins atx_pat_ so a leaked one is recognisable in a log or a gist at a glance, and it is stored hashed — we cannot show it to you again, only replace it.

Create one

Scopes

Nineteen things you can grant, and nothing implied

No scope quietly includes another. Reading customers does not let you see what a deal is worth; managing the team does not let you read employment records. If it is not ticked, it is not granted.

Read

  • projects.readRead products
  • work.readRead work
  • ideas.readRead ideas
  • prototypes.readRead prototypes
  • pages.readRead pages
  • feed.readRead the feed
  • messages.readRead messages
  • people.readRead the team
  • crm.readRead customers
  • time.readRead your own time
  • goals.readRead goals
  • roadmap.readRead the roadmap and changelog
  • pulse.readRead Pulse reports and automations
  • expenses.readRead your own expenses
  • leave.readRead your own leave
  • policies.readRead your policies
  • ask.readAsk questions of the workspace
  • entities.readRead legal entities
  • onboarding.readRead your onboarding checklist

Write

A write scope never implies its read scope, and no scope implies another.

  • ideas.writeChange ideas
  • work.writeChange work
  • pages.writeChange pages
  • crm.writeChange customers
  • time.writeTrack your own time
  • goals.writeCheck in on goals
  • expenses.writeFile your own expenses
  • leave.writeRequest your own leave
  • policies.writeAcknowledge your policies
  • onboarding.writeTick your own onboarding steps (REST only, the phone app)

Asked for by name

These are never bundled and never implied. Each one is a separate decision on the consent screen, because each reaches something a colleague would mind.

  • crm.valueSee deal valuesalso needs the “See deal values” permission
  • people.recordsSee employment recordsalso needs the “See employment records” permission
  • agreements.statusSee who has signedalso needs the “See employment records” permission
  • agreements.signSign your own documents
  • feed.postPost updates
  • hiring.readRead hiringalso needs the “Run hiring” permission
  • integrations.readRead integrationsalso needs the “Manage integrations” permission
  • billing.readRead billingalso needs the “Manage billing” permission
  • invoices.readSee invoices and quotesalso needs the “Manage invoices and quotes” permission
  • invoices.writeDraft invoices and quotesalso needs the “Manage invoices and quotes” permission
  • letters.readRead your own letters and certificates (REST only, the phone app)
  • letters.writeRequest your own letters and certificates (REST only, the phone app)
  • agent.useUse the Atrix Agent (the Atrix app's own sign-in only; it cannot be minted or consented to here)
  • leave.approveDecide your team's leave (the Atrix app's own sign-in only; it cannot be minted or consented to here, and no agent holds it)
  • expenses.approveDecide your team's expenses (the Atrix app's own sign-in only; never marks as paid)
  • letters.manageDecide letter requests and sign them for the company (the Atrix app's own sign-in only; letters that state pay stay on the web)also needs the “Edit employment records” permission

What a token cannot do

The interesting half of an integration like this is not the tool list. It is what happens when the model is wrong, the id is somebody else’s, or the person who minted the key has since changed jobs.

A token can never do more than you can

Scopes narrow; they never widen. The permissions you hold in the workspace are intersected with the scopes on the token, and the result is what the tools see. Grant crm.write to somebody who cannot edit customers and it grants nothing at all — there is no combination of scopes that adds an ability you do not already have.

One workspace, fixed at the token

The workspace is closed over by the credential, not passed as an argument. No tool accepts an organisation id, and every query is scoped in the same statement that fetches — so an id from another workspace matches zero rows rather than matching and being caught afterwards.

Every call is written down

Each call records the tool, the outcome, and what it acted on as a kind and an id — never the contents, and never the caller's IP. You can read the trail, and revoke any token, from workspace settings.

Refusals are sentences

A tool your token cannot call is not offered, and calling it by name anyway returns why in a line a model can act on — not an opaque error it will retry forever.

The surface

85 tools, plus prompts and resources

Your client only ever sees the ones your token can call, so a model is not tempted by a tool it will be refused. Anywhere a tool takes a product, person or issue, a name works as well as an id; list tools page with a cursor; and atrix_whoami tells a model exactly which scope would unlock what it is missing.

Start here

3 tools

atrix_whoami · attention_today · workspace_brief

Find things

2 tools

search · fetch

Products & work

12 tools

projects_list · projects_get · project_status · work_list_issues · work_get_issue · work_create_issue · work_update_issue · work_set_issue_status · work_schedule_issue · work_assign_issue · work_comment_issue · work_bulk_update

Ideas

7 tools

ideas_list · ideas_create · ideas_update · ideas_set_brief · ideas_set_status · ideas_add_signal · ideas_promote

Pages

5 tools

pages_list · pages_get · pages_create · pages_append · pages_replace

Customers

7 tools

crm_list_deals · crm_create_company · crm_create_contact · crm_create_deal · crm_update_deal · crm_move_deal · crm_add_deal_note

Invoices & quotes

3 tools

invoices_list · invoices_get · invoices_create_draft

The feed

3 tools

feed_list · feed_post_update · feed_comment

Calendar

9 tools

calendar_list · calendar_event · calendar_people · calendar_find_time · calendar_create · calendar_update · calendar_cancel · calendar_respond · calendar_notes

Your time

4 tools

time_list_mine · time_start_timer · time_stop_timer · time_log

Your leave

4 tools

leave_balances_mine · leave_out_today · leave_request · leave_cancel_mine

Your policies

2 tools

policies_list_mine · policies_acknowledge

Your expenses

3 tools

expenses_list_mine · expenses_submit · expenses_delete_draft_mine

Goals, roadmap & changelog

5 tools

goals_list · goals_get · goals_check_in · roadmap_list · changelog_list

Entities & onboarding

2 tools

legal_entities_list · onboarding_checklist_mine

Pulse & automations

3 tools

pulse_reports_list · pulse_report_latest · automations_list

Ask Atrix

1 tool

ask_workspace

People & the workspace

10 tools

workspace_overview · people_list · people_find · people_get_record · prototypes_list · messages_list_conversations · hiring_list_roles · integrations_list · billing_overview · agreements_status

Prompts

6 prompts

plan_my_day · weekly_review · triage_inbox · project_status_report · prep_for_meeting · draft_update_post

Resources

3 resources

atrix://workspace/overview · atrix://me/attention · atrix://project/{slug}

Questions people actually ask

Do I need to create an OAuth app or client ID?+

No. Atrix supports dynamic client registration, so Claude, ChatGPT and Codex register themselves the first time they connect. There is nothing to create in advance and no client secret to store anywhere.

When should I use an Atrix Token instead of signing in?+

Use OAuth for anything with a browser — it is the safer path, and the token is scoped, refreshable and revocable without touching your password. Use an Atrix Token for scripts, CI and servers, where nobody is present to approve a consent screen. Tokens start with atx_pat_ so a leaked one is recognisable on sight, and you choose 30 days, 90 days, a year, or no expiry.

Can a token read salaries?+

No. Pay is deliberately outside what any token can be granted: it is not in the list of grantable scopes, and no tool selects a compensation record. Employment records are reachable only with the people.records scope, only by somebody whose own permissions allow it, and only for people they outrank.

What happens if somebody's permissions change after I mint a token?+

The token follows them. Permissions are resolved per call rather than frozen at mint time, so revoking somebody's access to customers immediately stops every token they created from reading customers — you do not have to hunt the tokens down.

Does an agent editing a page interrupt someone typing in it?+

No. Pages are collaborative documents, and an appended block merges into the live document the way another person's typing would. Their cursor does not move, their undo history survives, and nothing either of you wrote is lost.

Which MCP clients are supported?+

Any client that speaks Streamable HTTP, which is all of the current ones. Atrix implements the discovery documents defined by RFC 9728 and RFC 8414, so a well-behaved client finds the authorization server on its own from a single URL.

Point your assistant at it

Start read-only if you like — grant the reads, see what your assistant does with them, and widen it later. Scopes are changed by minting a new token, and revoking is instant.