Browse the docs

Connect

MCP tools

Every tool the MCP server exposes, with its scope and inputs.

85 tools, read straight from the server’s registry. A token sees every tool, and may call the ones its scopes cover.

Work

  • projects_listreadprojects.read

    Products in the workspace, newest first, with id, slug, stage and one-line summary. Filter with `stage` or `query` (name/slug). Other tools accept a product's name or slug wherever they take `projectId`, so you rarely need the id. For one product in depth use projects_get.

    4 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
    • stagestring
    • querystring— Part of a name or slug.
  • work_list_issuesreadwork.read

    Issues across the workspace, newest first. Filter by product (`projectId`: id, slug or name), `status`, `assignee` (a person's name/email/id, or "me") or `query` (title text). Epics are containers and are included. For one issue in full use work_get_issue; for a product's progress use project_status; for what is yours today use attention_today.

    6 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
    • projectIdstring— Product id, slug or name.
    • statusstring
    • assigneestring— Person name, email or id; "me" for yourself.
    • querystring— Part of the title.
  • ideas_listreadideas.read

    The idea inbox, newest first, with each idea's id, status and one-line problem. Filter by `status`. Read one idea in full with `fetch` (id "idea:<id>").

    3 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
    • statusstring
  • prototypes_listreadprototypes.read

    The shelf: things being trialled before they earn a product. Each carries a goal, a status and the verdict of any trials run against it.

    3 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
    • statusstring
  • pages_listreadpages.read

    Pages in the workspace, newest first. Pages are rich documents — headings, lists, tables, callouts — and can hang off a product, an idea, a prototype, a person, an issue or a requirement.

    5 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
    • querystring
    • hoststring
    • hostIdstring
  • pages_getreadpages.read

    One page in full, with where it sits (parentId, subPages), what links to it (linkedFrom), whether it is locked and how many comment threads are open. Returns the editor's own block JSON by default, which is the same shape pages_create and pages_append accept — read a page before rewriting it. Ask for text instead if you only need to know what it says.

    2 inputs
    • pageIdstringrequired
    • formatstringrequired
  • fetchreadprojects.read

    Read something a search result pointed at, in full, as text. Takes the id from a `search` result — for example "page:ckx…". Pages come back as their whole text; use pages_get if you need the block JSON to edit.

    1 input
    • idstringrequired
  • calendar_listreadcalendar.read

    Meetings between two times for the token's owner, optionally overlaying teammates. Teammates' private meetings come back as busy blocks with no title. Ranges up to 62 days.

    3 inputs
    • fromstringrequired— ISO start
    • tostringrequired— ISO end
    • overlayMemberIdsarray
  • calendar_eventreadcalendar.read

    One meeting with guests, answers, links and notes — or only busy time, if the token's owner may not see it.

    2 inputs
    • eventIdstringrequired
    • occurrenceStartstring
  • calendar_peoplereadcalendar.read

    Teammates who can be invited or overlaid, with their time zones.

  • calendar_find_timereadcalendar.read

    Start times when the token's owner and every named teammate are within working hours and free. At most three weeks ahead per call.

    4 inputs
    • memberIdsarrayrequired
    • durationMinutesintegerrequired
    • fromstringrequired
    • tostringrequired
  • atrix_whoamireadprojects.read

    Start here. Says who this token acts as (name, role, workspace), which scopes it holds, which groups of tools are usable and which are not — with the exact scope or permission that would unlock each missing group — plus plan limits and how much of the rate limit is left this minute. Works for every token. Use it to explain a refusal instead of retrying it.

  • projects_getreadprojects.read

    Everything about one product in a single call: stage, summary, pitch, team, work counts by status, overdue items, the latest feed updates, and links. `projectId` may be the id, the slug ("atrix-calendar") or the name. Use project_status for a progress/blockers/workload read; use work_list_issues to list the work itself.

    1 input
    • projectIdstringrequired— Product id, slug or name.
  • work_get_issuereadwork.read

    One piece of work in full: detail, status, priority, dates, assignee, parent epic or children, the last comments and the status history. `issueId` may be the id or the issue's title (add `projectId` to narrow a title that appears in several products). Use work_list_issues to browse; use this once you know which one.

    2 inputs
    • issueIdstringrequired— Issue id, or its title (or part of it).
    • projectIdstring— Product id, slug or name; narrows a title match.
  • attention_todayreadwork.read

    The one call to open a day with: work of yours that is overdue or due this week, unread @mentions, products you are on that are drifting, what you are in the middle of, and today's meetings — all for the person behind this token. Each part appears only if the token may read it (work.read, feed.read, calendar.read) and the result lists what was left out. Same read model as the dashboard's "For you" and the phone's Today screen.

  • workspace_briefreadprojects.read

    How the workspace is doing, in one call: the latest written weekly brief (headline, momentum, what is slipping, what to watch, next steps) plus a live snapshot — products by stage, open and overdue work, ideas by status, open pipeline count. Money is never included (counts only). Never generates a new brief; briefs are written on Mondays.

  • project_statusreadwork.read

    A status read on one product: percent complete, work by status, what is overdue, what is stuck (in review or in progress for over a week, or urgent and unassigned), what is due in the next 7 days, what finished this week, each epic's progress, and who is carrying how much. `projectId` may be the id, slug or name. Use projects_get for identity/team/updates instead.

    1 input
    • projectIdstringrequired— Product id, slug or name.
  • ideas_createwriteideas.write

    Add an idea to the inbox. Capture is meant to be near-free — a title is enough, and the brief, evidence and decision trail are added later if it survives.

    2 inputs
    • titlestringrequired
    • notestring
  • ideas_updatewriteideas.write

    Change an idea's title, note or dials.

    3 inputs
    • ideaIdstringrequired
    • titlestring
    • notevalue
  • ideas_set_briefwriteideas.write

    Write one of an idea's brief fields: the problem, the riskiest assumption, or the cheapest test that would settle it.

    3 inputs
    • ideaIdstringrequired
    • fieldstringrequired
    • valuestringrequired
  • ideas_set_statuswriteideas.write

    Set an idea's status. Parking or killing one needs a reason — that reason becomes a permanent entry in the decision trail, so write it for somebody reading it in a year.

    3 inputs
    • ideaIdstringrequired
    • statusstringrequired
    • reasonstring
  • ideas_add_signalwriteideas.write

    Attach a piece of evidence for or against an idea — a conversation, a link, some data, an objection. Evidence is what an idea is judged on, so record what was actually observed rather than a conclusion drawn from it.

    7 inputs
    • ideaIdstringrequired
    • kindstringrequired
    • directionstringrequired
    • bodystringrequired
    • urlvalue
    • sourcevalue
    • occurredOnstring
  • ideas_promotewriteideas.write

    Turn an idea into a product. This counts against the workspace's product limit and cannot be undone from here. Returns the new product's link.

    2 inputs
    • ideaIdstringrequired
    • confirmbooleanrequired— Set only after the person has explicitly agreed to promote this idea. Do not set it on your own initiative.
  • work_create_issuewritework.write

    Create an issue in a product. `projectId` may be the product's id, slug or name; `parentId` (optional) an epic's id or title. Defaults: type TASK, status TODO, priority NORMAL. Dates are YYYY-MM-DD. Set `ifNotExists: true` when retrying or unsure whether it was already filed: an open issue in that product with the same title is returned instead of a duplicate. An EPIC is the founder's framing rather than an agent's, so this refuses to create one — open a STORY, TASK or BUG and set its parent instead. Returns { issueId, href }.

    8 inputs
    • projectIdstringrequired
    • titlestringrequired
    • dueDatevalue
    • prioritystring
    • typestring
    • statusstring
    • parentIdvalue
    • ifNotExistsboolean
  • work_update_issuewritework.write

    Change an issue's title and/or detail (use work_schedule_issue for priority and dates, work_set_issue_status for status, work_assign_issue for the assignee). `issueId` may be the id or the title. Only the fields you pass change.

    3 inputs
    • titlestring
    • detailvalue
    • issueIdstringrequired
  • work_set_issue_statuswritework.write

    Set an issue's status (BACKLOG, TODO, IN_PROGRESS, IN_REVIEW, DONE, CANCELLED). `issueId` may be the id or the title. Moving to DONE records who closed it, which is not the same as who it was assigned to. To move many at once use work_bulk_update.

    2 inputs
    • issueIdstringrequired
    • statusstringrequired
  • work_schedule_issuewritework.write

    Set an issue's start date, due date (YYYY-MM-DD; null clears) and/or priority (LOW, NORMAL, HIGH, URGENT). `issueId` may be the id or the title. A due date that passes is what the overdue sweep notices, so only set one somebody means to be held to.

    4 inputs
    • issueIdstringrequired
    • dueDatevalue
    • startDatevalue
    • prioritystring
  • pages_createwritepages.write

    Create a page and write its first draft. The body is the editor's own block JSON — a ProseMirror document, `{ type: "doc", content: [ ...blocks ] }`. Blocks: paragraph, heading (attrs.level 1-3), bulletList/orderedList holding listItem, taskList holding taskItem (attrs.checked), blockquote, codeBlock, horizontalRule, callout (attrs.tone "note", "warn" or "good"; holds one or more blocks), and table holding tableRow holding tableHeader/tableCell. Text marks: bold, italic, strike, code, underline, highlight, and link (attrs.href, http/https/mailto only). An unknown type is refused and named. An unknown attribute is dropped and reported back in warnings. Optionally attach the page to something by passing host and hostId.

    4 inputs
    • titlestringrequired
    • docobjectrequired
    • hoststring
    • hostIdstring
  • pages_appendwritepages.write

    Append blocks to the end of a page. This merges with anybody editing that page right now rather than overwriting them — their cursor does not move and their words are not touched — so prefer it over pages_replace for every addition. Pass `blocks` as an array of top-level blocks, not a whole document. Blocks: paragraph, heading (attrs.level 1-3), bulletList/orderedList holding listItem, taskList holding taskItem (attrs.checked), blockquote, codeBlock, horizontalRule, callout (attrs.tone "note", "warn" or "good"; holds one or more blocks), and table holding tableRow holding tableHeader/tableCell. Text marks: bold, italic, strike, code, underline, highlight, and link (attrs.href, http/https/mailto only). An unknown type is refused and named. An unknown attribute is dropped and reported back in warnings.

    2 inputs
    • pageIdstringrequired
    • blocksarrayrequired
  • pages_replacewritepages.write

    Replace everything on a page. This discards what is there, including anything somebody typed in the last few seconds. Read the page with pages_get first, and prefer pages_append unless a rewrite is what was asked for. The previous contents become a version that can be restored from the page's history. Blocks: paragraph, heading (attrs.level 1-3), bulletList/orderedList holding listItem, taskList holding taskItem (attrs.checked), blockquote, codeBlock, horizontalRule, callout (attrs.tone "note", "warn" or "good"; holds one or more blocks), and table holding tableRow holding tableHeader/tableCell. Text marks: bold, italic, strike, code, underline, highlight, and link (attrs.href, http/https/mailto only). An unknown type is refused and named. An unknown attribute is dropped and reported back in warnings.

    3 inputs
    • pageIdstringrequired
    • docobjectrequired
    • confirmbooleanrequired— Set only after the person has explicitly agreed to overwrite this page's existing contents. Do not set it on your own initiative.
  • calendar_createwritecalendar.write

    Create a meeting organized by the token's owner. Teammates by member id get it on their calendar and a notification; guests by email get an invitation. Repeat with a preset or an RRULE.

    21 inputs
    • titlestringrequired
    • descriptionvalue
    • locationvalue
    • meetingUrlvalue
    • meetingPlatformvalue
    • startsAtstringrequired
    • endsAtstringrequired
    • allDaybooleanrequired
    • timeZonestring
    • repeatstringrequired
    • rrulevalue
    • visibilitystringrequired
    • statusstringrequired
    • attendeeMemberIdsarrayrequired
    • guestEmailsarrayrequired
    • optionalMemberIdsarrayrequired
    • remindersarrayrequired
    • dealIdvalue
    • contactIdvalue
    • projectIdvalue
    • applicationIdvalue
  • calendar_updatewritecalendar.write

    Change a meeting the token's owner organizes. For a repeating meeting pass occurrenceStart and scope: this, following or all.

    24 inputs
    • titlestring
    • descriptionvalue
    • locationvalue
    • meetingUrlvalue
    • meetingPlatformvalue
    • startsAtstring
    • endsAtstring
    • allDayboolean
    • timeZonestring
    • repeatstring
    • rrulevalue
    • visibilitystring
    • statusstring
    • attendeeMemberIdsarray
    • guestEmailsarray
    • optionalMemberIdsarray
    • remindersarray
    • dealIdvalue
    • contactIdvalue
    • projectIdvalue
    • applicationIdvalue
    • eventIdstringrequired
    • occurrenceStartvalue
    • scopestringrequired
  • calendar_cancelwritecalendar.write

    Cancel a meeting the token's owner organizes; guests are told. For a repeating meeting pass occurrenceStart and scope.

    3 inputs
    • eventIdstringrequired
    • occurrenceStartstring
    • scopestring
  • calendar_respondwritecalendar.write

    Accept, decline or tentatively accept a meeting the token's owner is invited to.

    2 inputs
    • eventIdstringrequired
    • responsestringrequired
  • calendar_noteswritecalendar.write

    Create (or return) the notes page for a meeting the token's owner is on, prefilled with time, attendees and agenda.

    1 input
    • eventIdstringrequired
  • work_assign_issuewritework.write

    Put an issue on a person, hand it to the agent, or unassign it. `assignee` is a name, email or member id ("me" works), or "unassigned" / "agent". The new assignee is notified (and pushed to their phone) when it changes, so only assign when somebody means it. Putting work on someone else needs the account's work.assign permission.

    3 inputs
    • issueIdstringrequired— Issue id, or its title.
    • projectIdstring— Narrows a title match.
    • assigneestringrequired— A person (name, email or id; "me" for yourself), or "unassigned", or "agent".
  • work_comment_issuewritework.write

    Add a comment to an issue. Plain text. The assignee is notified, and so is anybody whose name appears after an @ in the body. `issueId` may be the id or the title. Comments cannot be edited or removed from here.

    3 inputs
    • issueIdstringrequired— Issue id, or its title.
    • projectIdstring— Narrows a title match.
    • bodystringrequired
  • work_bulk_updatewritework.write

    Apply one change (status, priority, due date and/or assignee) to up to 50 issues. Issues may be ids or titles. Use `dryRun: true` first to see exactly what would change without changing anything. A real run over more than 10 issues also needs `confirm: true`, because it can notify several people at once; set it only after the person agreed. Issues outside this workspace are ignored and never reported.

    8 inputs
    • issueIdsarrayrequired
    • projectIdstring— Narrows title matches.
    • statusstring
    • prioritystring
    • dueDatevalue— YYYY-MM-DD, or null to clear.
    • assigneestring— A person (name, email or id; "me" for yourself), or "unassigned", or "agent".
    • dryRunbooleanrequired
    • confirmboolean
  • time_list_minereadtime.read

    Your own running timer and your own time entries between two dates (default: the last 7 days, max 31). Only ever the token owner's time: never rates, costs or other people's entries.

    2 inputs
    • fromstring— YYYY-MM-DD
    • tostring— YYYY-MM-DD
  • time_start_timerwritetime.write

    Start your timer, optionally on a product and/or issue. A timer already running is stopped first and saved. Acts only on the token owner's own time.

    3 inputs
    • projectIdstring— Product id, slug or name.
    • issueIdstring— Issue id or title; its product is used.
    • notestring
  • time_stop_timerwritetime.write

    Stop your running timer and save it as a time entry (split at midnight in your timezone; workspace rounding applies). Errors if none is running. Acts only on the token owner's own time.

  • time_logwritetime.write

    Log time you already worked: a duration in minutes on a day (YYYY-MM-DD, not in the future), optionally from a start time (HH:MM, your timezone), on a product and/or issue. Refused if that week is submitted or approved. Acts only on the token owner's own time.

    6 inputs
    • datestringrequired— YYYY-MM-DD
    • minutesintegerrequired
    • startstring— HH:MM
    • projectIdstring— Product id, slug or name.
    • issueIdstring— Issue id or title; its product is used.
    • notestring
  • goals_listreadgoals.read

    Objectives (company, team, personal) whose period overlaps a window (default: the current quarter), with owner, status, rolled-up progress 0-100, key result count and whether a check-in is due. Only goals you may see: other people's private goals are never returned. Key results, check-in notes and deal amounts come from goals_get.

    4 inputs
    • fromstring— YYYY-MM-DD, window start (default: start of this quarter)
    • tostring— YYYY-MM-DD, window end (default: end of this quarter)
    • mineboolean— Only goals you own.
    • statusstring
  • goals_getreadgoals.read

    One goal you may see: description, key results with progress (current/target numbers; deal amounts are withheld, percentage only, unless you hold the deal value permission), recent check-ins with notes, the goals above and below it and linked products and issues. A private goal that is not yours is reported as not available.

    1 input
    • goalIdstringrequired
  • goals_check_inwritegoals.write

    Post a check-in on a goal as you: its status, a note and, optionally, new current values for its manual key results. Only the goal's owner (or a workspace admin) may; anyone else gets the app's own refusal. Key results fed by issues, deals or hiring cannot be set by hand. Does not create, edit or delete goals.

    4 inputs
    • goalIdstringrequired
    • statusstringrequired
    • notestringrequired
    • valuesarray— New current value per manual key result.
  • roadmap_listreadroadmap.read

    The roadmap: initiatives (status, dates, owner, linked product ids, issue counts done/total) and milestones (product, due date, status, owner). Optionally only those overlapping a date window or with one status. Read only; whether an item is shown on the public changelog page or to clients is not returned.

    3 inputs
    • fromstring— YYYY-MM-DD
    • tostring— YYYY-MM-DD
    • statusstring
  • changelog_listreadroadmap.read

    The workspace's changelog posts, newest edit first, with status (DRAFT, SCHEDULED, PUBLISHED), tags, product, scheduled and published times and whether subscribers were emailed. Read only: post bodies, subscribers and the public page settings are not returned, and nothing can be published, scheduled or emailed from here.

    2 inputs
    • statusstring
    • limitinteger— Default 50.
  • expenses_list_minereadexpenses.read

    Your own expense claims with status and totals, for expenses dated between two days (default: the last 30 days, max 92). Only ever the token owner's claims; no receipts, no one else's.

    2 inputs
    • fromstring— YYYY-MM-DD
    • tostring— YYYY-MM-DD
  • expenses_submitwriteexpenses.write

    Add an expense for yourself and send it for approval. Amount is in major units (12.50). Receipts cannot be attached over MCP: if the workspace requires one for this amount (see expenses_list_mine receiptRequiredAboveMinor) the expense is saved as a DRAFT with submitted=false, and you attach the receipt and send it in the app. If you already have an open draft in that currency with other expenses, it is added there and NOT sent, so you never send something unseen. Acts only on the token owner's own claims.

    6 inputs
    • datestringrequired— YYYY-MM-DD, the day you paid
    • amountnumberrequired— Major units, e.g. 12.50
    • currencystringrequired— Three-letter code, e.g. USD
    • categorystringrequired
    • merchantstringrequired
    • notestring
  • expenses_delete_draft_minewriteexpenses.write

    Delete one of your own DRAFT expense claims (and the expenses in it). Refuses anything already sent, approved or paid, and anyone else's. Cannot be undone.

    1 input
    • claimIdstringrequired

Customers

  • crm_list_dealsreadcrm.read

    Deals in the pipeline. Amounts are included only if this token holds the crm.value scope AND the account behind it may see deal values; otherwise every deal is returned with its amount omitted.

    3 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
    • stagestring
  • crm_create_companywritecrm.write

    Add a company we might sell to. Adding one that already exists at the same domain returns the existing record rather than making a duplicate.

    3 inputs
    • namestringrequired
    • websitevalue
    • notevalue
  • crm_create_contactwritecrm.write

    Add a person at a company. Contacts are customers, never teammates.

    6 inputs
    • namestringrequired
    • emailvalue
    • phonevalue
    • titlevalue
    • companyIdvalue
    • notevalue
  • crm_create_dealwritecrm.write

    Open an opportunity. Setting an amount needs the crm.value scope as well; without it the deal is created unpriced rather than refused, and the rest of what you gave is kept.

    11 inputs
    • titlestringrequired
    • stagestringrequired
    • amountvalue
    • currencystringrequired
    • expectedCloseOnvalue
    • companyIdvalue
    • contactIdvalue
    • ownerIdvalue
    • projectIdvalue
    • ideaIdvalue
    • prototypeIdvalue
  • crm_update_dealwritecrm.write

    Change a deal's title, close date or links. Without the crm.value scope the amount is left exactly as it was — it cannot be changed and, importantly, cannot be cleared by omitting it.

    12 inputs
    • titlestringrequired
    • stagestringrequired
    • amountvalue
    • currencystringrequired
    • expectedCloseOnvalue
    • companyIdvalue
    • contactIdvalue
    • ownerIdvalue
    • projectIdvalue
    • ideaIdvalue
    • prototypeIdvalue
    • dealIdstringrequired
  • crm_move_dealwritecrm.write

    Move a deal to another stage. Marking one lost needs a reason, and that reason is kept as a note on the deal — write it for somebody reading it next quarter.

    3 inputs
    • dealIdstringrequired
    • stagestringrequired
    • reasonvalue
  • crm_add_deal_notewritecrm.write

    Append a note. Notes are append-only — there is no way to edit or remove one.

    2 inputs
    • dealIdstringrequired
    • bodystringrequired
  • invoices_listreadinvoices.read

    Invoices and quotes, newest first, with number, customer, status, currency, totals and due date. Filter by kind, status, customer and issue-date range. Never payment links, bank details, tax ids or payment records. Needs the account to hold finance.manage.

    6 inputs
    • kindstring
    • statusstring
    • customerstring— Customer id, or part of its name.
    • fromstring— Issued on or after, YYYY-MM-DD.
    • tostring— Issued on or before, YYYY-MM-DD.
    • limitinteger— Default 50.
  • invoices_getreadinvoices.read

    One invoice or quote with line items and totals. Never the public link, payment trail, bank details, the client's email, address or tax id. Needs the account to hold finance.manage.

    1 input
    • idstringrequired
  • invoices_create_draftwriteinvoices.write

    Create a DRAFT invoice or quote for an existing customer with line items (amounts in minor units, e.g. cents). A draft has no number and is never sent: a person numbers and sends it from the app. Currency defaults to the customer's last one or the workspace default. Needs the account to hold finance.manage.

    9 inputs
    • kindstringrequired
    • customerstringrequired— Existing customer: id or exact name.
    • linesarrayrequired
    • currencystring
    • referencestring
    • dueDatestring— Invoices only.
    • validUntilstring— Quotes only.
    • notesstring
    • termsstring

People

  • workspace_overviewreadpeople.read

    The workspace in numbers: name, plan, people, products, open issues and the scopes this token holds. Needs people.read — atrix_whoami works for every token and also says which tools are usable and why not.

  • people_listreadpeople.read

    Who is in this workspace and what they do (id, name, title, focus, role). Working profile only — employment records, contact details and pay are not here. To look someone up by name, or see workload, use people_find.

    2 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
  • hiring_list_rolesreadhiring.read

    Roles this workspace is hiring for, with how many people have applied and how many sit at each stage (APPLIED, SCREENING, INTERVIEW, OFFER, HIRED, REJECTED, WITHDRAWN). Applications themselves are a candidate's personal data and are not returned here.

    3 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
    • statusstring
  • people_get_recordreadpeople.records

    One person's employment record — start date, engagement and terms. Not pay: pay has its own scope and is not reachable from here at all.

    1 input
    • memberIdstringrequired— Member id, or the person's name or email.
  • agreements_statusreadagreements.status

    The signing status of the team's agreements: whose paperwork, what kind, whether it is awaiting a signature, signed, expired or declined, and the dates. Never what an agreement says, the file, or a signing link. Only people whose records this account may see.

    3 inputs
    • statestring
    • memberIdstring— Member id, or the person's name or email.
    • limitintegerrequired
  • people_findreadpeople.read

    Find teammates by name, title or focus, with their open and overdue work. Use this to turn "Zara" into the member id other tools take — although most tools now accept the name directly. Omit `query` to list the whole team with workload. Returns the working profile only: no email, employment record or pay.

    3 inputs
    • querystring— A name, or part of one: "zara", "Sam K". "me" returns you.
    • limitintegerrequired
    • cursorstring— Pass next_cursor from the previous result to get the following page.
  • leave_balances_minereadleave.read

    Your own annual-leave balance for this year (entitled, carried in, used, pending, remaining), the leave types you can ask for, your own upcoming and pending requests, and who will be told about a new request. Only ever the token owner's own leave.

  • leave_out_todayreadleave.read

    Names of colleagues who are out of office today, as the app shows everyone. Names only: never the type of leave, a reason or the dates.

  • leave_requestwriteleave.write

    Ask for leave for yourself. Counts working days (weekends and your holiday calendar are skipped), checks your balance and clashes, then submits. Pass dryRun:true to only preview: days, holidays, remaining balance, whether approval is needed. Your approvers are notified exactly as when you ask in the app. Always preview first and confirm dates with the person. Acts only on the token owner's own leave.

    7 inputs
    • typestringrequired— Leave type key, e.g. ANNUAL, SICK, UNPAID, PARENTAL, OTHER (see leave_balances_mine).
    • startstringrequired
    • endstringrequired— YYYY-MM-DD, not before start
    • startHalfboolean— Start with a half day (afternoon only).
    • endHalfboolean— End with a half day (morning only).
    • reasonstring— Shown to you and your approvers only.
    • dryRunboolean— Preview without submitting.
  • leave_cancel_minewriteleave.write

    Cancel one of your own pending or approved leave requests (id from leave_balances_mine), while the app still allows it. Approvers are told as in the app. Cannot touch anyone else's request.

    1 input
    • idstringrequired
  • policies_list_minereadpolicies.read

    The workspace's published policies as every member sees them: title, version, the text, whether it applies to you, whether you have acknowledged the current version, and its due date. Only ever the token owner's own view: never who else acknowledged.

  • policies_acknowledgewritepolicies.write

    Acknowledge the current version of one policy as yourself, confirming you have read and understood it. Pass the slug and the version from policies_list_mine; refused if it does not apply to you, is retired, or the version has changed. Acts only as the token owner.

    4 inputs
    • slugstringrequired
    • versionintegerrequired— The version you read, from policies_list_mine.
    • understoodbooleanrequired— Must be true: you have read and understood it.
    • typedNamestring

Workspace

  • messages_list_conversationsreadmessages.read

    Channels and direct messages this account is already in. It cannot show a room it has not been added to, and it does not list the ones it cannot see.

    2 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
  • integrations_listreadintegrations.read

    Which repositories and services this workspace has connected, and whether each is still working. Credentials are never returned.

  • billing_overviewreadbilling.read

    The workspace's plan, what it includes, and how much of it is used this period.

  • feed_listreadfeed.read

    Recent updates in the workspace, newest first. Filter to one product (`projectId`: id, slug or name), idea or prototype to see the conversation on that thing rather than everything.

    5 inputs
    • limitintegerrequired— Page size, 1-100.
    • cursorstring— Pass next_cursor from the previous result to get the following page.
    • projectIdstring— Product id, slug or name.
    • ideaIdstring
    • prototypeIdstring
  • feed_post_updatewritefeed.post

    Write an update to the workspace feed, optionally about a product (`projectId`: id, slug or name), an idea or a prototype — it then appears on that thing's own page as well. The body is plain text: line breaks are kept, markdown is not, so asterisks show up as asterisks. Writing somebody's name in it notifies them and pushes to their phone, so only name a person when the update is genuinely for them — pass `dryRun: true` first to see exactly who would be notified.

    6 inputs
    • bodystringrequired
    • projectIdvalue
    • aboutIdeaIdvalue
    • aboutPrototypeIdvalue
    • dryRunboolean— Preview only: nothing is posted; returns who would be notified by name.
    • ifNotExistsboolean— Skip if you already posted this exact text in the last 10 minutes (safe retry).
  • feed_commentwritefeed.post

    Reply to a post. Plain text, same as an update. The post's author is notified, and so is anybody whose name appears in the body.

    2 inputs
    • postIdstringrequired
    • bodystringrequired
  • ask_workspacereadask.read

    Ask a question in plain language and get a cited answer drawn from the workspace's pages, docs, tasks, updates, ideas and (if enabled) messages that this token may read. Honors the workspace's Ask settings and the token owner's permissions, and uses the workspace's AI allowance, so prefer a specific list/get tool when you already know what you need. Returns the answer text with [n] markers and the sources they cite. One question per call; no conversation memory.

    1 input
    • questionstringrequired
  • pulse_reports_listreadpulse.read

    The workspace's scheduled Pulse agents you can see (your own, plus workspace agents if you are an owner or admin): name, schedule, enabled, last run time and status, next run. Read-only; prompts are not returned. Read a report with pulse_report_latest.

  • pulse_report_latestreadpulse.read

    The latest delivered report of one Pulse agent (by id or exact name), as the app shows it: run time, status and the report text. Preview runs are skipped. Never starts a run.

    1 input
    • agentstringrequired— Agent id or name, from pulse_reports_list.
  • automations_listreadpulse.read

    The workspace's automation rules: name, trigger, kinds of action, enabled, last run status and counts, and whether all automations are paused. Needs the settings permission, as the app does. Never returns filters, conditions, message bodies, webhook URLs or secrets, and never run summaries.

  • onboarding_checklist_minereadonboarding.read

    Your own onboarding checklist: each step with its owner (you, your manager or an admin), due date, done or overdue, plus progress. Only ever the token owner's own; nobody else's checklist, and no identity or bank details.