oxagenDocs
MCP server

MCP tools

Every tool the Oxagen MCP server ships, how a client finds and loads them, and what each one reads or writes.

The Oxagen MCP server at https://mcp.oxagen.sh/mcp ships one tool for each Oxagen capability that declares the MCP surface. This page lists every one of them, grouped by domain, with its inputs, whether it writes, and whether it carries the approval marker.

Tool list

A client that connects and sends tools/list gets every tool on this page, each with its full input schema. The server does not hide tools behind a search step, and the list does not change with the key's role. The role decides what happens when a tool is called: a call the key's role does not allow is refused, and the refusal is recorded.

Two other sets of tools can appear beside the Oxagen tools:

  • Workspace MCP servers. A connection from an enrolled machine also lists the tools of the MCP servers the workspace publishes, named <server>__<tool>. A server set to search mode lists three tools instead of its whole list: <server>__search, <server>__describe and <server>__call. See External MCP servers.
  • The local oxagen entry. On an enrolled machine, oxagen agent enroll and oxagen codegraph init give each agent an oxagen MCP entry that runs on the machine. That entry lists only the reads the machine's key may make, and it adds two tools no hosted server has: build_code_graph and get_code_graph_status. See Code graph from the CLI.

Tool discovery

A client that does not want every definition in its model's context can start from two small tools:

  1. search_tools takes a query and, optionally, the kinds of row to return: tool, run, agent or approval. It returns at most eight ranked rows, each with an id and a one-line description. A tool row names a capability the in-app agent may call.
  2. load_tools takes up to eight of those names and returns each one's description, input schema, risk level, approval flag and read-only flag. A name outside that set comes back in unknown, with nothing described.

The in-app agent's set and the MCP server's set overlap but are not the same. To call a tool over MCP, use its name from this page.

Tool naming

An MCP tool has the name of the capability behind it, with no translation step. The capability list_workspace_memories is the tool list_workspace_memories.

Capability names are verb-first snake_case: an imperative verb, then the thing it acts on, joined by underscores. See Capability naming for the full rule. These names contain no dots, so they are already legal MCP tool names.

Approval marker

Some tools need a person to approve each call, even though they change nothing. reveal_secret is one: it is read-only, and it returns a plaintext secret. The standard MCP annotations cannot say this. readOnlyHint only says whether a tool changes anything, and many hosts approve every read-only tool on their own.

Every Oxagen tool therefore carries its contract's answer in the tool's _meta, which tools/list returns:

KeyValue
sh.oxagen/requiresApprovaltrue when a person must approve each call, false otherwise. Every tool has it.
sh.oxagen/riskLevellow, medium, or high, when the contract rates the tool.
json
{
  "name": "reveal_secret",
  "annotations": { "readOnlyHint": true, "destructiveHint": false, "idempotentHint": true },
  "_meta": { "sh.oxagen/requiresApproval": true, "sh.oxagen/riskLevel": "high" }
}

The MCP server does not hold a call for approval. The marker is advice to the host, and we know of no host that reads these keys on its own. To hold these tools for approval, set your host to ask before every call to a tool whose sh.oxagen/requiresApproval is true, or leave such tools off its auto-approve list. A client you build can read the key from tools/list and ask the person itself.

Oxagen still checks the caller's key and role when the tool is called, whatever the host decides.

Browser sign-in

A tool that connects an account through OAuth cannot finish the sign-in itself. start_mcp_authorization returns the URL where the person signs in. Open it in a browser to finish.

Tools by domain

Each table lists the tools of one domain:

  • What it does is the first sentence of the tool's description. tools/list returns the whole description.
  • Inputs names the tool's top-level fields. A field that ends in ? is optional. tools/list and load_tools return the full schema.
  • Writes is Yes when a call changes stored state, and the tool's readOnlyHint says the same. Two tools differ: a call to remember_lesson or record_reflection changes nothing, but Oxagen stores what it recorded when the run ends, so their readOnlyHint is false.
  • Approval is Yes when the tool carries the approval marker.

Agents

ToolWhat it doesInputsWritesApproval
answer_interjectionAnswer the question an agent paused to ask: with text, or, for a repository the workspace has not bound, by linking it or creating a workspace for it.interjectionId, answer?, path?, create?, residue?, fromRule?YesNo
assign_agent_roleAssign an IAM role to an agent's delegated principal.agentId, roleName, reason?YesYes
assign_agent_toolbeltGive an agent another toolbelt and keep its principal, roles and grants.agentId, toolbeltIdYesYes
authorize_mcp_serverFinish OAuth authorization for an MCP server: exchange the code the authorization server returned, store the tokens encrypted, and list the server's toolsstate, code, redirectUrlYesNo
delete_mcp_serverSoft-delete a registered external MCP server.mcpServerIdYesYes
draft_interjection_answerDraft the answer to an agent's question from your steering records, citing the record it came from.interjectionIdNoNo
get_agentRead one agent: principal, harness, operator and status; the runtime it runs on and the toolbelt it carries; its versions; its long-lived credentials; the roles on its principal; and the hosts enrolled under it.agentIdNoNo
get_agent_roleGet one IAM role's status relative to an agent: whether the agent's delegated principal holds it, the assignment provenance when held, and the role's capability grant list (what attaching it confers).agentId, roleNameNoNo
get_agent_toolbeltCompute the toolbelt an agent would be shown without executing anything: the decision and rule per tool, each tool's input schema and schema hash, how the belt was computed, what the model receives in full or searchable mode, and what the agent cannot see.agentId, mode?NoNo
list_agent_rolesList the IAM roles attached to an agent's delegated principal: the active, non-expired principal_role_assignments with role identity, scope, and assignment provenance.agentIdNoNo
list_agent_toolsList the capabilities surfaced as agent tools for the active workspace, after allowlist and risk filteringincludeExternal?NoNo
list_agentsList the agents registered in this workspace with their purpose, principal, harness, operator, status, enrollment and credential counts, live host, live run count, latest enforcement tier, active mandates, and the 30-day run, spend, token and incident figures the stores record.limit?, cursor?, includeRetired?NoNo
list_approvalsList the workspace's pending tool-call approvals, soonest expiry first, cursor-paged, optionally narrowed to one runrunId?, limit?, cursor?NoNo
list_attentionList everything that waits on you in this workspace: approvals and questions on your runs, work orders you sent that wait in review, ready work items assigned to you, and steering suggestions.operatorId?, state?, since?, limit?, cursor?NoNo
list_fleetList your work items grouped by workstream, each with its live and recent runs and their subagents, and a state on every row: waiting on you, working, quiet, failed or done.scope?NoNo
list_interjectionsList the questions agents in this workspace paused to ask a person, soonest expiry first, cursor-paged, optionally narrowed to one runrunId?, open?, limit?, cursor?NoNo
list_mcp_consentsList external MCP tool consent grants in the active workspace (which tools the agent may invoke without re-prompting)mineOnly?NoNo
list_mcp_serversList registered external MCP servers in the active workspace with their current health, the tokens each server's tool definitions add to a model call, and an estimate of what those tokens cost the workspace a weekpriced?NoNo
list_resolved_approvalsList the workspace's resolved approvals, most recently resolved first, cursor-paged, optionally narrowed to one run or a resolved-at time range, including the rule that auto-approved a call no person looked atrunId?, since?, until?, limit?, cursor?NoNo
move_agentMove an agent to another runtime and keep its principal, roles and runs.agentId, runtimeIdYesYes
record_reflectionReflect on the current run: its outcome, a summary, a grade for the work and each tool, and what the person corrected, refused, preferred, or decided.outcome, summary, grades, lessons?, tool_feedback?NoNo
register_mcp_serverRegister an external MCP server with the workspace; its tools become available to the agent after health check.name, transportType, endpointUrl, authStrategy?, authConfig?YesNo
remember_lessonKeep one thing the person taught you in the current run: a correction, a refusal, a preference, or a decision, in their words.statement, kind?, repos?, applies_to?, tools?, evidence?NoNo
reopen_interjectionTake back an answer stella gave to an agent's question from one of your rules.interjectionIdYesNo
resolve_approvalApprove or deny a pending tool-call approval request; an approved call the in-app assistant parked runs at once, and the answer says what became of itapprovalId, decision, note?YesNo
resolve_mcp_consentGrant or deny first-use consent for an external MCP tool; the decision resumes the paused agent stream and is remembered for subsequent callsapprovalId, decision, grantAllTools?YesNo
revoke_agent_roleRevoke an IAM role from an agent's delegated principal.agentId, roleNameYesYes
search_mcp_registrySearch the official MCP Registry and Oxagen's verified first-party servers for MCP servers a workspace can add as a tool providerquery?, cursor?, limit?NoNo
set_agent_budgetSet or clear the spend budget of one agent in the active workspace, in cents.agent, budgetCentsYesNo
set_agent_cache_keep_aliveTurn the cache keep-alive on or off for one agent in the active workspace.agent, cacheKeepAliveYesNo
set_mcp_enabledEnable or disable a registered external MCP server.mcpServerId, enabledYesNo
start_mcp_authorizationStart OAuth authorization for an MCP server: a new provider from the registry or a custom endpoint, or a reconnect of one already added.mcpServerId?, name?, endpointUrl?, description?, iconUrl?, registryId?, client?, redirectUrlYesNo

API keys

ToolWhat it doesInputsWritesApproval
acknowledge_api_key_rotationConfirm receipt of a rotated API key's secret.keyPublicIdYesYes
create_api_keyCreate an API key: an organization key, which an organization Owner makes, or a key for the call's workspace, which its Admins make.name, scope?, expiresAt?, scopeKind?, role?YesYes
list_api_keysList API keys with their metadata: public id, name, prefix, scope, role, creator, creation, last use, expiry and revocation times, and, for a key a rotation replaced, when it was superseded and by which key.scopeKind?NoNo
revoke_api_keyRevoke an API key by its aky_ public ID.keyPublicIdYesYes
rotate_api_keyIssue a replacement API key and keep the old one working for 24 hours.keyPublicId, name?YesYes

Approval rules

ToolWhat it doesInputsWritesApproval
delete_approval_ruleRemove one auto-approval rule from the workspace's rule setruleIdYesYes
get_auto_eligibilityThe auto-approval evaluation recorded for one approval request, and who resolved itapprovalIdNoNo
list_approval_rulesList the workspace's auto-approval rules, with the calls each released and held in the last 30 daysNoneNoNo
set_approval_rule_enabledSwitch one auto-approval rule on or offruleId, enabledYesYes
set_approval_rulesReplace the workspace's auto-approval rules: the conditions under which a call a policy sent to a person may skip them.rules, replaces?, saving?YesYes

