Oxagen Docs

Agent Tools

The canonical reference catalog of Oxagen agent tools — every callable capability, grouped by family, with surfaces (app · mcp · api), credit costs, and policies.

The canonical reference for everything the Oxagen agent can do. For the why and how — one registry, three call sites — see Agent Overview.

Each table below lists the tool name, the surfaces it's exposed on, the credit cost per successful call, and a one-line description. Costs and policies are pulled from the live registry; if a number here disagrees with the dashboard, the dashboard wins.


Capability platform

Every tool below is registered through one shared capability layer. Whether you call a tool from the in-app chat, an MCP client, or the REST surface, the same registry runs validation, permission checks, credit reservation, and result caching.

Surface foundationWhat it gives you
Typed kind classificationEvery capability declares read / write / generate / external_io / dispatch. Adapters render the right UI (e.g. confirmation cards for write) and downstream logs route by category.
Connection-scope bindingA capability that needs Google Workspace, a specific Kafka cluster, or any other external connection declares its connection_kind. The registry rejects the call in workspaces that haven't connected it, and auto-resolves when exactly one active connection of that kind exists. Ambiguity (zero or many candidates) returns a 409 with the candidate list so the caller can pass an explicit connection_id.
Idempotency keysPass an Idempotency-Key header on the REST surface (or the equivalent argument on MCP). A retried non-read capability returns the cached result for 24h instead of duplicating the side-effect. Pure reads ignore the key — their response is already deterministic.
Dynamic registrationExternal MCP servers and workspace-defined custom tools register into the same registry as built-ins, scoped to a single workspace. A dynamic capability shadows a static one of the same name for that workspace.

These four guarantees are why every tool in the tables below can be called identically from chat, MCP, and REST.


Ontology — read

The agent's most-used tools. Search, fetch, and list typed entities and relationships in your workspace knowledge graph.

ToolSurfacesCreditsWhat it does
ontology.searchapp · mcp · api1Hybrid (vector + keyword + label) search over workspace nodes
ontology.askapp · mcp · api5Natural-language question over the workspace; returns a grounded answer with node citations
ontology.get_nodeapp · mcp0Fetch a node by UUID or (file_path, name)
ontology.get_edgeapp · mcp · api0Fetch an edge by UUID
ontology.list_nodesapp · mcp0List nodes filtered by type with optional keyword
ontology.list_edgesapp · mcp0List edges filtered by type, source, or target
ontology.list_typesapp · mcp0List every node and edge type registered in the workspace
ontology.get_schemaapp · mcp1Return the workspace's typed schema for prompt grounding
ontology.run_cypherapp · mcp3Execute a read-only Cypher query against the Neo4j-backed graph
ontology.find_merge_candidatesapp · mcp2Find probable duplicate nodes within a type
ontology.family_treeapp · mcp · api2Walk relationships outward from a node up to N hops

Ontology — write

Typed writes against the graph. The agent uses these to record what it learned in a conversation so the next session has it too. Destructive writes (merge_nodes, delete_*) require explicit user confirmation in the chat UI.

ToolSurfacesCreditsWhat it does
ontology.create_nodeapp · mcp2Idempotent create of a typed node (exact-match dedupe; ambiguous matches prompt for confirmation)
ontology.update_nodeapp · mcp2Update node properties
ontology.create_edgeapp · mcp1Create a directed, typed edge between two nodes
ontology.update_edgeapp · mcp1Update edge properties
ontology.attach_typeapp · mcp1Add a type label to an existing node
ontology.add_aliasapp · mcp1Register an alternate name for a node so future searches resolve it
ontology.delete_nodeapp · mcp · api2Soft-delete a node
ontology.delete_edgeapp · mcp · api2Soft-delete an edge
ontology.delete_typeapp · mcp · api2Delete a node or edge type definition
ontology.rename_typeapp · mcp · api2Rename a node or edge type
ontology.merge_nodesapp · mcp5Merge two nodes; reassigns edges and aliases

Graph algorithms

Requires a Neo4j-routed workspace.

