AcahtiUse Acahti
MCP tools
Every tool on an Acahti instance's MCP endpoint, with its arguments. The same routes exist under /acahti/v1 for the product surface.
Each instance serves Streamable HTTP MCP at <instance>/mcp, authorized by an OAuth access token or a personal Access Token. Codex/ChatGPT plugins use OAuth discovery and PKCE; Benchyard shell agents use a personal token directly. Both resolve to the same account permissions. On connect, the server's instructions point the agent at the product skill. Clients should discover tools each session rather than trusting a cached list.
Every tool is also a REST endpoint under <instance>/acahti/v1. Path segments fill the matching arguments; the rest go in the query string or a JSON body. Required arguments are in bold. The CLI exposes named commands for the shell delivery loop; agents use MCP for the full catalog.
Work permissions and files#
Work operations need an authenticated instance account. Web sessions, personal Tokens and OAuth call the same service. Work is instance-wide shared collaboration, independent of the selected Git organization and repository ACLs. Personal list views are filters. Actor fields come from authentication and cannot be supplied in request bodies.
Work schemas reject unknown fields and invalid IDs. PATCH preserves omitted fields; explicit empty text clears it. Lists use stable ordering and database pagination. Archived tickets reject comments and updates. Failed reads of comments or attachment metadata fail the whole detail request.
In addition to the tool routes below, binary transport uses POST /work/attachments/{type}/{id} (multipart file, owner type todo or document), GET /work/attachments/{id}/content, and GET /work/attachments/{id}/preview (PDF preview: native PDF or Office converted through Gotenberg). Ticket comments accept JSON body or multipart body and repeated file fields (up to nine, 200 MiB each). Content and preview URLs require authentication and never include credentials; the only unauthenticated reads are external share links under /ui/share/{token}. Missing records return 404, bad inputs 400, archived mutations 409, and an unavailable Work database, storage, conversion or Aidy model 503.
Argos runs and files#
Every signed-in member reads Argos. After creation a registered case source or plan changes only by its owner, creator or an org admin: argos_test_save needs expected_sha256 from a fresh read, argos_plan_save the current revision. The Argos CLI streams runs over REST only, as the runner's own identity: POST /argos/runs (returns sid and url), POST /argos/runs/{sid}/events, POST /argos/runs/{sid}/finish and PUT /argos/runs/{sid}/files/{path} (up to 1 MiB). Only the run's runner or an org admin writes a run. GET /argos/runs/{sid}/files lists its files and GET /argos/runs/{sid}/files/{path} returns one as inert text. See Argos.
Tools#
plugin_document#
Read verified documentation for an accessible active plugin.
- Arguments:
idsection - REST:
GET /plugins/{id}/docs/{section}
plugin_list#
List verified plugin releases and actual installation states. Org admin only.
- REST:
GET /plugins
plugin_get#
Read a plugin installation state. Org admin only.
- Arguments:
id - REST:
GET /plugins/{id}
plugin_operate#
Install, upgrade, enable, disable or uninstall a verified plugin with revision concurrency control. Org admin only.
- Arguments:
actionidrevisionversion - REST:
POST /plugins/{id}/operations
plugin_retry#
Retry an interrupted plugin operation using its current revision. Org admin only.
- Arguments:
idoperationrevision - REST:
POST /plugins/{id}/retry
repo_list#
List repositories the token can see.
- Arguments:
pagepage_size - REST:
GET /repos
repo_get#
Get one repository.
- Arguments:
nameowner - REST:
GET /repos/{owner}/{name}
repo_create#
Create a private org repo. Optional team attaches access. Does not set branch protection.
- Arguments:
nameteam - REST:
POST /repos
repo_rename#
Rename a repo. Repo admin. Moves team access, collaborators, pipeline history, and CI. Clones must git remote set-url.
- Arguments:
namenew_nameowner - REST:
PATCH /repos/{owner}/{name}
repo_team_set#
Move a repo to another team. Org admin. The new team's members get access if the old team's grant was on.
- Arguments:
nameownerteam - REST:
PUT /repos/{owner}/{name}/team/{team}
repo_archive#
Archive a repo (read-only, hidden from members, skipped by CI) or unarchive it with archived false. Org admin.
- Arguments:
archivednameowner - REST:
PUT /repos/{owner}/{name}/archived
repo_delete#
Delete a repo: its git repository, index, team grants, collaborators, and pipeline history. Org admin. Irreversible.
- Arguments:
nameowner - REST:
DELETE /repos/{owner}/{name}
branch_list#
List branches with default and protected flags from repo settings.
- Arguments:
nameownerpagepage_size - REST:
GET /repos/{owner}/{name}/branches
ref_delete#
Delete a git ref. ref is dev, heads/dev, or refs/heads/dev.
- Arguments:
nameownerref - REST:
DELETE /repos/{owner}/{name}/refs/{ref...}
pr_create#
Open a pull request. base defaults to the repo default_branch.
- Arguments:
headnameownertitlebasebody - REST:
POST /repos/{owner}/{name}/pulls
pr_list#
List pull requests.
- Arguments:
nameownerpagepage_sizestate - REST:
GET /repos/{owner}/{name}/pulls
pr_get#
Get a pull request with latest commit checks per context.
- Arguments:
namenumberowner - REST:
GET /repos/{owner}/{name}/pulls/{pr}
pr_comment#
Comment on a pull request.
- Arguments:
bodynamenumberowner - REST:
POST /repos/{owner}/{name}/pulls/{pr}/comments
pr_comments#
List pull request comments.
- Arguments:
namenumberownerpagepage_size - REST:
GET /repos/{owner}/{name}/pulls/{pr}/comments
pr_merge#
Merge a PR when the latest pipeline round on the head SHA is green.
- Arguments:
namenumberowner - REST:
POST /repos/{owner}/{name}/pulls/{pr}/merge
pr_close#
Close a pull request.
- Arguments:
namenumberowner - REST:
DELETE /repos/{owner}/{name}/pulls/{pr}
checks_wait#
Snapshot of indexed pipelines for a commit. Poll this tool; it does not block.
- Arguments:
nameownersha - REST:
GET /repos/{owner}/{name}/checks/{sha}
pipeline_list#
List pipelines for a repo with wait (queue, deps, concurrency) on in-flight runs. sha is a commit prefix.
- Arguments:
repobranchpagepage_sizeshastatus - REST:
GET /repos/{owner}/{name}/pipelines
pipeline_get#
Get one pipeline with jobs, steps, and wait (queue, deps, concurrency).
- Arguments:
numberrepo - REST:
GET /repos/{owner}/{name}/pipelines/{run}
pipeline_log#
Fetch pipeline logs. Omit step for failed steps only.
- Arguments:
numberreposteptail_lines - REST:
GET /repos/{owner}/{name}/pipelines/{run}/log
pipeline_rerun#
Rerun a pipeline. Needs push access.
- Arguments:
numberrepo - REST:
POST /repos/{owner}/{name}/pipelines/{run}/rerun
pipeline_trigger#
Manual run on a ref, the default branch when ref is empty. Needs push access. Official release is still git push.
- Arguments:
reporef - REST:
POST /repos/{owner}/{name}/pipelines
pipeline_cancel#
Cancel a running or queued pipeline. Needs push access.
- Arguments:
numberrepo - REST:
POST /repos/{owner}/{name}/pipelines/{run}/cancel
pipeline_delete#
Delete a finished pipeline run. Needs push access.
- Arguments:
numberrepo - REST:
DELETE /repos/{owner}/{name}/pipelines/{run}
inbox#
Inbox across repositories. pipes: latest failed or blocked run per repo. prs: open PRs whose head SHA latest pipeline is success (ready to merge).
- Arguments:
pagepage_sizesection - REST:
GET /inbox
pkg_publish#
Publish a language package (pypi wheel URL or npm tarball URL).
- Arguments:
kindurlfilename - REST:
POST /packages
pkg_list#
List language packages.
- Arguments:
kindownerpagepage_size - REST:
GET /packages
pkg_delete#
Delete a language package version. Org admin. Omit version to delete every version of that name.
- Arguments:
kindnameownerversion - REST:
DELETE /packages
whoami#
Acahti git identity: git_name, git_email, clone_url_template, skill_url, apply_when_remote_host, setup_local, org_admin and installed plugins.
- REST:
GET /me
agent_status#
Host runners plus queue stats counted per pipeline (running / queued).
- Arguments:
pagepage_size - REST:
GET /agents
deploy_approve#
Approve a gated deploy pipeline. Needs push access.
- Arguments:
numberrepo - REST:
POST /repos/{owner}/{name}/pipelines/{run}/approve
secret_list#
List pipeline secret names (never values). scope org is org admins. scope repo is the effective set (org inherited plus repo) for repo admins. repo or owner+name for repo scope.
- Arguments:
nameownerpagepage_sizereposcope - REST:
GET /repos/{owner}/{name}/secrets,GET /secrets
secret_put#
Create or replace a pipeline secret. Does not echo value. org scope needs org admin. repo scope needs repo admin. name is the secret.
- Arguments:
valuenameownerreposcopesecret - REST:
PUT /repos/{owner}/{name}/secrets/{secret},PUT /secrets/{secret}
secret_delete#
Delete a pipeline secret. org scope needs org admin. repo scope needs repo admin and only deletes the repo override.
- Arguments:
nameownerreposcopesecret - REST:
DELETE /repos/{owner}/{name}/secrets/{secret},DELETE /secrets/{secret}
user_list#
List people by login and display name. q matches either. Does not return email.
- Arguments:
pagepage_sizeq - REST:
GET /users
user_create#
Create an org member. Org admin. author is the git display name. Returns a one-time password; do not put it in skill.md or chat logs.
- Arguments:
loginadminauthoremail - REST:
POST /users
user_update#
Update git author (full_name), email and/or org admin. Org admin for author and admin; self or admin for email. admin cannot change your own account or the gateway service account.
- Arguments:
loginadminauthoremail - REST:
PATCH /users/{login}
user_permissions#
Get creation permissions. Self or org admin.
- Arguments:
login - REST:
GET /users/{login}/permissions
user_permissions_set#
Set team and repository creation permissions. Org admin only.
- Arguments:
can_create_repocan_create_teamlogin - REST:
PUT /users/{login}/permissions
team_create#
Create a team and become its admin. Requires can_create_team.
- Arguments:
team - REST:
POST /teams
team_list#
List teams the caller can see, with repo counts.
- Arguments:
pagepage_size - REST:
GET /teams
team_get#
Team members and repositories. A member's permission applies to every repo in the team.
- Arguments:
team - REST:
GET /teams/{team}
team_delete#
Delete a team. Team admin or org admin. Removes membership and team repo grants.
- Arguments:
team - REST:
DELETE /teams/{team}
team_member_set#
Add or update a team member. Team admin or org admin. permission is read, write, or admin; omit for write. The grant covers every repository in the team.
- Arguments:
loginteampermission - REST:
PUT /teams/{team}/members/{login}
team_member_remove#
Remove a person from a team. Team admin or org admin.
- Arguments:
loginteam - REST:
DELETE /teams/{team}/members/{login}
repo_access#
List one repository's inherited team members and direct collaborators.
- Arguments:
nameowner - REST:
GET /repos/{owner}/{name}/access
collaborator_set#
Grant one person access to one repository. Repo admin. permission is read, write, or admin; omit for write. Does not add them to the team.
- Arguments:
loginnameownerpermission - REST:
PUT /repos/{owner}/{name}/collaborators/{login}
collaborator_remove#
Remove a direct collaborator from one repository. Repo admin. Does not change team membership.
- Arguments:
loginnameowner - REST:
DELETE /repos/{owner}/{name}/collaborators/{login}
project_list#
List Work projects in display order with member logins, repository count, open todos and the current iteration (active, else blocked, else planned) with its done/total todos.
- REST:
GET /work/projects
project_reorder#
Set the display order of projects; work managers only. Listed ids come first in order, others keep their relative order after them.
- Arguments:
ids - REST:
POST /work/projects/order
project_get#
Read a project with members, repositories and whether the caller can edit it.
- Arguments:
id - REST:
GET /work/projects/{id}
project_create#
Create a project container for people, agents and repositories.
- Arguments:
eniddescriptionkindmembersowner_loginreposstatuszh - REST:
POST /work/projects
project_update#
Update a project using its current revision; stale edits conflict.
- Arguments:
idrevisiondescriptionenkindmembersowner_loginreposstatuszh - REST:
PATCH /work/projects/{id}
project_members_set#
Replace project members (humans and agents).
- Arguments:
idmembers - REST:
PUT /work/projects/{id}/members
project_repos_set#
Replace repositories bound to a project.
- Arguments:
idrepos - REST:
PUT /work/projects/{id}/repos
project_context#
Agent briefing: project, open tasks, decisions and related open iterations.
- Arguments:
id - REST:
GET /work/projects/{id}/context
agent_run_list#
List agent runs for a project.
- Arguments:
page_sizeproject_id - REST:
GET /work/agent-runs
agent_run_get#
Read an agent run and its activity events.
- Arguments:
id - REST:
GET /work/agent-runs/{id}
agent_run_create#
Start an agent run for a project task or ticket.
- Arguments:
agent_loginproject_idevidencestatussummaryticket_idtodo_idtrigger - REST:
POST /work/agent-runs
agent_run_update#
Update agent run status, summary or evidence.
- Arguments:
idevidencestatussummary - REST:
PATCH /work/agent-runs/{id}
agent_run_event#
Append a thought, progress or comment to an agent run.
- Arguments:
bodyidkind - REST:
POST /work/agent-runs/{id}/events
decision_list#
List non-superseded decisions for a project.
- Arguments:
project_idpage_size - REST:
GET /work/decisions
decision_create#
Record a project decision; optional supersedes_id marks the prior decision superseded.
- Arguments:
project_idtitlebodystatussupersedes_id - REST:
POST /work/decisions
decision_update#
Update a decision title, body or status.
- Arguments:
idbodystatustitle - REST:
PATCH /work/decisions/{id}
planning_move_todos#
Atomically move same-project todos to one open iteration; revisions and idempotency required. Todos joining an iteration that has started are out of plan; reason says why.
- Arguments:
itemsiteration_idrequest_keyreason - REST:
POST /work/planning/move-todos
planning_todo_links#
Add and remove todo relationships without replacing others: ticket or document by to_id; pull or pipeline by to_key owner/repo#n; argos by run sid. The caller must be able to read a linked repository or run.
- Arguments:
idrevisionaddremove - REST:
POST /work/planning/todos/{id}/links
planning_todo_time#
Read all authors and dates of a todo's time entries, with full totals and pagination.
- Arguments:
idpagepage_size - REST:
GET /work/planning/todos/{id}/time
planning_progress#
Read exact full-dataset status distribution and overdue count for a project or iteration.
- Arguments:
projectiteration_id - REST:
GET /work/planning/progress
planning_brief#
Measured state of a project, or of one of its iterations (default: the current one), for status updates and planning: status counts; the project's latest deliveries and history (such as deleted iterations); risks (overdue, blocked, due day pushed later twice or more); this week's completions and logged time; each assignee's open todos, estimated minutes and capacity left before the iteration's due day; unestimated todos and done todos with no time; and for an iteration its scope against the baseline it started with, every change since, and a daily burndown. Use it to write a project or iteration update.
- Arguments:
projectiteration_id - REST:
GET /work/planning/brief
delivery_submit#
Allocate a project-wide X.Y.Z with immutable changelog, the iteration's todos it delivers (at least one) and repository coordinates, then publish tags through repository pipelines. Draft todo_ids and changelog with delivery_draft.
- Arguments:
changelogiteration_idrepositoriesrequest_keysummarytodo_ids - REST:
POST /work/deliveries
delivery_draft#
Draft a delivery for an iteration: its todos (done first, marking those an earlier delivery carried) and a changelog listing the chosen todo_ids, by default the done todos not yet delivered.
- Arguments:
iteration_idtodo_ids - REST:
GET /work/deliveries/draft
delivery_list#
List an iteration's delivery versions, changelogs and delivered todos.
- Arguments:
iteration_idpagepage_size - REST:
GET /work/deliveries
delivery_get#
Read immutable release coordinates, dispatch history and observed pipeline results.
- Arguments:
id - REST:
GET /work/deliveries/{id}
delivery_retry#
Resume tag dispatch for the same immutable delivery; never allocate another version.
- Arguments:
id - REST:
POST /work/deliveries/{id}/retry
planning_run_step#
Create or update a structured execution step with optimistic concurrency.
- Arguments:
idstep - REST:
PUT /work/planning/runs/{id}/step
planning_run_steps#
Read structured execution steps and dependencies.
- Arguments:
id - REST:
GET /work/planning/runs/{id}/steps
iteration_list#
List release history and roadmap for product or ops projects; state is one status or current (planned, active or blocked).
- Arguments:
pagepage_sizeproject_idstate - REST:
GET /work/iterations
iteration_get#
Read a project iteration and its audit history.
- Arguments:
id - REST:
GET /work/iterations/{id}
iteration_create#
Plan a release on a product or ops project with repository versions and linked work.
- Arguments:
ownerproject_idtitleversiondescriptiondue_atkindlinksparticipantsstart_atstatus - REST:
POST /work/iterations
iteration_update#
Update a project iteration using its current revision; stale edits conflict. The first change to active records its todos as the scope baseline. Release or cancel with iteration_close.
- Arguments:
idrevisiondescriptiondue_atkindlinksownerparticipantsproject_idstart_atstatustitleversion - REST:
PATCH /work/iterations/{id}
iteration_close#
Release or cancel an iteration at its current revision. Every unfinished todo in it (requirement, todo, in_progress, blocked) needs one carry: move to another open iteration of the project, unplan, or keep in this iteration with a reason; list them with todo_list iteration_id and state. The carries and the status change commit together.
- Arguments:
idrequest_keyrevisionstatuscarry - REST:
POST /work/iterations/{id}/close
iteration_delete#
Delete a cancelled iteration without deliveries using its current revision; its todos stay in the project, unplanned, and the project's history records the deletion. Project owners, members and Work managers may delete.
- Arguments:
idrevision - REST:
DELETE /work/iterations/{id}
search#
Search shared knowledge, tickets, todos and product iterations with source links; optional assignee, state and scope filters refine ticket and todo hits.
- Arguments:
assigneepagepage_sizeqscopestatetype - REST:
GET /work/search
knowledge_backlinks#
Find knowledge articles linking to this document.
- Arguments:
id - REST:
GET /work/knowledge/{id}/backlinks
knowledge_history#
Read immutable document revisions, newest first.
- Arguments:
idpagepage_size - REST:
GET /work/knowledge/{id}/history
knowledge_restore#
Restore a document revision as a new revision.
- Arguments:
idrevision - REST:
POST /work/knowledge/{id}/restore
knowledge_save_chat_file#
Save a file from a conversation the caller belongs to into the knowledge base without copying it; returns the existing document when the same file is already there.
- Arguments:
idfolder_idtitle - REST:
POST /work/chat-files/{id}/knowledge
knowledge_share_links#
List external links to a document, or every link for Work managers when document_id is omitted.
- Arguments:
document_id - REST:
GET /work/share-links
knowledge_share_link_create#
Create an external read-only link to a document. Expires after expires_in_days (default 7, 0 never); an optional password and allow_download control access. The URL is returned only once.
- Arguments:
document_idallow_downloadexpires_in_dayspassword - REST:
POST /work/share-links
knowledge_share_link_revoke#
Revoke an external link; its creator, people who manage the document's access and Work managers may revoke.
- Arguments:
id - REST:
DELETE /work/share-links/{id}
knowledge_sharing#
Read whether external links are enabled on this instance.
- REST:
GET /work/sharing
knowledge_sharing_configure#
Turn external links on or off for the instance; off makes every existing link unavailable. Administrators only.
- Arguments:
enabled - REST:
PUT /work/sharing
aidy_settings#
Read Aidy model configuration, with secrets redacted.
- REST:
GET /work/aidy/settings
aidy_configure#
Configure Aidy backbone model and optional API key; org admin only.
- Arguments:
base_urlenabledmodelapi_key - REST:
PUT /work/aidy/settings
aidy_ask#
Ask Aidy in one of your conversations (omit conversation_id to start one). Aidy calls the operations you may call: reads run at once; a write stops the reply as pending until aidy_confirm approves or cancels it.
- Arguments:
questionconversation_id - REST:
POST /work/aidy/ask
aidy_confirm#
Approve or cancel the write a conversation waits on (call_id from aidy_ask pending); Aidy then runs or drops it and continues the reply.
- Arguments:
approvecall_idid - REST:
POST /work/aidy/conversations/{id}/confirm
aidy_conversation_list#
List your Aidy conversations, the last active first.
- Arguments:
pagepage_size - REST:
GET /work/aidy/conversations
aidy_conversation_get#
Read one of your Aidy conversations: questions, answers and the operations Aidy ran or proposed.
- Arguments:
id - REST:
GET /work/aidy/conversations/{id}
aidy_conversation_update#
Rename one of your Aidy conversations.
- Arguments:
idtitle - REST:
PATCH /work/aidy/conversations/{id}
aidy_conversation_delete#
Delete one of your Aidy conversations.
- Arguments:
id - REST:
DELETE /work/aidy/conversations/{id}
track_get#
Trace the delivery flow around a ticket, todo, iteration, delivery or Argos case: its flow type, the stages of that type's template (adjusted by the flow's override, plus any stage with evidence) with state, time and actor, and the linked tickets, todos, pull requests, pipelines, Argos runs and deliveries; id is the record number, or the Argos case id.
- Arguments:
idtype - REST:
GET /work/track/{type}/{id}
track_list#
List open flows with their stage states. view work (default) lists open todos and open tickets no todo carries, tickets lists every open ticket, argos lists Argos cases failing now or fixed in the last 14 days and reports unavailable ["argos"] when Argos cannot be read. project and owner filter work and tickets; pack, group and env filter argos; stuck_days keeps flows without activity for that many days.
- Arguments:
envgroupownerpackpagepage_sizeprojectstuck_daysview - REST:
GET /work/track
track_template_list#
List the Track flow templates: for each flow type (bug, feature, todo, ops, argos_case, iteration) its stages in order, the built-in stages and whether it was customized, and stage_keys with the evidence each stage reads. A flow shows its template's stages plus any other stage it has evidence for.
- REST:
GET /work/track-templates
track_template_update#
Replace one flow type's template stages; Work managers only. stages are stage keys with an optional label replacing the stage's name (e.g. planned labelled Triaged); they run in the natural stage order whatever order is given.
- Arguments:
stagestype - REST:
PUT /work/track-templates/{type}
track_template_reset#
Restore one flow type's built-in template; Work managers only.
- Arguments:
type - REST:
DELETE /work/track-templates/{type}
track_flow_update#
Adjust one flow where reality differs from its template: template switches it to another flow type's template, add shows stages the template lacks, skip hides stages even when they have evidence. The call replaces the flow's previous adjustment; send none of template, add and skip to return it to its template. Work managers, and the assignee, delegate or creator of a todo or ticket (owner of an iteration). Returns the flow as track_get does.
- Arguments:
idtypeaddskiptemplate - REST:
PUT /work/track/{type}/{id}/flow
track_activity#
What one person did over a range of days, for workload questions such as what X did this week: counts (todos and tickets touched, commits pushed, pull requests opened and merged, reviews, pipelines run, failed and fixed, tags, deliveries, minutes logged), the same counts per project and per repository, and a newest-first timeline. login defaults to the caller; reading someone else needs a Work manager. days (1-31, default 7) ends at until (YYYY-MM-DD, default today, Asia/Shanghai). Repository events follow the caller's repository visibility; unavailable names repos when they cannot be read.
- Arguments:
daysloginpagepage_sizeuntil - REST:
GET /work/track/activity
work_overview#
Work manager overview of all Work: exact risk counts, status/project/assignee breakdowns and 7/30-day intake and completion trends.
- Arguments:
days - REST:
GET /work/overview
work_manager_list#
List Work managers who can use global views.
- REST:
GET /work/managers
work_manager_set#
Grant Work manager access; org admin only.
- Arguments:
login - REST:
PUT /work/managers/{login}
work_manager_remove#
Revoke Work manager access; org admin only.
- Arguments:
login - REST:
DELETE /work/managers/{login}
time_entry_list#
Read your task entries and standard eight-hour daily reference total.
- Arguments:
work_date - REST:
GET /work/time-entries
time_entry_save#
Insert a task completion entry for a date; each entry maximum 960 minutes.
- Arguments:
minutessummarytodo_idwork_date - REST:
POST /work/time-entries
time_entry_delete#
Delete your own time entry.
- Arguments:
id - REST:
DELETE /work/time-entries/{id}
time_entry_suggest#
Suggest time entries for a day from what you did: todos in progress or touched that day and commits, pull requests and reviews naming todo#N, with the evidence and the minutes still unlogged against an eight-hour day. Nothing is saved; confirm each with time_entry_save.
- Arguments:
work_date - REST:
GET /work/time-entries/suggest
notification_nav#
Unread and total Work notification counts for the current account.
- REST:
GET /work/notification-nav
notification_list#
List Work notifications for the current account.
- Arguments:
pagepage_size - REST:
GET /work/notifications
notification_mark_read#
Mark one Work notification as read.
- Arguments:
id - REST:
POST /work/notifications/{id}/read
notification_mark_all_read#
Mark every unread Work notification as read.
- REST:
POST /work/notifications/read-all
ticket_nav#
Ticket counts for the current account.
- REST:
GET /work/ticket-nav
ticket_list#
List tickets in a personal view (mine, created, assigned, open, verifying, rejected, closed, completed_week, archived); work managers may use global_all for all unarchived tickets or global_open for unfinished tickets. project takes one id or a comma-separated set; unassigned_project also keeps tickets without a project.
- Arguments:
assigneeorderpagepage_sizeprojectsortstateunassigned_projectview - REST:
GET /work/tickets
ticket_get#
Read a ticket with its complete comments and attachment metadata.
- Arguments:
id - REST:
GET /work/tickets/{id}
ticket_create#
Create a ticket as the authenticated account.
- Arguments:
titleactualassignee_logindescriptionexpectedkindparticipantsprojectreposreproduceservicesource_argos_casesource_argos_run_idsource_todo_idstatusstatus_reason - REST:
POST /work/tickets
ticket_update#
Update a non-archived ticket. Statuses run todo, in_progress, verifying (fixed, waiting for its reporter), then closed when verification passes or rejected when it fails; rejected goes back to in_progress. Only the ticket's creator or a Work manager closes or rejects, and rejecting needs status_reason.
- Arguments:
idactualassignee_logindescriptionexpectedkindparticipantsprojectreposreproduceservicesource_argos_casesource_argos_run_idsource_todo_idstatusstatus_reasontitle - REST:
PATCH /work/tickets/{id}
ticket_comment#
Comment on a non-archived ticket; HTTP also accepts multipart body and file parts.
- Arguments:
idbody - REST:
POST /work/tickets/{id}/events
ticket_archive#
Set a ticket's archive state.
- Arguments:
archivedid - REST:
POST /work/tickets/{id}/archive
todo_nav#
Todo counts for the current account.
- REST:
GET /work/todo-nav
todo_list#
List todos in a personal view; project_* views list within a project filter; work managers may use global_* across projects. state takes one status or a comma-separated set; mine_role keeps rows the caller is assigned or created; unplanned keeps todos without an iteration; overdue keeps unfinished todos past their due day; deferred keeps todos whose due day was pushed later; out_of_plan keeps todos added to their iteration after it started; sort takes iteration (by version), deferrals or estimate besides the columns.
- Arguments:
assigneecloseddeferrediteration_idmine_roleorderout_of_planoverduepagepage_sizeprojectsortstateunplannedview - REST:
GET /work/todos
todo_get#
Read a todo, events and attachments.
- Arguments:
id - REST:
GET /work/todos/{id}
todo_create#
Create a todo under a project. due_at and start_at are days (YYYY-MM-DD, Asia/Shanghai): a todo is overdue once its due day ends. estimate_minutes is the planned effort (480 is one day). A todo joining an iteration that has started is out of plan; iteration_reason says why.
- Arguments:
projecttitleacceptanceassignee_logincloseddelegate_logindescriptiondue_atdue_change_reasonestimate_minutesiteration_iditeration_reasonlinkspriorityrequest_keyrevisionstart_atstatusticket_ids - REST:
POST /work/todos
todo_update#
Update a todo; pushing due_at to a later day requires due_change_reason and counts as a deferral. Moving it into or out of a started iteration records iteration_reason in the iteration's scope.
- Arguments:
idrevisionacceptanceassignee_logincloseddelegate_logindescriptiondue_atdue_change_reasonestimate_minutesiteration_iditeration_reasonlinkspriorityprojectrequest_keystart_atstatusticket_idstitle - REST:
PATCH /work/todos/{id}
todo_delete#
Delete a todo.
- Arguments:
id - REST:
DELETE /work/todos/{id}
todo_comment#
Comment on a todo; HTTP also accepts multipart body and file parts.
- Arguments:
idbody - REST:
POST /work/todos/{id}/events
todo_link_ticket#
Create a ticket from a todo.
- Arguments:
id - REST:
POST /work/todos/{id}/link-ticket
document_nav#
List documents the caller can read.
- REST:
GET /work/doc-nav
document_list#
List documents and folders visible to the caller.
- Arguments:
folder_idorderpagepage_sizesort - REST:
GET /work/docs
document_get#
Read a document the caller can access.
- Arguments:
id - REST:
GET /work/docs/{id}
document_create#
Create a document; visibility is instance or restricted.
- Arguments:
titlebodyfolder_idtagsvisibility - REST:
POST /work/docs
document_update#
Update a document the caller can edit.
- Arguments:
idbodyfolder_idtagstitlevisibility - REST:
PATCH /work/docs/{id}
document_delete#
Delete a document the caller can edit.
- Arguments:
id - REST:
DELETE /work/docs/{id}
document_grants#
List access grants for a document.
- Arguments:
id - REST:
GET /work/docs/{id}/grants
document_grant_set#
Grant a member view or edit access on a document.
- Arguments:
idloginrole - REST:
PUT /work/docs/{id}/grants/{login}
document_grant_delete#
Remove a document access grant.
- Arguments:
idlogin - REST:
DELETE /work/docs/{id}/grants/{login}
document_folder_update#
Rename a document folder.
- Arguments:
idtitle - REST:
PATCH /work/doc-folders/{id}
document_folder_delete#
Delete an empty document folder; nonempty folders return conflict.
- Arguments:
id - REST:
DELETE /work/doc-folders/{id}
document_folder_create#
Create a document folder.
- Arguments:
titleparent_id - REST:
POST /work/doc-folders
attachment_get#
Read attachment metadata and an authenticated content URL; use CLI attachment download for bytes.
- Arguments:
id - REST:
GET /work/attachments/{id}
chat_search#
Search only messages in conversations the caller belongs to.
- Arguments:
qpagepage_size - REST:
GET /chat/search
chat_share_document#
Send a knowledge document as a card into a conversation the caller belongs to; restricted documents gain view grants for the members, which needs permission to manage the document's access.
- Arguments:
conversation_iddocument_idbody - REST:
POST /chat/documents
argos_overview#
Read the newest failing Argos case results, optionally in one environment.
- Arguments:
env - REST:
GET /argos/overview
argos_catalog#
Read every observed Argos case with its newest result, and the known packs, groups and environments.
- REST:
GET /argos/catalog
argos_case_history#
Page one observed case's results across runs, newest first, with steps.
- Arguments:
idenvpagepage_size - REST:
GET /argos/cases/{id}/results
argos_run_list#
List Argos runs newest first with a brief summary and case results without steps; read one run with argos_run_get.
- Arguments:
envpagepage_sizestatus - REST:
GET /argos/runs
argos_run_get#
Read an Argos run with its case results, steps and comments.
- Arguments:
sid - REST:
GET /argos/runs/{sid}
argos_run_interrupt#
Interrupt a running Argos run; its unfinished cases become interrupted.
- Arguments:
sid - REST:
POST /argos/runs/{sid}/interrupt
argos_run_comment#
Comment on an Argos run, optionally on one case.
- Arguments:
bodysidcase_id - REST:
POST /argos/runs/{sid}/comments
argos_test_list#
List registered Argos case sources with provenance and owners.
- Arguments:
packpagepage_sizeq - REST:
GET /argos/tests
argos_test_get#
Read a registered Argos case including its full source.
- Arguments:
id - REST:
GET /argos/tests/{id}
argos_test_save#
Register or update a case with its complete source; after creation only its owner, creator or an org admin, with expected_sha256 from a fresh read.
- Arguments:
idownerpackpathrepositoryrevisionsourcetitleexpected_sha256grouptags - REST:
PUT /argos/tests/{id}
argos_test_source#
Read a retained source snapshot of a registered case by checksum.
- Arguments:
idsha256 - REST:
GET /argos/tests/{id}/source
argos_plan_list#
List shared Argos test plans.
- Arguments:
pagepage_size - REST:
GET /argos/plans
argos_plan_save#
Save a shared test plan of registered cases with an owner, environment, status and product iteration; updates pass the current revision.
- Arguments:
casesenvironmentidownerstatustitleiterationrevision - REST:
PUT /argos/plans/{id}
argos_search#
Search registered Argos cases, their source, and runs with their case results.
- Arguments:
qpagepage_size - REST:
GET /argos/search
For agents: mcp.mdEdit this page