Assets

ToolWhat it doesInputsWritesApproval
upload_assetIngest a binary asset from a source URL into object storage and return its stored URL and key.sourceUrl, kind, filename?, source?, conversationId?YesNo

Assistant

ToolWhat it doesInputsWritesApproval
ask_assistantTake one turn with the in-app agent: append the message to a conversation, record the turn as a run of its own, drive it on the assistant engine with every completion and tool call answered by Oxagen, and return the reply with the run it was recorded as.conversationId?, content, pageContext?, goal?, turnId?, attachments?YesNo
draft_recordDraft a record for one create flow from a person's description with stella: a steering record, a skill, a work item, a tool classification, a mandate, a repository import, an API key, a runtime, a sandbox runtime, a role, an approval rule, a budget, a connection, a collector, an SSO provider, a clone or an agent.kind, description, tools?, files?, source?NoNo
get_assistant_engineProbe the in-app agent's engine: its readiness state as the engine reported it, or unreachable after the attempts made, with the host the probe was aimed at.NoneNoNo
get_briefingRead what changed since you last opened the Stella page in this workspace: your runs that ended, your work orders that reached review, the progress updates your runs posted, and how many things wait on you now, with a summary of at most three sentences that states only those figures.NoneNoNo
get_operator_statusRead your day in this workspace, in your own time zone: the runs you started today against yesterday by this time and all of yesterday, what waits on you now, the work you sent, accepted and merged today and yesterday, your pull requests by state, the repositories and kinds of work you worked on, and the ready work items you can send next.NoneNoNo
get_stella_permissionsRead what stella may do alone for you in this workspace: answer agent questions from your rules, relaunch failed work, create issues, update source issues, and steer your agents.NoneNoNo
record_reply_feedbackRecord a person's verdict on one reply of the in-app assistant, useful or wrong, with an optional short note, against the run the reply was recorded as.conversationId, runId, verdict, note?YesNo
rewrite_fieldRewrite the text of one prose field, or a group of up to four that belong together, with stella.fieldsNoNo
set_stella_permissionsChange what stella may do alone for you in this workspace.operator?, answerFromRules?, relaunchFailedWork?, createIssues?, updateSourceIssues?, steerAgents?YesNo
upload_assistant_attachmentStore one image, PDF or text file a person attaches to a message for the in-app assistant, after checking its bytes match its type and size cap, and return the id the message sends in ask_assistant's attachments.name, mediaType, dataYesNo

Audit log

ToolWhat it doesInputsWritesApproval
export_audit_eventsExport the org's security audit events over the query_audit_log filters as CSV or NDJSON, locked with HMAC-SHA256 so a check after download shows any change to the file.format?, eventType?, actorUserId?, actorPublicId?, capability?, outcome?, workspaceId?, from?, to?NoNo
query_audit_logQuery the org's security audit events (security_events) with filters (actor, capability, outcome, event type, time range), returning a time-ordered feed.source?, eventType?, actorUserId?, actorPublicId?, capability?, outcome?, workspaceId?, from?, to?, limit?, offset?NoNo

Billing

ToolWhat it doesInputsWritesApproval
export_billing_statementExport the organization's billing statement for a week, month, quarter, year or custom period longer than 48 hours, as CSV with every billed governed action (paged by cursor) or as a printable HTML document.period, anchor?, from?, to?, format?, limit?, cursor?NoNo
get_billing_statementGet the organization's billing statement for a week, month, quarter, year or custom period longer than 48 hours: governed action units by source, workspace, agent, operator, capability and tool, and by day; the month buckets; settlements, reversals, prepaid orders and invoices; usage credits from opening to closing balance; model usage reported at zero; and the reconciliation checks the figures satisfy.period, anchor?, from?, to?, top?NoNo
get_contract_rateThe organisation's contracted governed-action terms: per-GAU rate in micro-dollars, block size, currency, included GAUs per month, effective dates, and whether they are the published tier's figures or a negotiated agreement'sNoneNoNo
get_evidence_retentionEvidence-retention posture and its price: the included window, the organisation's effective retention window from its pinned retention policy, whether it has opted into paying for retention beyond the included months, the per-GB-month rate, and retention credits charged so far.NoneNoNo
get_gau_bucketRead the organization's governed action unit bucket for the current month: the billing mode, the period, the units included, purchased, carried forward, used and remaining, the invoice thresholds of an invoice-billed organization, and the saved card.NoneNoNo
get_rate_cardThe published rate card for governed actions: each self-serve plan's monthly price, monthly included actions, rate per action and block size, the evidence-retention price beyond the included window, confirmation that model tokens are reported at zero charge, and the caller's own monthly terms.NoneNoNo
get_spend_budgetRead the hard period-to-date spend ceilings governing the active scope: the org-level ceiling, which covers every workspace, and this workspace's own ceiling, if configured.NoneNoNo
get_subscriptionRead the current subscription, plan, and period bounds for the active tenantNoneNoNo
get_usage_breakdownAggregated usage for a time window broken down by model, surface, workspace, capability, acting principal, and user, plus a daily time series of tokens, cost, and chat-turn (message) counts.start, end, workspaceId?NoNo
list_invoicesList the organization's invoices, newest first, in one cursor-paged list: number, status, what each invoice charged for (the subscription, a block purchase, an auto top-up, an interim or a period-close charge), amounts due and paid, period and the Stripe-hosted page.limit?, cursor?NoNo
list_prepaid_ordersList the organization's prepaid orders, newest first: the licence, governed action units and usage credits each invoice sold, with amounts, the service period, status, when the units and credits were granted, and the invoice number and hosted page.limit?, cursor?NoNo
preview_action_costConvert a projected number of agent runs per month into governed actions and a monthly overage price, using the published conversion from run class to actions.runsPerMonth, runClass?, actionsPerRun?, plan?NoNo
purchase_creditsStart a Stripe Checkout session for a dynamic usage-credit purchase; returns a URL the customer opens to complete paymentamountUsd, successUrl?, cancelUrl?YesYes
purchase_gau_bucketBuy governed action units in block quantities at the organisation's contracted rate through Stripe Checkout; returns the Checkout URL, the quantity, the block size and the number of blocksquantityGau, successPath, cancelPathYesYes
set_spend_budgetSet (create or replace) the hard period-to-date spend ceiling for one scope: the org-level ceiling that covers every workspace, or this workspace's own ceiling.scope, enabled, period, windowDays?, limitYesYes
start_subscription_upgradeStart a Stripe Checkout session for a plan change; returns a URL the user opens to complete the upgradeplanSlug, interval, successUrl, cancelUrlYesYes

Capability registry

ToolWhat it doesInputsWritesApproval
get_capability_registryRead one typed capability contract from the live registry as the full enforced object: identity grants, tenancy scope, permitted action with input/output field specs, commercial terms (billing gate + entitlement pack), and chaining metadata.nameNoNo
list_capability_registryList the platform's typed capability contracts from the live in-process registry: the name, domain, surfaces, layers, sensitivity, default IAM grants, entitlement gate, and audit binding for each.domain?, q?, surface?, missingLayer?, sensitivity?, limit?, offset?NoNo

Chat

ToolWhat it doesInputsWritesApproval
send_messageAppend a user message to a conversation and stream the assistant replyconversationId, parentMessageId, branchReason, content, contentBlocks?YesNo

Code graph