ToolSurfacesCreditsWhat it does
ontology.pagerankmcp3Top-k nodes by PageRank centrality
ontology.communitiesmcp3Partition the graph into communities via Louvain or label propagation
ontology.traversemcp3Enumerate paths reachable from a node within N hops

Code graph

Available once a GitHub connection has ingested code into the workspace. These tools traverse the typed code graph (File, Function, Class, Module, plus CALLS, IMPORTS, DEFINES, READS, WRITES edges) and are how the agent answers questions like "what calls processPayment and what tests cover it?".

ToolSurfacesCreditsWhat it does
code.find_symbolapp · mcp1Locate the canonical node for a symbol by name
code.read_symbolapp · mcp1Return the source body and metadata for a symbol
code.describe_symbolapp · mcp1Compose a short description of a symbol from graph context
code.callers_ofapp · mcp1List functions that call a target symbol
code.callees_ofapp · mcp1List functions called by a target symbol
code.references_toapp · mcp1List every reference to a symbol (calls, imports, attribute reads)
code.dependenciesapp · mcp1Direct dependencies (calls + imports) of a symbol
code.dependency_graphapp · mcp2Bidirectional dependency graph rooted at a symbol
code.dependency_pathapp · mcp2Shortest dependency path between two symbols
code.affected_byapp · mcp2Reverse traversal — every symbol affected by a change to the target
code.module_treeapp · mcp1Directory / module hierarchy of the workspace
code.repo_overviewapp · mcp1High-level summary of a repository — primary languages, top modules, hotspots
code.find_patternapp · mcp1Find symbols matching a structural pattern
code.find_issuesapp · mcp1Detect dead code, cycles, unused exports, missing tests
code.expertiseapp · mcp1Who has worked most on a symbol (blame + PR history weighted)
code.who_knows_aboutapp · mcp1Same, indexed by domain rather than symbol
code.co_changes_withapp · mcp1Symbols that historically change in the same commits
code.blame_enrichedapp · mcp1Blame info with author + PR + issue context attached
code.recent_changesapp · mcp1Recent commits touching a path or symbol
code.pr_contextapp · mcp1PR title, body, reviewers, and CI status for the commit that introduced a symbol
code.pr_historyapp · mcp1Every PR that touched a symbol or path
code.issue_contextapp · mcp1Linked issues / tickets discovered via PR description scrape
code.discussion_contextapp · mcp1Inline review comments and PR discussion attached to a symbol
ontology.explain_functionapp · mcp · api2Full signature + callees + exception types + tests in one call
ontology.impact_ofapp · mcp · api2Reverse traversal — what reads/writes/depends on a symbol
ontology.symbol_contextapp · mcp · api3One-call laser context: definition, callers, tests, recent changes

CI / test layer

Available when the workspace has a CI integration connected.

ToolSurfacesCreditsWhat it does
code.last_runmcp1Most recent CI run for a branch or PR
code.run_failuresmcp1Failing steps in a given run
code.tests_formcp1Tests that cover a target symbol
code.coverage_formcp1Line / branch coverage for a target
code.failing_testsmcp1Currently failing tests on a branch
code.flaky_testsmcp1Tests with high pass/fail flip rate
code.find_dead_codemcp1Symbols with no inbound references — focused single-concern list, unlike the mixed report from code.find_issues
code.find_cyclesmcp1Circular dependency chains — focused single-concern list, unlike the mixed report from code.find_issues

Code — write

The single primitive that lets an agent propose a code change rather than describe one. The agent opens a draft pull request against the target repo; nothing merges automatically.

ToolSurfacesCreditsWhat it does
code.apply_patchapp · mcp10Open a draft PR carrying a unified diff or list of (path, old, new) patches. Returns the PR URL and head SHA. Requires user confirmation in the chat UI.

Memory

Durable agent memory — patterns the agent has learned, procedures it has been taught, and recent work it should remember. See Agent Memory for the deeper model.