ToolWhat it doesInputsWritesApproval
check_changeCheck a unified diff against the code graph before it merges: the symbols it changes, the blast radius summary, the tests to run, the environment variables it adds or leaves missing, the scripts it affects with their effect classes, the new crossings between domains it makes, and the conventions of the code it changes.budget?, minConfidence?, scope?, responseFormat?, at?, diff, repo?NoNo
create_work_itemsCreate the work items a person confirmed from what the code graph found.itemsYesYes
export_openapi_draftDraft an OpenAPI 3.1 file for the HTTP routes found only in code, which no spec describes, in a repo, package, or folder.budget?, minConfidence?, scope?, responseFormat?, at?, withinNoNo
find_definitionFind where a symbol, file, table, route, or other code graph node is defined.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
find_implementationsFind the types that implement, extend, or override one code graph node, up to two steps away.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
find_referencesFind the code that calls, imports, or refers to one code graph node.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
get_api_docsRead what the code graph knows about one API operation or MCP tool: its description, input and output schemas, the handler that serves it, the tables that handler reads and writes, its flags, and example calls from tests.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
get_blast_radiusList everything a change to a target affects: callers, overrides, code that reads or writes it, foreign keys and views, migrations, the APIs and agent tools it serves, entry points, build targets, covering tests, docs, specs, decisions, and co-change partners, grouped by kind with each item's confidence and path.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
get_code_graph_settingsRead the code graph's settings from the codegraph/ files of the workspace's steering repo, at the last approved commit.NoneNoNo
get_code_graph_spendRead this month's code graph AI spend against the workspace's monthly cap, and the key that pays for it.NoneNoNo
get_dataflow_sliceFollow one value through the code: the statements that define it before the target, or the statements that read it after, in order, with each step's file, lines, role and confidence.budget?, minConfidence?, scope?, responseFormat?, at?, target, line?, variable?, direction?, depth?, crossCalls?NoNo
get_domain_briefGet the brief of one domain of the workspace's code: what it is for, its entry points, core types, tables, APIs and agent tools, rules, key tests, and owners.budget?, minConfidence?, scope?, responseFormat?, at?, domainNoNo
get_env_varsList the environment variables a service, deployable, package, file, or function needs and where each one is set per environment, missing ones first.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
get_execution_flowWalk the calls from an entry point or a function into an ordered call tree, with the tables each step reads and writes and repeated subtrees shared once.budget?, minConfidence?, scope?, responseFormat?, at?, target, mode?NoNo
get_infraShow where a function, file, package, or deployable runs in each environment and what those services connect to.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
get_intended_behaviorState what a function is meant to do, in one or two sentences, with the evidence each claim cites: behavior statements, requirements, decisions, conventions, comments and the issue's text, in that order.budget?, minConfidence?, scope?, responseFormat?, at?, target, failure?NoNo
get_repair_contextPack what a fix needs to read into one bundle, 8,000 tokens by default and 16,000 at most, in fixed sections: the suspect code, its callers and callees, the tests to run and the failing assertion, each suspect's intended behavior, the governing decisions and conventions, and the variables and infrastructure the code touches.budget?, minConfidence?, scope?, responseFormat?, at?, suspects?, failure?, sections?NoNo
get_repo_mapGet a map of a repo, package, or folder: the names and parameters of its most important functions and classes, without their bodies, grouped by file and cut to the token budget.budget?, minConfidence?, scope?, responseFormat?, at?, withinNoNo
label_linkLabel one agent link of the code graph's independent sample as right or wrong, with an optional note.id, label, note?YesYes
list_ci_jobsList the CI jobs that run for a workflow, a job, a file, a package, a symbol, a script, an image, or an environment.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
list_co_changesList the files and functions that usually change together with a file or a function, learned from git history.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
list_code_graph_releasesList the code graph's release archive: each tagged copy with its commit, its build time, the default-branch builds since the last tag, and the embedding tokens those builds used.repo?, limit?NoNo
list_domain_reviewsList the new domains waiting in the code graph's review queue, oldest first.limit?NoNo
list_governing_decisionsList the decision records (ADRs) that govern a symbol, file, package, table, or other node, or a domain.budget?, minConfidence?, scope?, responseFormat?, at?, target?, domain?NoNo
list_held_decisionsList the ADR copies the code graph holds in its inbox because they failed the publication rule.limit?NoNo
list_link_labelsList the independent label sample of agent links that published on their own, stratified by relation, language, and repo pair, with each link's nodes, relation, and evidence.unlabeledOnly?, limit?NoNo
list_link_reviewsList the agent links waiting in the code graph's review queue, oldest first: links that passed the checker with a score under 0.6, and published links a recheck no longer found.limit?NoNo
list_neighborsList the code graph nodes one link away from a node, with the edge kind and direction of each link.budget?, minConfidence?, scope?, responseFormat?, at?, target, edges?, nodeKinds?, direction?NoNo
list_scriptsList the scripts that build, test, lint, run, and deploy a package, file, or function, each with its exact command from the repo root, its effect class, its known effects, and the host default that applies.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo
list_unit_testsList the tests that cover a function, file, table, column, environment variable, or cloud resource, grouped by file, with fast and stable tests first and the command that runs each one.budget?, minConfidence?, scope?, responseFormat?, at?, target, kind?NoNo
localize_faultRank the files, functions and lines most likely to have caused a failure, each with the signals that put it there: the change since the last green build, the coverage spectrum, stack frames, a backward slice, rank, co-change partners and the issue's text.budget?, minConfidence?, scope?, responseFormat?, at?, failure?, issue?, stackTrace?, limit?NoNo
post_intent_questionAsk the issue's author the one question get_intended_behavior drafted.item_id, expected_version, question, symbol?YesYes
propose_code_graph_settingsChange one code graph settings file, codegraph/<group>.toml, through a steering PR credited to you.group, settings, title?YesYes
propose_edgePropose one link between two code graph nodes, such as a spec and the function that builds it.source, target, relation, evidence, confidenceYesNo
rank_symbolsList the most important functions and classes in a repo, package, or folder, ranked by PageRank over the code graph.budget?, minConfidence?, scope?, responseFormat?, at?, withinNoNo
review_domainAccept or reject one domain in the code graph's review queue.id, decision, name?, definition?, note?YesYes
review_linkAccept or reject one agent link in the code graph's review queue.id, decision, note?YesYes
search_code_graphSearch the code graph with a plain-language question, such as "payments and checkout related code and tables".budget?, minConfidence?, scope?, responseFormat?, at?, query, groups?NoNo
trace_specTrace one spec or design doc to the code that builds it and the tests that prove it.budget?, minConfidence?, scope?, responseFormat?, at?, targetNoNo

Configuration clones

ToolWhat it doesInputsWritesApproval
get_clone_draftRead a configuration into an editable clone draft with a new suggested name and slug.kind, sourceIdNoNo
propose_configuration_cloneValidate a clone draft and open a create-only suggestion under its new identity.kind, sourceId, sourceDigest, slug, name, source, filesYesYes

Connections

ToolWhat it doesInputsWritesApproval
create_connectionCreate a new data source connection for a workspace.connectorId, displayName, connectionConfig?, authCredential, deliveryMethod?YesYes
delete_connectionDelete a data source connection.connectionId, modeYesYes
get_connectionGet details of a single data source connection.connectionIdNoNo
get_connection_mappingsGet the current entity type mappings for a data source connection.connectionIdNoNo
list_connectionsList all data source connections for a workspace.status?, connectorId?NoNo
pause_connectionPause or resume syncing for a data source connection.connectionId, pausedYesNo
preview_connectionPreview sample records from a data source connection.connectionIdNoNo
set_connection_mappingsSave entity type mappings for a data source connection.connectionId, mappings, activateConnection?, installationId?, selectedRepos?, syncDepthDays?, owner?, repo?, defaultBranch?YesYes
suggest_connection_mappingsUse an LLM to suggest entity type mappings for a connection based on previewed record types.connectionId, recordTypes, existingEntityTypes?YesNo
update_connectionUpdate a data source connection: rename it (displayName) and/or adjust its delivery configuration (sync schedule, scope).connectionId, displayName?, deliveryConfig?YesNo

Conversations

ToolWhat it doesInputsWritesApproval
add_conversation_attachmentLink an already-uploaded asset to a conversation as a chat attachment and return its conversation-file record.conversationId, assetPublicIdYesNo
archive_conversationArchive or unarchive conversations (reversible: sets or clears archived_at, with no data loss).conversationIds, archivedYesNo
clear_conversationClear one of your conversations: keep its id and title, and hide every message written before now from the thread and from the assistant's history.conversationIdYesNo
delete_conversationPermanently delete the caller's conversations, with their messages and the files the caller sent in them.conversationIdsYesYes
export_conversationExport an entire conversation (active branch) as a Markdown document or a formatted PDFconversationId, formatYesNo
fork_conversationStart a new conversation from one reply of an existing conversation.conversationId, runIdYesNo
get_conversationRead one of your conversations in this workspace with its messages, oldest first, or your most recently updated active conversation when no id is givenconversationId?, limit?, before?NoNo
list_conversation_filesList the ready generated assets attached to a conversation, access-policy filtered, newest-first, keyset-paginatedconversationId, kind?, limit?, cursor?NoNo
list_conversationsList a user's conversations in a workspace, filtered by active or archived state, newest first, keyset-paginatedfilter?, limit?, cursor?NoNo
post_conversation_messagePost a message to a conversationconversation_id, message?YesNo
purge_conversationsPermanently delete every archived conversation the caller owns in this workspace, with its messages and the files the caller sent in it.NoneYesYes
rename_conversationRename a conversation (set its title)conversationId, titleYesNo

Credential grants

ToolWhat it doesInputsWritesApproval
list_credential_grantsList the credential broker's grants for the workspace: every credential put to use for a tool server on behalf of a run, with the connection, the scope it could reach, its TTL and whether it is still live.connectionId?, limit?, cursor?NoNo

Enrolled hosts

ToolWhat it doesInputsWritesApproval
get_tacho_session_policyRead the workspace model enforcement mode, allow and deny lists, and legacy recorded dollar ceiling.NoneNoNo
list_incidentsList the workspace's tamper and integrity incidents, newest first, cursor-paged, optionally narrowed to one agent or to open incidents.agentId?, open?, limit?, cursor?NoNo
list_tacho_hostsList the machines enrolled as Tacho hosts in this workspace with their status, liveness, and counters.status?, limit?, cursor?NoNo
update_tacho_session_policySet the workspace model allow and deny lists for routed calls from upgraded hosts.mode?, sessionLimitUsd?, modelAllow?, modelDeny?YesYes

Environments

ToolWhat it doesInputsWritesApproval
create_environmentCreate a workspace environment (e.g. production, development, preview) for scoping secrets and sandbox config.name, slug, description?YesNo
delete_environmentSoft-delete a workspace environment.environmentIdYesNo
get_environmentFetch a single workspace environment by its public id.environmentIdNoNo
list_environmentsList the environments configured in the active workspace.NoneNoNo
set_default_environmentPromote an environment to the workspace default.environmentIdYesNo
update_environmentUpdate a workspace environment's name, slug, description, or active state.environmentId, name?, slug?, description?, isActive?YesNo

Error clusters

ToolWhat it doesInputsWritesApproval
list_error_clustersCluster recent captured errors by fingerprint to see which error classes are recurring and how often across the org.sinceHours?, severity?, source?, limit?NoNo

Graph schemas

ToolWhat it doesInputsWritesApproval
create_schema_versionFreeze the current draft into an immutable published version and open a fresh draft.label?, changeSummary?YesNo
delete_schema_labelRemove a node label and its properties from the draft.schemaName, nameYesYes
delete_schema_propertyRemove a property from the draft.ownerKind, ownerName, keyYesYes
delete_schema_relationshipRemove a relationship type from the draft.schemaName, nameYesYes
diff_schema_versionsStructural diff of two versions: added/removed/changed schemas, labels, relationship types, properties.fromVersionId, toVersionIdNoNo
dispatch_schema_reconcileDispatch an async reconciliation job to re-label existing graph nodes and relationships against the pinned schema version.versionId, prune?YesYes
export_schemaBuild a ZIP of a version (grouped by schema) via the create_archive plumbing; returns access-controlled serveUrl.versionId?YesNo
get_reconcile_statusPoll the status of a schema reconciliation job.jobIdNoNo
get_registry_configSet enforcement_mode and conformance_floor for the workspace registry.enforcementMode?, conformanceFloor?YesYes
get_schema_registryResolve a workspace's registry: pinned version, draft version, enforcement mode, per-schema enabled state, label/relationship/property tree.versionId?YesNo
list_schema_versionsList versions (number, label, status, published_at, change_summary).limit?, offset?YesNo
list_schemasList the workspace's schemas with per-schema enabled state.NoneYesNo
pin_schema_versionPoint the workspace at a published version; returns whether a pin downgrade occurred.versionIdYesYes
recommend_schemaAI onboarding: read existing graph (get_graph_stats + graph_observed_labels ClickHouse telemetry + sampled query_ontology) and the workspace's enabled schemas → propose a starter schema or additions.sampleLimit?NoNo
setup_schemaInteractive LLM-assisted registry walkthrough: recommend → intent Q&A (run_schema_chat) → apply → activate.sampleLimit?, enforcement?, noInteractive?, json?YesNo
toggle_schemaEnable/disable a schema.schemaName, enabledYesYes
upsert_schema_labelCreate/update a node label on a schema within the draft version.schemaName, name, displayName, description?, naturalKeyProps?, properties?YesNo
upsert_schema_propertyCreate/update a property on a node label or relationship type in the draft.ownerKind, ownerName, key, dataType, required?, description?, enumValues?, itemType?, constraints?, example?YesNo
upsert_schema_relationshipCreate/update a relationship type on a schema within the draft version.schemaName, name, displayName, startLabel?, endLabel?, cardinality?, description?, properties?YesNo
validate_schema_nodeValidate a node's properties against the workspace schema.label, properties, versionId?NoNo
validate_schema_relationshipValidate a relationship's type and properties against the workspace schema.type, startLabel, endLabel, properties, versionId?NoNo