ToolSurfacesCreditsWhat it does
memory.recallapp · mcp · api1Hybrid retrieval of memory nodes for a prompt
memory.list_recentapp · mcp0Most recent work-memory nodes attached to a target
memory.writeapp · mcp1Persist a new memory node from the agent's working context
memory.rememberapp · mcp · api2Explicit "remember this" — promotes a finding to a durable memory node
memory.forgetapp · mcp · api2Erase a memory node (soft-delete, audit-logged)
memory.procedure_forapp · mcp · api1Retrieve a stored procedure by trigger pattern
memory.searchmcp1Semantic search across _mem:* action and pattern nodes
memory.contextmcp1Memory context for a given prompt (pre-execution injection)
memory.annotatemcp1Attach a manual annotation to a memory node

Agent sessions

Multi-agent coordination primitives. When two agents work the same workspace concurrently, these tools prevent them from stepping on each other's writes.

ToolSurfacesCreditsWhat it does
agent.start_sessionapp · mcp · api1Open a named session and return a session_id
agent.heartbeatapp · mcp · api0Keep a session alive; the reaper abandons sessions idle >60 min
agent.end_sessionapp · mcp · api1Close a session and cascade active claims to abandoned
agent.claim_workapp · mcp · api1Exclusive claim on a node + ancestors + descendants up to depth 5
agent.release_claimapp · mcp · api1Release a claim so another agent can pick the node up
agent.list_active_claimsapp · mcp · api0List active claims in the workspace
agent.record_findingapp · mcp · api1Attach a typed finding (severity, category, evidence) to a node
agent.get_findingsapp · mcp · api0List findings on a node, optionally filtered by severity
agent.schedule_createapp · mcp0Schedule a future agent run (requires user confirmation)
agent.schedule_listapp · mcp0List scheduled runs in the workspace
agent.schedule_deleteapp · mcp0Cancel a scheduled run (requires user confirmation)

Workspace + tenant

Light-touch tools the agent uses to read or update workspace-level configuration.

ToolSurfacesCreditsWhat it does
workspace.list_labelsapp · mcp1List labels defined in the workspace
workspace.set_labelapp · mcp2Apply a label to a node
tenant.get_settingsapp · mcp1Read tenant-level settings the agent is allowed to see
tenant.update_settingsapp · mcp3Update tenant settings (requires owner role)
billing.credits_balancemcp · api0Check the workspace credit balance

Web

A narrow outbound surface so the agent can pull in external context when answering a question.

ToolSurfacesCreditsWhat it does
web.searchapp · mcp1Public web search
web.fetch_urlapp · mcp2Fetch and clean the body of a URL

Notify

ToolSurfacesCreditsWhat it does
notify.dispatchapp · mcp1Send a structured notification to a pre-configured channel (webhook / Slack / email). Uses your existing signed-webhook config; idempotent by dedupe_key.

Visualization (app surface only)

Used by the chat agent to render an inline visualization inside an assistant message. Not available on MCP — your IDE renders its own UI.

ToolSurfacesCreditsWhat it does
viz.render_graphapp1Render an interactive graph (Cytoscape.js)
viz.render_tableapp0Render a sortable, paginated table
viz.render_chartapp1Render a chart (line / bar / scatter, Recharts)

Security

Available when GitHub code scanning, Dependabot, or Semgrep is connected to the workspace.

ToolSurfacesCreditsWhat it does
security.open_alertsapp · mcp0List currently open security alerts
security.alert_contextapp · mcp0Full context for an alert — affected symbol, blame, related PRs

Tool policies

Every tool carries a policy that determines whether it can run silently or must prompt the user first. The chat UI surfaces a confirmation card for anything stricter than auto.

PolicyMeaning
read_onlyNo side effects. Always runs silently.
autoHas side effects but the workspace owner has opted into auto-execution. Runs silently.
confirm_maybeRuns silently when the action is unambiguous (exact-match dedupe hit). Prompts for confirmation when ambiguous. ontology.create_node is the canonical example.
confirmAlways prompts for confirmation before running. Used by destructive writes, scheduling, and code.apply_patch.
writeExplicit write that is gated by the workspace's write permission, but doesn't necessarily prompt — the agent has to declare intent in the assistant turn.