Installation

ToolWhat it doesInputsWritesApproval
get_install_instructionsReturn step-by-step MCP/CLI installation instructions for a given AI client (claude-code, cursor, claude-desktop, codex, vscode).client, workspaceSlug?, enrollmentToken?NoNo

Integrations

ToolWhat it doesInputsWritesApproval
configure_integrationUpdate plugin instance configuration: filters and sync cadence.integrationId, displayName?, config?, syncCadence?YesNo
delete_integrationRemove a plugin instance and optionally purge its graph data from Neo4j.integrationId, purgeData?YesYes
get_integrationGet full details of a single plugin instance including schema and configuration.integrationIdNoNo
get_integration_metricsGet sync statistics and metrics for a plugin instance.integrationIdNoNo
install_integrationInstall a plugin instance from catalog or custom URL.pluginId, version?, schemaUrl?, config, displayNameYesYes
list_integrationsBrowse installed plugin instances with status, config summary, and sync metrics.status?, pluginId?, limit?, offset?NoNo
sync_integrationTrigger synchronization of a plugin instance.integrationId, mode?YesNo

Knowledge graph

ToolWhat it doesInputsWritesApproval
author_graph_ruleAsk the in-app agent to author a relationship rule between nodes from two sources, as one assistant turn judged against a goal built from the rule: a query_ontology traversal over the relationship type, from a node of the first source, returns a node of the second.rule, note?, conversationId?, turnId?YesNo
get_graph_statsCustomer-context workspace graph statistics: node count, edge count, inferred edge count, and breakdown by type.includeByType?, includeGrowth?NoNo
get_nodeRetrieve a customer-context graph node by its publicId.nodeIdNoNo
list_nodesPaginated browse of customer-context nodes in the workspace graph.labels?, sourceId?, limit?, offset?, query?NoNo
search_graphNatural-language semantic (vector) search across customer-context entities in the shared workspace graph, ranked by embedding similarity.query, limit?, labels?NoNo
search_nodesFuzzy search customer-context graph nodes by displayName and description, optionally filtered by label.query, labels?, limit?NoNo

Mandates

ToolWhat it doesInputsWritesApproval
get_mandateRead one mandate: the grant, remaining authority by measure from the ledger, and the ledger rows (reservations, settlements, releases) newest first.mandateId, ledgerLimit?NoNo
grant_mandateGrant an agent bounded, expiring authority for a consequence: limits over the tool's declared measures, allowed targets, tool patterns, the mandate's own approval rule, a purpose and a validity window.agentId, impacts, limits, targets?, tools, approval?, purpose, validFrom, validTo, requestId?YesYes
list_mandatesList the workspace's mandates with remaining authority by measure, newest first, optionally narrowed to one agent or one status.agentId?, status?, limit?NoNo
request_mandateAsk for a mandate on behalf of an agent: the same shape as grant_mandate, recorded as a draft for the role accountable for the consequence to grant or decline.agentId, impacts, limits, targets?, tools, approval?, purpose, validFrom, validToYesNo
revoke_mandateRevoke a mandate with a reason.mandateId, reasonYesYes
update_mandate_limitsChange an active mandate's limits, targets, approval rule or validity end.mandateId, limits?, limitChanges?, targets?, approval?, validTo?YesYes

Models

ToolWhat it doesInputsWritesApproval
list_model_capabilitiesList the provider capability posture matrix: per vendor, how its prompt cache is engaged (explicit opt-in vs implicit), how its reasoning budget is controlled, how structured output is obtained, and which attachment kinds it accepts.vendor?, model?NoNo
ToolWhat it doesInputsWritesApproval
get_nav_countsThe sidebar's counts for this workspace: work items in the inbox, pending approvals, open agent questions, open steering suggestions and open critical incidents, each null when its read answered nothing.NoneNoNo

Notifications

ToolWhat it doesInputsWritesApproval
list_notificationsList the calling user's in-app notifications, newest first, up to a limit.unreadOnly?, limit?NoNo
mark_notificationMark a notification as read and/or archived for the calling user.id, read?, archived?YesNo
mark_notifications_readMark every unread notification of the calling user read, in the organization and the open workspace, up to an optional time.before?YesNo

Off switches