Confirmation cards arrive in the chat as a structured oxagen_confirm part — the user clicks Approve or Decline in-thread and the server executes the pending tool call.


Credits

Credits are reserved before a tool runs and refunded automatically if the handler errors. A failed call costs nothing; a successful call deducts the cost shown in the table.

Buy credits from the Oxagen web app at Settings → Billing. The Pro plan includes a monthly credit allowance; overage is billed month-to-month. Enterprise plans include configurable credit budgets, per-user caps, and a real-time spend dashboard.


Calling tools yourself

If you want to invoke a tool outside the agent loop — say from a Celery job that needs the same dedupe semantics as the agent — every capability is also a REST endpoint.

curl -X POST https://api.oxagen.ai/v1/cap/ontology.search \
  -H "Authorization: Bearer $OXAGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "validateCard",
    "top_k": 20
  }'

The full schema for every capability is published at https://api.oxagen.ai/openapi.json and rendered in the API Explorer.

Documents, slides, sheets

Agent-authored artifacts in Google Workspace. The connection_kind="google_workspace" binding resolves the workspace's active OAuth grant; calls in workspaces without a connected Google account return a 409 with the missing-connection details.

ToolSurfacesCreditsWhat it does
docs.create_from_specapp · mcp · api5Create a Google Doc from a typed DocumentSpec — headings, paragraphs, lists, tables, images. Returns the doc URL and external id. See Document generation.
docs.appendapp · mcp · api2Append validated blocks to an existing doc.
docs.replace_placeholdersapp · mcp · api2Fill {{placeholder}} tokens inside a doc — used by the agent to expand a templated brief.
docs.shareapp · mcp · api1Grant a list of emails reader / commenter / writer access.
sheets.create_from_specapp · mcp · api5Create a Google Sheet from a SheetSpec — typed headers, formatted columns, freeze panes. See Spreadsheets.
sheets.append_rowsapp · mcp · api2Append rows to the first sheet.
sheets.write_rangeapp · mcp · api2Write a 2-D value matrix into an A1 range (e.g. Sheet1!A1:C3).
sheets.insert_chartapp · mcp · api2Insert a chart from a typed ChartSpec.
sheets.shareapp · mcp · api1Grant access at the chosen role.
slides.create_from_specapp · mcp · api5Create a Google Slides deck from a SlideDeckSpec — layouts, body content, speaker notes. See Slides.
slides.append_slideapp · mcp · api2Append one slide to an existing deck.
slides.replace_placeholdersapp · mcp · api2Fill {{placeholder}} tokens across the deck.
slides.shareapp · mcp · api1Grant access at the chosen role.

PDF export

Generic LibreOffice-backed PDF conversion. Accepts any office document (Google Docs / Slides / Sheets export, Word, PowerPoint, Excel, ODT) and returns PDF bytes plus page count. See PDF generation.

ToolSurfacesCreditsWhat it does
docs.export_pdfapp · mcp · api3Render a generated Google Doc to PDF.
sheets.export_pdfapp · mcp · api3Render a generated Google Sheet to PDF.
slides.export_pdfapp · mcp · api3Render a generated Google Slides deck to PDF.
pdf.convertapp · mcp · api2Convert a workspace document (uploaded or generated) to PDF via LibreOffice. Bytes land in app.documents with source='agent_generated'.

Branding

Per-workspace brand kits — palette, typography, spacing, logo, favicon, watermark, voice doc, footer. Every artifact tool above picks up the active kit automatically when present. See Brand kits.

ToolSurfacesCreditsWhat it does
branding.list_kitsapp · mcp · api0List every brand kit in the workspace.
branding.get_active_kitapp · mcp · api0Return the active default kit, including palette / typography / spacing tokens and asset references.
branding.set_active_kitapp · mcp · api1Mark a brand kit as the active default (requires owner role).

Install MCP server · Read the API docs · Agent memory

On this page