ToolWhat it doesInputsWritesApproval
list_kill_switchesList the kill switches reaching this workspace (org-wide class and organisation switches, and the workspace's own), newest first, with the current deny generation.onlyOn?, limit?NoNo
set_kill_switchFlip a kill switch on or off: an emergency deny against a tool version, a tool server, a connection, an agent, an operator, a workspace, the organisation or a consequence class.target, on, reasonYesYes

Onboarding

ToolWhat it doesInputsWritesApproval
get_first_frameFor one registered agent: the host enrolled for it, what that host last reported, and the first frame ingested from it, long-polled for up to waitMs.agentId, waitMs?NoNo
get_onboarding_stateWhere the signed-in person is in the onboarding gate: the current step, the gate's workspace, and the first frame once one arrived.NoneNoNo

Ontology

ToolWhat it doesInputsWritesApproval
get_ontology_neighborsReturn the one-hop neighborhood of a node: directly connected nodes, optionally filtered by relationship type and direction.nodeId, edgeTypes?, direction?, limit?, asOf?, asKnownAt?NoNo
query_ontologyMulti-hop traversal FROM a known start node over named relationship type(s) to a given depth (1–5); returns the reachable customer-context subgraph (nodes + edges), org + workspace scoped, read-only, no Cypher required.startNodeId, edgeTypes?, direction?, maxDepth?, limit?, asOf?, asKnownAt?NoNo

Organization

ToolWhat it doesInputsWritesApproval
accept_member_inviteAccept a pending org invitation.invitationPublicIdYesNo
add_org_memberInvite a user to join the org by email.email, roleYesYes
archive_model_tierArchive a model tier so triage and dispatch stop offering it.tierYesYes
change_member_roleChange a member's org role.targetUserId, newRoleYesYes
create_model_tierAdd a model tier to this organization: its name, the guidance that says when to choose it, its rank among the tiers of its kind (1 is the lightest; the tiers at that rank and above move up one), and optionally the model each harness runs for it.name, slug?, kind?, guidance, rank?, models?YesYes
create_orgCreate a new organization with a globally-unique slug, its owner membership, IAM bootstrap and first workspacename, slug, namespace?, planSlug?, type?, website?, industry?, employeeSize?, workspace?YesYes
create_sso_providerRegister an SSO identity provider (OIDC or SAML) for one email domain.providerId, displayName, domain, groupsClaim?, configYesNo
decline_member_inviteDecline a pending org invitation.invitationPublicIdYesNo
delete_model_credentialRemove the organisation's stored model-vendor API key.purpose?, workspaceId?, space?, credentialId?YesNo
delete_sso_providerDelete an SSO provider and its group-to-role mappings.providerIdYesNo
get_data_planeRead the organisation's data-plane binding for one store (postgres, neo4j, or clickhouse): shared or dedicated, its health status, endpoint host and database name, applied schema version, and the last verification/rotation timestamps.kindNoYes
get_model_credentialRead whether the organisation has stored its own model-vendor API key, and if so which provider, its status, the last four characters of the key, and when it was last verified and last rotated.NoneNoNo
get_org_settingsRead the active organization's profile settings: name, slug, avatar, website, industry, employee size, and type.NoneNoNo
list_membersList the members of the organization with its pending invitations, or the members of the current workspace.scope?NoNo
list_model_credentialsList your own model credentials in the order the gateway uses them, with each one's provider, type, name, last four characters, status, and when its usage resets if it ran out.NoneNoNo
list_model_tiersList this organization's model tiers in rank order, lightest first, each with the guidance that says when to choose it and the model each harness (claude-code, codex, cursor, stella) runs for it.kind?, includeArchived?NoNo
list_orgsList the organizations (tenants) the authenticated user belongs to, with the caller's role in each.NoneNoNo
list_sso_providersList the organisation's SSO identity providers (OIDC or SAML) with their domain verification record, callback URL, group-to-role mappings, whether SSO is required, and whether the organisation's plan includes SSO (the Enterprise plan).NoneNoNo
remove_model_credentialRemove one of your own model credentials.credentialIdYesNo
remove_org_memberRemove a member from the org.targetUserIdYesYes
resend_member_inviteResend a pending invitation in the calling organization.invitationPublicIdYesYes
revoke_member_inviteRevoke a pending invitation in the calling organization.invitationPublicIdYesYes
revoke_scim_tokenRevoke the organization's SCIM bearer token so the identity provider can no longer push users or groups.NoneYesNo
set_data_planeBind one of the organisation's stores (postgres, neo4j, or clickhouse) to a dedicated customer-controlled endpoint, or return it to the shared platform plane.kind, mode, config?YesYes
set_model_credentialStore the organisation's own model-vendor API key: OpenRouter, Vercel AI Gateway, OpenAI, Anthropic, or any OpenAI-compatible endpoint given by base URL.provider, apiKey, baseUrl?, modelMap?, purpose?, workspaceId?, embedding?YesNo
set_model_tier_modelSet the model one harness (claude-code, codex, cursor or stella) runs for a model tier, or clear it with null.tier, harness, modelYesYes
set_sso_group_rolesReplace an SSO provider's mappings from identity-provider group to organisation role (compliance_billing or member), and optionally its grants from group to a custom role or to a workspace role in a named workspace.providerId, mappings, grants?YesNo
set_sso_policyRequire SSO for the organisation, or stop requiring it.ssoRequiredYesNo
update_model_credentialRename, pause or resume one of your own model credentials.credentialId, label?, paused?YesNo
update_model_tierRename a model tier, rewrite the guidance that says when to choose it, move it to another rank among the tiers of its kind (1 is the lightest), make it the default stella runs on when a turn names no tier, or choose whether Oxagen's shared key or the organization's own model key pays for its stella turns.tier, name?, guidance?, rank?, isDefault?, usesSharedKey?YesYes
update_org_settingsUpdate the active organization's profile settings (partial): name, slug, avatar, website, industry, and employee size.name?, slug?, avatarUrl?, website?, industry?, employeeSize?YesNo
update_sso_providerChange an SSO provider's display name, groups claim, or OIDC or SAML settings.providerId, displayName?, groupsClaim?, config?YesNo
verify_model_credentialCheck a model-vendor API key against the vendor.provider?, apiKey?, baseUrl?, toolProbeModel?, modelMap?YesNo
verify_sso_domainCheck the DNS TXT record that proves the organisation owns an SSO provider's email domain, and mark the domain verified when the record matches.providerIdYesNo

Plugins

ToolWhat it doesInputsWritesApproval
add_plugin_registryAdd an MCP registry source for the workspace (any registry implementing the MCP Registry OpenAPI).name, baseUrlYesYes
browse_plugin_catalogSearch and filter the plugin marketplace by type, text, transport, and auth kind.pluginType?, search?, categories?, transportTypes?, authKind?, installed?, limit?, offset?YesNo
get_auth_alertsRead the org MCP auth-alert notification setting: which org roles receive alerts and whether email is sent.NoneNoNo
get_catalog_pluginGet full detail for one catalog server by name+version, fetched live from the workspace's enabled registries.name, version?NoNo
get_plugin_schemaFetch the typed config schema for a connector plugin, used to drive dynamic form rendering during install and configure flows.pluginIdYesNo
install_pluginInstall a plugin into this workspace.pluginType?, pluginId?, custom?YesYes
install_plugins_bulkBulk install catalog or custom plugin servers to the org allow-list.itemsYesYes
list_plugin_registriesList MCP registries for the workspace.NoneNoNo
list_plugin_versionsList version history for a connector plugin including changelog entries and breaking-change flags.pluginId, limit?, includeChangelog?NoNo
list_pluginsList installed plugins for this workspace.pluginType?NoNo
reauth_plugin_credentialReturn the OAuth authorization URL to initiate re-authentication for a plugin credential that has expired or been revoked.orgListingIdNoNo
remove_plugin_registryRemove a workspace MCP registry source (including the default: removing the default promotes the most-recently-created remaining registry, if any).registryIdYesYes
revoke_plugin_credentialRevoke and delete the stored credential (OAuth tokens or secret) for an installed plugin server in this workspace, so the workspace must re-authenticate before the server can be used again.orgListingIdYesNo
set_auth_alertsUpdate the org MCP auth-alert notification setting (which roles receive alerts and whether email is sent).sendEmail, rolesYesYes
set_plugin_enabledTurn an installed plugin on or off.scope, orgListingId, enabledYesYes
set_plugin_secretStore or update an encrypted credential (API key or OAuth token) for a plugin server in this workspace.orgListingId, authKind, secret?, accessToken?, refreshToken?, issuer?YesYes
sync_plugin_catalogTrigger an immediate sync of the MCP registry catalog for the workspace.fullSync?YesNo
uninstall_pluginSoft-delete a plugin listing from this workspace and remove all dependent MCP server rows.orgListingIdYesYes
validate_plugin_schemaValidate a connector plugin config object against its schema before install or configure.pluginId, authSchemeId?, configYesNo

Preferences

ToolWhat it doesInputsWritesApproval
get_user_preferencesRead the calling user's UI and model preferences, and their email switch per notification eventNoneNoNo
get_workspace_user_preferencesRead the calling user's per-workspace coding-agent defaults: preferred default repository connection and its owner/repo slug, default agent, and whether the one-time repo-default prompt has been shown.NoneNoNo
set_preferencesSet the calling user's account preferences (locale, theme, timezone, appearance, input behaviour, default text model and the email switch per notification event) as a partial write, and return the whole set after it.locale?, theme?, timezone?, fontSize?, density?, enterToSubmit?, pendingPromptBehavior?, defaultTextTier?, defaultTextModel?, notifications?YesNo

Prices

ToolWhat it doesInputsWritesApproval
list_price_entriesList the price book this organization is priced against: every provider list price effective at an instant and the organization's negotiated rows, in integer micros per million units with the window each is effective over.at?, includeScheduled?, limit?, offset?NoNo
list_unpriced_modelsList the models this organization has run that the price book cannot price: the model, its vendor, how many calls and tokens it has run in the window, and which token classes are missing a price.since?, at?NoNo
remove_price_entryEnd this organization's negotiated rate for one model and token class at an instant, so every frame from then on is priced at the provider list price again.provider, model, tokenClass, region?, at?, scheduledEntryId?, cancellationToken?, confirmUnpriced?YesYes
set_price_entrySet this organization's negotiated rate for one model and token class, in USD per one million units, effective from an instant.provider, model, tokenClass, region?, modelAliases?, usdPerMillion, additionalRates?, effectiveFrom?YesYes

Privacy

ToolWhat it doesInputsWritesApproval
erase_dataRequest erasure of personal or organizational data (GDPR Article 17, the right to erasure).scope, orgId?, confirmYesYes
export_dataRequest a machine-readable ZIP export of personal or organizational data (GDPR Article 20, the right to data portability).scope, orgId?YesYes
get_export_statusRead the status of one of the calling user's own data exports.exportIdNoNo

References

ToolWhat it doesInputsWritesApproval
search_referencesTenant-scoped autocomplete search across every referenceable platform object: connected repositories and branches, code-graph files/directories, agents, skills, agent tools, MCP servers, capabilities, and knowledge-graph nodes/edges.query?, types?, slug?, limit?NoNo

Repositories

ToolWhat it doesInputsWritesApproval
get_main_repositoryThe workspace's main repository, whether a GitHub App installation is attached, and the links that expire for connecting GitHub or changing which repositories the installation reaches.NoneNoNo
get_repository_treeRead what one of the workspace's repositories holds under .oxagen/ and steering/ on its production branch: the head commit, every path, workspace.toml, the governance file and its mode, and any open init pull request.bindingIdNoNo
get_steering_repoRead the workspace's steering repo: its provisioning status and step, the repository, the published version, its settings health, and each setting that differs.NoneNoNo
import_repository_configOpen a steering PR that imports the harness files of a code repository the workspace already links: records, whole skills and Cedar policies from the Import step's selection.provider?, owner, name, importYesYes
import_workspace_steeringMove the workspace's steering from .oxagen/ in the repository it binds to a steering repo, and open the steering PRs a person merges.ruleKinds?, constraintEffects?, startFresh?, connection?, resetConnection?YesNo
link_repositoryOpen a steering PR that links a GitHub repository to the workspace.provider?, owner, name, import?YesYes
list_code_repository_findingsList the instruction-file statements in the workspace's linked code repositories that repeat or contradict an active steering record.NoneNoNo
list_forge_pull_requestsList the workspace's stored pull requests with their commits, contributors, and shipped lines.pullRequestId?, limit?, offset?, state?, view?NoNo
list_github_installationsThe GitHub App installations the workspace's stored GitHub authorization can reach, the set attach_github_installation will accept.NoneNoNo
list_installation_repositoriesThe repositories the organization's GitHub App installation exposes to this workspace, with the other workspaces that hold each one.NoneNoNo
list_org_installation_repositoriesThe repositories the organization's GitHub App installation exposes, read at organization scope so a person creating a workspace can pick them.NoneNoNo
list_repositoriesList the workspace's repositories (its one main repository and every linked one), with each one's role and approved default ref.NoneNoNo
list_steering_repo_destinationsList the GitHub organizations, personal GitHub accounts, and GitLab groups where Oxagen can create a new workspace's steering repo.slug?NoNo
list_working_copiesList the directories the CLI linked to this workspace, with machine, path, repository, branch, head, the state of .oxagen/, the commit last pulled and when each was last seen.limit?NoNo
open_init_prAdd Oxagen to one of the workspace's repositories: open a pull request from oxagen/init that adds the .oxagen/ tree with the reviewed workspace.toml and governance.toml.bindingId, governanceMode, workspaceToml, governanceTomlYesYes
parse_repository_configRead the agent harness files on a code repository's default branch and propose what each becomes: steering records and whole skills scoped to the repository, Cedar policies from settings files, MCP server rows with no key values, and memories from personal files.provider?, fullName, paths?NoNo
promote_instruction_to_steeringPropose a new version of the steering record an instruction-file statement contradicts, with the statement as its text, and open the suggestion's steering PR.finding_idYesYes
repair_steering_repoPut every prescribed setting back on the workspace's steering repo, then read the settings again and answer the health that read finds.NoneYesYes
scan_repository_configList the agent harness files on a code repository's default branch: instruction and rule files, skills, commands, subagent files, settings files and MCP configs, each with its harnesses, kind, blob sha, size and a fixture flag.provider?, fullNameNoNo
set_production_branchConfirm or change the production branch of one of the workspace's repositories.bindingId, branchYesYes
set_workspace_repositoriesReplace the workspace's repository set with the repositories named.repositoriesYesYes
unlink_repositoryUnlink a linked repository from the workspace.bindingIdYesYes

Repository sync

ToolWhat it doesInputsWritesApproval
configure_repoSet repo-specific filters, sync cadence, and field mappings.repoId, recordTypes?, pathFilters?, labelFilters?, syncCadence?, pollingIntervalSeconds?, fieldMappings?YesNo
get_ci_statusRead CI check-run and commit-status results for a ref in a GitHub repository.owner, repo, refNoNo
get_prRead a GitHub pull request's summary, diff stats, comments, and CI status.owner, repo, numberNoNo
get_pr_diffRead the per-file unified-diff patches for a GitHub pull request.owner, repo, numberNoNo
get_repo_metricsGet sync statistics and metrics for a repository connection.repoIdNoNo
list_branchesList branches in a GitHub repository, including each branch's SHA, protection status, and which one is the repository's default branch.owner, repoNoNo
pause_repoPause automatic syncing for a repository connection.repoIdYesNo
resume_repoResume automatic syncing for a paused repository connection.repoIdYesNo
sync_repoTrigger incremental or full re-index of a repository connection.repoId, mode?, recordTypes?YesNo

Roles

ToolWhat it doesInputsWritesApproval
assign_member_roleGive a person a custom IAM role: an organization role across the organization, or a workspace role in one workspace (workspaceId, or the call's workspace).roleId, userId, workspaceId?YesYes
create_roleCreate a custom IAM role from area levels (none, read, write, write_with_approval per catalog area, plus spend authority on an organization role) or from catalog permission ids.name, scopeKind, description?, permissions?, levels?, spendAuthority?, home?YesYes
delete_roleDelete a custom IAM role and its grants.roleIdYesYes
list_iam_rolesList the org's IAM roles with their capability grants (allow/deny/require_approval) and the number of principals assigned to each.scopeKind?, includeGrants?, includeHolders?, limit?, offset?NoNo
set_role_grantsReplace a custom IAM role's grants with area levels (none, read, write, write_with_approval per catalog area) or a set of catalog permission ids, and optionally set spend authority on an organization role.roleId, permissions?, levels?, spendAuthority?, description?YesYes
unassign_member_roleTake a custom IAM role from a person: an organization role, or a workspace role in one workspace (workspaceId, or the call's workspace).roleId, userId, workspaceId?YesYes

Router

ToolWhat it doesInputsWritesApproval
get_routing_policyRead the effective market-router policy for the current scope (mode, verified-success threshold, min samples, window, tier-escalation) plus its provenance (workspace / org / default).NoneNoNo
preview_routing_decisionDry-run the market router for a prompt: derive its task class, read observed outcomes, and return the full decision (chosen model + tier, rationale, source, and the ranked audit trail of the models it weighed) under the effective policy plus any overrides.prompt, fileCount?, crossPackage?, taskClass?, mode?, successThreshold?, minSamples?, windowDays?, escalateOnRejection?NoNo
set_routing_policySet the market-router policy for this org or workspace (partial update).scope?, mode?, successThreshold?, minSamples?, windowDays?, escalateOnRejection?YesYes

Run control

ToolWhat it doesInputsWritesApproval
dispatch_commandQueue a pause, resume, cancel, steer or message command for one run, an agent's live runs, or every live run in the workspace, with a delivery mode on steer and message.target, command, payload?, reason?, expiresInMs?, batchId?YesYes
list_commandsThe delivery report for one run, or for the commands one broadcast queued: every command, newest first, with its run (or its agent, for a steer held for an idle agent's next run), its issuer, its text, its status, the requested and achieved delivery mode, and the frame an applied command landed on.runId?, commandIds?, limit?NoNo
pause_workspace_runsQueue a pause for every live wrapped run in the workspace that its host can reach, as one governed decision with one audit event, and answer which runs took it and which were skipped and why.reasonYesYes

Runs

ToolWhat it doesInputsWritesApproval
edit_runSet or clear the name and summary a person gives a run.runId, name?, summary?YesNo
get_change_setGet the pull requests a run, a work order, a work item, or an issue produced, each with its latest stored revision, files, and the runs credited with its lines, and their change rolled up by repository.scope, idNoNo
get_commit_diffGet one commit's own diff from Oxagen's store, split into files and checked against the hash recorded when it was captured.provider, repository, sha, paths?NoNo
get_revision_diffGet one pull request revision's diff from Oxagen's own store, split into files, checked against the hash recorded when it was captured.revisionId, paths?NoNo
get_runRead one run's header and one page of its frames, each with its body reference, from an opaque cursor, optionally waiting for a new frame.runId, framesAfter?, sessionUuid?, chainsAfter?, frameLimit?, waitMs?NoNo
get_run_chainRead what makes one run's record tamper-evident: the hash rule, the Merkle root, each point where the agent's computer locked the record, the sequence and body gaps the recording shows, the run's final lock, and the replay-grade ladder with the reason each rung is or is not reached.runIdNoNo
get_run_contextRead what one run's model requests carried: each request's window as system, steering, tools, context and conversation blocks with their bytes and their share of the prompt tokens the vendor reported, each block's tokens summed over every window the run recorded, the model calls recorded with no window, and the steering assembler's budget, spend, and included and cut counts.runIdNoNo
get_run_costRead one run's cost rollup: total cost with its basis, tokens by class, cache hit rate, turns, steps and how many of them advanced the run, model and tool calls, and the per-model breakdown (cost by token class, cache saving, whether any call went unpriced, and the calls, tokens and cost of the cache keep-alives the model proxy sent) and per-tool breakdown with each tool's result tokens and their estimated cost, the standing context each call after the first re-sent by source (tool definitions, steering, context frames) with its estimated cost, the tokens each of those three sources took over every call, marked as an estimate while the run is still open; null until the rollup has rebuilt the run from its frames, with provisional per-model figures for a wrapped run in the meantime.runIdNoNo
get_run_exportRead one run export: its status, the bundle's hash and size once it is built, the error if the job failed, and a download URL that expires.exportIdNoNo
get_run_frame_bodyRead the redacted body of one frame of a run by its sequence, and by its chain for a subagent's frame: the content type and bytes when the workspace retained bodies, the hash and no bytes under digest_only.runId, seq, sessionUuid?NoNo
get_run_issuesRead the issues one run worked on: the task it was admitted for, the issues its pull requests close, and the issues its frames name, each with its state as the forge reads it now, whether that state could be read, what the run did to it, and the frames that show it.runIdNoNo
get_run_transcriptRead one run as a transcript at a zoom level (turns, steps or everything), derived on the server from its frames and retained bodies: each step one entry carrying the request and the result it was made with, the decision folded into it, and its own and the run's cumulative cost.runId, zoom, kinds?, after?, before?, from?, text?, seqs?, query?, limit?, chains?, subagent?NoNo
get_run_turnsRead one run's per-turn ledger over every frame it recorded: each turn's model and tool steps, frames, cost and the cost so far, and the input tokens its model calls reported, uncached and read from the cache.runIdNoNo
list_recent_runsThe newest runs of this workspace for the command menu: id, agent key, status and start time, the in-app agent's own turns excluded.limit?NoNo
list_run_commitsList the commits a run made, newest first, from Oxagen's own store: each commit's subject, kind, written lines, how Oxagen knows the run made it, and the pull requests that hold it.runId, limit?NoNo
list_runsList the runs recorded in this workspace, newest first: root sessions in one cursor-paged list, with the operator, the model, the machine, status, counts and metered cost each row recorded.limit?, cursor?, pullRequests?, status?, tier?, replayGrade?, query?, agentKey?, own?, sort?, offset?, count?, countLive?NoNo
post_run_checkpointPost a short progress update, as the agent working a send, after each step of the plan: the step, what changed, what passed, what comes next, and an optional ask.work_order_id, step, changed, passed, next, ask?YesNo
seal_runEnd a live or idle-closed wrapped run now and lock its record, and queue a kill for its agent on the host it runs on when that host can collect a command.runId, reason?YesYes

Runtimes and sandboxes

ToolWhat it doesInputsWritesApproval
check_sandbox_templateStart a short sandbox from a sandbox runtime's ready template, with the runtime's size, egress allowlist and environment and no agent, to check that each service starts and which toolchains are on the PATH.runtimeIdYesNo
connect_modal_accountConnect this workspace's own Modal account for agent sandboxes: the Modal workspace, the environment, and a service user token.modalWorkspace, environment, tokenId, tokenSecretYesNo
create_runtimeName a runtime in this workspace: a laptop, a VM or a cloud workspace agents run on.name, slug?, containmentRequired?YesYes
create_sandbox_runtimeSet up a sandbox runtime in this workspace for agent sandboxes on the workspace's own Modal account: the Modal environment, the template, the egress allowlist, the environment, and the sandbox size and limits.name, slug?, hostOperator, hostCredentialId?, modalEnvironment?, gpu?, region?, template, environmentId?, egressAllow?, vcpu?, memoryMib?, diskGib?, maxRunSeconds?YesNo
delete_runtimeDelete a runtime for good.runtimeIdYesYes
disconnect_modal_accountDisconnect this workspace's Modal account and delete its token from the vault.NoneYesNo
generate_sandbox_templateGenerate a sandbox template from the workspace's linked repositories, or from a starter template: a Dockerfile, a start script per service, and a README under sandbox/ in the steering repo.preview, starter?YesNo
get_modal_accountRead this workspace's Modal account for agent sandboxes: whether the token connected at its last check, the Modal workspace, the environment and the token id.NoneNoNo
get_sandbox_runRead one sandbox run by its sandbox id or its run id: its state, the runtime and host that run its sandbox, the Modal workspace and environment, the provider's sandbox id, how many times it continued in a new sandbox, and its estimated cost.sandboxId?, runId?NoNo
get_sandbox_template_testRead a template test that check_sandbox_template started: running with the output so far, then passed or failed with each service and toolchain and the log.runtimeId, testIdNoNo
launch_sandbox_runStart a run on your own agent in its own sandbox on a sandbox runtime.harness, workspace, repo?, repoProvider?, branch?, runtime?, prompt?, workOrderId?, launchedVia?YesNo
list_runtimesList the runtimes named in this workspace, each with its kind (local or sandbox), the live agents on it and their harness, the live host enrollments bound to it, when a host last reported, and whether it requires the contained launcher.id?NoNo
list_sandbox_runsList your own agents on this workspace's sandbox runtimes, each with its live runs, and your own sandbox runs, live first and then the newest.limit?NoNo
list_sandbox_runtimesList the sandbox runtimes in this workspace, each with its host operator, region, template builds, egress allowlist, environment, and sandbox size and limits.id?NoNo
stop_sandbox_runStop one of your sandbox runs and free its sandbox.sandboxId?, runId?YesNo
update_runtimeRename a runtime, change its slug, or change whether every agent on it must run under the contained launcher.runtimeId, name?, slug?, containmentRequired?YesYes
update_sandbox_runtimeChange a sandbox runtime's name, template, egress allowlist, environment, sandbox size or limits.runtimeId, name?, hostCredentialId?, modalEnvironment?, gpu?, template?, environmentId?, egressAllow?, vcpu?, memoryMib?, diskGib?, maxRunSeconds?YesNo

Secrets

ToolWhat it doesInputsWritesApproval
delete_secret_keySoft-delete a vault secret key and hard-remove all of its per-environment overrides.keyIdYesYes
export_secretsExport the resolved secret set for an environment as decrypted key/value pairs and rendered .env text.environmentId?, keyIds?NoYes
import_env_secretsParse pasted .env text and (optionally) upsert keys + set values for the workspace defaults or a chosen environment.text, environmentId?, commit?YesYes
list_secret_keysList vault secret keys for the workspace with masked metadata (which environments override each key).NoneNoNo
reveal_secretReveal a single secret's plaintext value (override ?? default) for an environment.keyId, environmentId?NoYes
set_secret_valueSet a secret's value override for a specific environment.keyId, environmentId, valueYesYes
unset_secret_valueRemove a secret's per-environment override so it falls back to the key's default value.keyId, environmentIdYesYes
upsert_secret_keyCreate or update a vault secret key (workspace root).key, sensitive?, memo?, defaultValue?YesYes

Skills

ToolWhat it doesInputsWritesApproval
get_skill_configRead the published skill resolution configuration and one page of its immutable version history, newest first.version?, limit?, cursor?NoNo
list_skillsList the skills this workspace's harness sessions reported when they started, over a window of session start times: each name with the sessions that reported it, their harnesses and when it was first and last seen, plus the window's session count and how many sessions reported no inventory.windowDays?, cursor?, limit?NoNo
summarize_skill_searchSummarize approved skill resolution at a published configuration version.version, queryNoNo
update_skill_configPropose skill configuration in a pull request, import the existing approved repository configuration once, or publish a merged configuration pull request after reading back its commit.action, text?, pullRequestNumber?YesYes

Spend

ToolWhat it doesInputsWritesApproval
create_cost_centerAdd a cost-center label to this organization's list, so agents and workspaces can be charged back to it.label, description?YesNo
delete_cost_centerDelete a cost-center label from this organization's list.labelYesYes
dismiss_findingDismiss an open finding without applying its fix (org Owner); later passes cite only runs that start after the dismissal.findingIdYesNo
export_cost_center_statementExport this organization's monthly chargeback statement as CSV: one line per cost center, and one for spend with no cost center, with runs, cost in micros and in cents, the basis, and the run ids that make up each line, plus the organization total they sum to.month, format?NoNo
export_statementExport this workspace's monthly spend statement as CSV: one line per operator, agent, model, tool, task and cost center (spend with no cost center on its own line) with runs, calls, cost in micros and in cents rounded half to even once, the basis, and accepted spend.month, format?, rows?NoNo
get_finding_evidenceGet the evidence behind one finding: the calls it cites and how many the counterfactual covers, the tokens and money they cost against the counterfactual, and the cited runs with the largest saving.findingIdNoNo
get_model_class_replayGet the replay of one model class fit finding: its latest replay with each sampled run, the estimate it was approved at (each sampled run's recorded first turn priced on the smaller model) and what the replay of those first turns cost once every run finished, the names of the people who may approve a replay (the workspace's Admins and the organization's Owners), and, for a caller who may approve, the plan an approval would start now with its sample size and estimated cost.findingIdNoNo
get_no_progress_limitRead this workspace's no-progress limit: the identical calls in a row that stop a run counting as progress and its mode, whether it is the default, the steering PR that waits to change it, and the loops that reached it over a day range, newest first.periodNoNo
get_sandbox_spendRead what sandbox runs on the workspace's Modal account cost over a day range, by sandbox runtime.from, toNoNo
get_spendRead this workspace's spend over a day range, rolled up by operator, agent, model, tool, task, cost center or MCP server, with every figure in micros and the basis that says who observed it, the period total with accepted spend, the spend by day, each row's costliest runs, and on a row of whole runs the tokens those runs spent on tool definitions, context frames, steering and tool results, and their request windows summed block by block, conversation and system included, and on an agent or operator row the lines its runs' own commits shipped, their rework, and the spend per shipped line, and the period's cache keep-alives (the calls the model proxy sent to keep a prompt cache warm) with their cost and the runs that sent them.period, groupByNoNo
get_spend_drillRead one operator, agent or tool's spend over a trailing window in this workspace: the daily series, the average per call and per run, its share of the workspace's spend, its tokens by class with the cache hit rate, the tools its runs called, and its spend split by agent, operator and model, every figure in micros with its basis.kind, key?, own?, days?NoNo
list_cost_centersList this organization's cost-center labels, the labels spend is charged back to, with how many agents and workspaces name each.NoneNoNo
list_findingsList this workspace's costed findings ranked by the money at stake (open by default; applied or dismissed most recent first), each with its saving measured minus counterfactual over the runs it cites, its confidence, why and the fix, plus the total saving, its share of the priced spend over the findings' window and that saving annualised.status?, runId?, level?, subject?, kind?, own?, cursor?NoNo
list_wasteList this workspace's wasted spend over a day range by cause, with the runs that prove each cause: the requests open findings waste whole and the measured wasted part of other requests, which sum to the wasted spend headline.periodNoNo
record_finding_fixRecord that the fix an open finding names was applied (org Owner): the finding becomes applied with the request id of this call, and later passes cite only runs that start after it.findingIdYesYes
request_model_class_replayApprove a replay of a sample of one model class fit finding's runs on the smaller model, at the estimated cost get_model_class_replay showed (workspace Admin or org Owner).findingId, planDigest, plannedAt, estimatedYesNo
set_cost_centerCharge a workspace, named by its public id or else the active one, or one agent in the active workspace, back to a cost-center label from the organization's list, or clear the label.target, workspaceId?, agent?, costCenterYesNo
set_no_progress_limitChange this workspace's no-progress limit: the identical calls in a row that stop a run counting as progress, and whether reaching it only records the run (observe) or also pauses it (enforced).repeats?, mode?, clear?YesYes

Steering and memory

ToolWhat it doesInputsWritesApproval
append_recordAppend one steering record to the workspace (an observation, memory, knowledge claim, evidence, context-use record or record suggestion), content-addressed by record_hash.kind, lineageId, statement, sharingScope?, sourceRefs?, evidenceLinks?, proposal?YesNo
commit_markdown_importOpen one steering PR on steering/import-<date> with the Markdown import's records and Cedar policies marked add, and store its memories marked add as waiting memories with capture import.records?, policies?, memories?YesYes
dismiss_memoriesDismiss workspace memories so the curator does not propose their statements again, or restore dismissed memories with restore: true.memory_ids, restore?, reason?YesNo
drop_memory_recordDrop one proposed steering record from an open memory PR: pushes a commit to the PR's branch that deletes the record's file.number, pathYesNo
get_published_steeringRead the published .oxagen/ tree of the workspace's main repository (or a named one) at its production branch head, with every file's text, so a machine can write the steering in force.bindingId?NoNo
get_recordGet one steering record: a published record by ctr_ id or by record ID (such as ctx.release.notes-format) with its versions and publishing PR, or an appended record by cta_ id with its provenancerecordIdNoNo
get_steering_deliveriesRead included and cut steering records from the latest verified manifest of recent runs.days?, limit?NoNo
get_steering_freshnessThe workspace's steering version, the commit its newest record was published at, its production branch, and whether the workspace requires agents to auto-sync .oxagen/ or refuses prompts on stale steering.NoneNoNo
get_steering_layoutWhich of the two repository layouts the workspace's bound repository uses: steering (steering/governance.toml on its production branch) or main-repo (.oxagen/rules/).NoneNoNo
get_steering_prGet a suggestion's steering PR: state, branch, checks with their outcomes, the managed blocks the latest check run found drifted, the approvals given in Oxagen at the checked head, what merge will do, and the promotion event once mergedproposalIdNoNo
get_steering_pr_diffGet the files a suggestion's steering PR changes, each as it is on the production branch and on the pull request's head, read from GitHub or GitLab now.proposalIdNoNo
get_workspace_memoryRead one workspace memory with its full text, its source, the runs that used it, and the memory PR that last cited it.memory_idNoNo
list_memory_pr_recordsList the records one memory PR proposes or archives, each with the memories it cites, and which proposed records were dropped from the PR's branch.numberNoNo
list_proposalsList the workspace's record suggestions with their support and steering PR state, newest first, optionally narrowed to one status, one state (open, merged or closed) or one record IDstatus?, state?, lineageId?, limit?, offset?NoNo
list_recordsList the workspace's published steering records with kind, force, constraint effect, scope, record ID, commit, path, token count and weekly price, filtered by kind, scope, status or record IDkind?, sharingScope?, status?, lineageId?, limit?, offset?, priced?NoNo
list_steering_recordsList the steering records registered in the active workspace, each with its lifecycle status and pinned active versionstatus?, limit?, offset?NoNo
list_steering_skillsList the skills in the workspace's published steering with each one's source (imported skill, command or subagent, proposed, from a run, or written in Oxagen), the repositories it applies to, whether it runs as a subagent, and the built-in actions its Cedar tool policy permitsNoneNoNo
list_workspace_memoriesList the workspace's memories ranked by uses, then the newest use, then the newest capture, with memories that say the same thing grouped.states?, harness?, agent?, repository?, type?, limit?, offset?NoNo
parse_markdown_importRead up to 25 Markdown files and propose steering records, Cedar policies, and memories from them.documentsNoNo
promote_memoriesPromote waiting workspace memories into draft steering records.drafts, same_text?YesNo
propose_recordOpen a suggestion for a record ID: the record it should become (kind, force, constraint effect, scope, statement), the rationale and the supporting runs, agents, records and evidence.record, rationale, source?, support?, createOnly?YesNo
propose_steeringOpen a steering PR on the workspace's steering repo from files, a title, your rationale, and frames of this run as evidence.title, rationale, evidence?, filesYesNo
read_steeringRead one steering record or skill file.runId?, lineage, file?NoNo
restore_managed_blockRestore the Oxagen managed block in AGENTS.md, CLAUDE.md, or README.md on an open steering PR's branch, as one commit, from the production branch, keeping every line outside the block.proposalId, pathYesYes
revert_steering_prOpen a steering PR that undoes a merged one: each path the merge changed goes back to what the production branch held before it, and the ledger is left as it is.proposalIdYesYes
search_steeringFind steering records and skills by words, kinds, or code repository.runId?, query?, kind?, kinds?, repository?, limit?NoNo
suggest_memory_draftsSuggest a kind, a force, and a constraint's effect for each memory a person is about to promote, with the classifier parse_markdown_import uses.memory_ids, statements?NoNo

Tool registry and Studio

ToolWhat it doesInputsWritesApproval
draft_studio_descriptionDraft a description for one tool in a Studio server folder with the in-app agent.server, toolNoNo
get_studio_discoveryRead one server folder's latest tool discovery: its status, what asked for it, when it ran, its outcome, the sync steering PR, and the tools the gateway withholds until that PR merges.serverNoNo
get_studio_draftRead Studio's draft for one server folder: the staged edits, server.toml, a summary of the source, the revision, and the steering PR Review opened from it.serverNoNo
get_studio_listingRead the tool listing of one Studio draft for a server that runs on machines: whether a machine has listed its tools yet, which machine answered, the tools it listed with the classification Studio suggests for each, and why a listing failed.serverNoNo
get_studio_serverRead one server folder on the steering repo's production branch: its source, auth mode, environments, exposure, sync schedule and last discovery, each tools.toml key's shaping, the tool catalog list_studio_tools returns, and each key's agent feedback over the last 30 days: calls, schema rejections, error results, retries, and reflection notes.serverNoNo
import_toolsImport a registered MCP server's pinned tools into the workspace registry, or publish hand-authored declarations against it: one immutable tool version per changed manifest, idempotent on an unchanged one; stamps the server's last import.serverId, tools?, declarations?YesYes
list_studio_findingsList the tool checks' findings on one server folder: the saved draft, or the production folder when there is no draft.serverNoNo
list_studio_toolsList one server folder's tools: each tools.toml key with its confirmed classification, then each tool the last discovery found that no key imports, with a suggested classification.serverNoNo
list_tool_declarationsList the tool declarations registered in the active workspace, each with its pinned active version's schema facts (read-only flag, risk grade, policy group, checksum)source?, limit?, offset?NoNo
list_tool_versionsList the workspace registry's active tool versions with their safety classification, schema origin and hash, the kill switch that stops each one today, and 30-day call counts; cursor-paged, optionally filtered by impact, by the server the tools were imported from, or both.category?, serverId?, limit?, cursor?NoNo
migrate_tools_to_steeringMove the workspace's connected MCP servers into its steering repo by opening the migration steering PR.NoneYesNo
open_studio_reviewOpen one steering PR from Studio's draft for a server folder: server.toml, tools.toml, tools.lock.json, the vendored definition, and saved tests on the branch tools/<server>.server, revision?YesYes
revoke_relayRevoke a relay by name in this workspace.nameYesYes
run_studio_selectionRun a server folder's selection tests: ask the workspace's model to pick one of the server's tools for each task in tests/selection.jsonl, and count the hits and misses.serverNoNo
save_studio_draftSave Studio's staged edits to one server folder as a draft: tools to import or remove, their classification, description, result cap, and paging, saved tests, the server's exposure mode, server.toml, and the definition or tool list they import from.server, serverId?, ops, serverToml?, source?, revision?YesNo
set_mcp_credentialCreate or replace a named credential in this workspace: a service secret, or an OAuth client's id and secret.name, kind, secret?, clientId?, issuer?, clientSecret?YesYes
set_tool_classificationSet a tool version's safety classification (risk grade, side-effect class, egress class, impacts, measures and data classes), recording who reclassified it and why.toolVersionId, riskGrade, classification, reasonYesYes
set_tool_stateMake tools available to toolbelts or take them out of every belt, and set whether each starts active in the All tools belt.toolIds?, serverId?, available?, defaultActive?YesYes
start_studio_discoveryAsk for one server folder's tool discovery now, whatever its sync schedule says.serverYesNo
start_studio_listingAsk one machine in a Studio draft's source.machines to start the draft's server, pinned, and list its tools.server, revision, pin?YesYes
try_studio_toolSend one call to one tool in a Studio server folder, against one of its environments, after the workspace's policies and kill switches allow it.server, tool, environment, arguments, agent?YesNo
ToolWhat it doesInputsWritesApproval
load_toolsReturn the full definitions of capabilities the in-app agent may call, by name: description, input schema and the governance facts a caller plans by.namesNoNo
search_toolsRank-search the capabilities the in-app agent may call and the workspace's runs, agents and pending approvals from one index; at most eight rows with ids the caller navigates from.query?, kinds?NoNo

Toolbelts

ToolWhat it doesInputsWritesApproval
clone_toolbeltCopy a toolbelt into a new belt you can edit: every tool the source holds, each active as it is in the source.toolbeltId, name, slug?, description?YesYes
delete_toolbeltDelete a custom toolbelt that no live agent carries.toolbeltIdYesYes
get_toolbeltRead one toolbelt with every tool in the workspace grouped by server: whether the belt holds each server and tool, whether each tool is active in the belt, and whether an owner or admin made it available.toolbeltIdNoNo
list_toolbeltsList the workspace's toolbelts, its All tools belt first, with each belt's tool, active tool, server and agent counts, and how many tools the workspace has made available.NoneNoNo
update_toolbeltRename a custom toolbelt and edit its tools: remove or add a server, or turn a server or a single tool on or off in the belt.toolbeltId, name?, description?, changes?YesYes

Work items

ToolWhat it doesInputsWritesApproval
claim_work_criterionClaim, as the agent working a send, that one criterion of the brief is met on the pull request's head commit.item_id, work_order_id, criterion_id, head_sha, textYesNo
create_work_itemEnter a work item by hand: a subject, an optional description, labels and kind, and the repository it belongs to.subject, description?, labels?, repository?, workstream?, idempotency_key?, kind?, assignee_member_id?, status?, priority?, mention_lineages?, attachment_ids?YesYes
get_work_autonomyRead the workspace's autonomy scopes from work/work.toml, each with its level, operator, daily limit, and sample rate.NoneNoNo
get_work_fieldsRead the statuses, resolutions, and Priority and Type labels a work item takes, with the GitHub value and each other tracker's value the workspace maps to each one.NoneNoNo
get_work_itemRead one work item with its source revisions, triage, brief revisions, sends, pull request checks, acceptance, cost, and history.itemNoNo
get_work_prioritiesRead the priorities record triage ranks work by: its record ID, version, hash, and numbered rules, with triage's suggestions, corrections, and failures in the last 30 days.NoneNoNo
link_run_work_itemsLink the run making this call to work items after asking its operator.items, primary?, confirmed?, via?YesNo
list_run_link_suggestionsList the run and work item links waiting for a person, newest first: open suggestions, and links a rule made that nobody has kept or rejected.run_id?, item?, operator_id?, evidence?, automatic?, limit?, cursor?NoNo
list_work_collectorsList the workspace's work collectors with their repositories, health, last good read, failed reconciles in a row, and next check.NoneNoNo
list_work_itemsList the workspace's work items with each one's state, what it waits for, its latest send and required checks, and what its runs cost.status?, limit?, excerpt?, query?, assignee?NoNo
recommend_staffingRecommend the model tier and effort for one work item from the record: the pair similar runs in the last 30 days ran on, why, the median recorded cost, and a lighter choice with how often runs on it met their checks.itemNoNo
review_run_linkConfirm, reject, or remove one run's link to one work item.run_id, item, verdict, note?YesNo
revise_work_triageCorrect a work item's triage suggestion (priority, estimate, labels, predicted paths, acceptance criteria, model tier, effort) or its outcome.item_id, expected_version, reason, priority?, estimate_minutes?, labels?, claims?, criteria?, model_tier?, effort?, outcome?, duplicate_of?YesNo
search_work_itemsSearch the workspace's work items by meaning and by words, best match first, with each item's score and the query words it holds.query, states?, repository?, limit?NoNo
update_work_itemEdit a work item a person entered in Oxagen: its subject, description, labels, kind, repository, assignee or priority.item_id, expected_version, subject?, description?, labels?, kind?, repository?, assignee_member_id?, priority?, mention_lineages?, attachment_ids?YesYes

Workspaces

ToolWhat it doesInputsWritesApproval
add_workspace_memberAdd a member of the organization to this workspace as Admin or Member.userId, role?YesYes
answer_join_requestApprove a request to join this workspace as Member or Admin, or decline it with an optional reason.requestId, answer, role?, reason?YesYes
archive_workspaceArchive a workspace: it leaves the workspace lists, its slug stays taken and everything recorded in it stays readable.workspaceIdYesYes
create_workspaceCreate a workspace within the active tenant and start provisioning its private steering repo.name, slug, mainRepo?, repositories?, steeringRepo?YesYes
get_gateway_settingsRead the active workspace's agent gateway settings: the collection level, the policy mode its hosts run and how many run Enforce, the minimum containment tier, whether oxagen must hold the model keys, prompt redaction, the sensitive data screen, the trace drain collector, the budget breach action, the longest pause a replay plays, and how long run logs and audit records are kept.NoneNoNo
get_model_settingsRead the workspace-level model defaults (text tier and model)NoneNoNo
get_my_join_requestRead your own request to join a workspace: the open one, or the latest decline while you wait to ask again.workspaceIdNoNo
get_prompt_settingsRead the workspace prompt configuration: appended instructions and content-prompt overrides.NoneNoNo
get_steering_settingsRead a workspace's steering settings that save at once (the volatile steering budget, the workspace instructions, and the promotion threshold), and the open steering PRs that change its governance.toml settings.NoneNoNo
get_workspace_settingsRead the active workspace's general settings: name, slug, description, avatar, the effective consequence-role map for mandates, the two steering-freshness gates, the run summaries mode, the command reasons mode, the daily model budgets, and the run link thresholds.NoneNoNo
list_join_requestsList the open requests to join this workspace, oldest first, with each person and their note.NoneNoNo
list_workspacesList the workspaces inside an organization the authenticated user belongs to.orgSlug, includeArchived?NoNo
remove_workspace_memberRemove a person from this workspace.userIdYesYes
request_to_join_workspaceAsk to join a workspace you hold no role in, with an optional note.workspaceId, note?YesNo
send_workspace_inviteInvite a person by email to the organization, or, with a workspace role, to this workspace.email, role?, message?, workspace_role?YesYes
set_governance_modeSet the steering governance mode of a workspace by writing its governance file: the mode key of steering/governance.toml in a steering repository, or .oxagen/rules/governance.toml in a legacy one.workspaceId?, mode, applyImmediately?YesYes
set_steering_settingsChange a workspace's steering settings.reviewers?, alwaysOnTokens?, memoryBatchSize?, memoryRetireAfterDays?, memoryHalfLifeDays?, unreviewedPromotionMerges?, ledgerRotation?, volatileSteeringTokens?, instructions?, promotionThresholdRuns?YesYes
set_workspace_member_roleChange a person's role in this workspace to Admin or Member.userId, roleYesYes
update_gateway_settingsUpdate the active workspace's agent gateway settings (partial): the collection level, the policy mode every host in the workspace runs, the minimum containment tier, whether oxagen must hold the model keys, prompt redaction, the sensitive data screen, the trace drain collector, the budget breach action, and the longest pause a replay plays.collectionLevel?, enforceMode?, minTier?, keysHeld?, promptRedaction?, sensitiveScreen?, traceDrainEndpoint?, breachAction?, replayIdleSeconds?YesYes
update_model_settingsUpdate the workspace-level model defaults (partial update: only the fields you provide change).defaultTextTier?, defaultTextModel?YesNo
update_prompt_settingsUpdate the workspace prompt configuration (partial).additionalInstructions?, overrides?YesNo
update_workspace_settingsUpdate a workspace's general settings (partial): name, slug, description, avatar, the consequence-role overrides for mandates, the two steering-freshness gates, the run summaries mode, the command reasons mode, the daily model budgets, and the run link thresholds.workspaceId?, name?, slug?, description?, avatarUrl?, consequenceRoles?, steering?, runSummaries?, runEnrichmentEnabled?, commandReasons?, dailyBudgetUsd?, runLinks?YesNo
withdraw_join_requestWithdraw your own open request to join a workspace.requestIdYesNo

On this page