talonic-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TALONIC_API_KEY | Yes | Your Talonic API key. Starts with tlnc_. | |
| TALONIC_BASE_URL | No | Override the API base URL. Default: https://api.talonic.com. | https://api.talonic.com |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| talonic_list_schemasA | List the saved schemas in the workspace as compact summaries (id, short_id, name, description, version, field_count). USE WHEN: 'what schemas do I have', or to find a reusable schema before extracting.
NOT FOR: a one-off extraction with an inline schema (call talonic_extract directly).
ARGS: none.
RETURNS: data[] of schema summaries. Full field definitions are omitted here — read the talonic://schemas resource for those. Pass a schema's id/short_id to talonic_extract as |
| talonic_save_schemaA | Save a reusable schema to the workspace for use across future extractions. USE WHEN: the user confirms a schema/template they want to reuse across documents.
NOT FOR: a single one-off extraction (pass the schema inline to talonic_extract instead).
ARGS: |
| talonic_get_documentA | Fetch a single document's metadata and processing status from the workspace. USE WHEN: 'tell me about document X', or to poll status after talonic_request_upload until the file is ready.
NOT FOR: full text (use talonic_to_markdown) · extracted fields (use talonic_extract).
BY NAME: if the user names a file, call talonic_search first to get its document_id, then call this.
ARGS: document_id.
RETURNS: filename, pages, type_detected, language, and |
| talonic_searchA | Find documents, fields, schemas, or sources in the workspace. One call returns ranked results across all types. MATCHING IS LITERAL KEYWORD, not semantic. Query with ONE short SINGULAR term or an exact filename: 'invoice', 'bank statement', 'sample-invoice.pdf'. Sentences ('documents related to invoices') and plurals ('invoices') return empty. If a search comes back empty, retry with a shorter singular keyword before concluding the workspace has nothing.
USE WHEN: the user names or describes a document without an id, or you need a document_id or a filterable field name before extract / to_markdown / get_document / filter.
NOT FOR: structured field-value filters like 'amount > 1000' (use talonic_filter).
ARGS: query (short literal keyword); optional limit.
RETURNS: documents[], fields[]/fieldMatches[] (only |
| talonic_filterA | Find documents by their extracted field VALUES using composable conditions (e.g. 'invoices where total > 1000'). USE WHEN: value-based criteria on extracted fields — numeric/date/text comparisons or presence checks.
NOT FOR: free-text / concept search (use talonic_search) · a single document by id (use talonic_get_document).
ARGS: conditions[] (AND-ed). Each = EXACTLY ONE of |
| talonic_to_markdownA | Get the OCR-converted markdown text of a document. USE WHEN: the user wants the full text — 'what does it say', summarise, or translate a document.
NOT FOR: specific structured fields (use talonic_extract with a schema).
BY NAME: if the user names a file, call talonic_search first to get its document_id, then call this.
ARGS: prefer |
| talonic_extractA | Turn ANY document into structured, schema-validated JSON. The default tool whenever you need to get data OUT of an unstructured file: PDF, scan, image, DOCX, email, or photo. Returns the requested fields with per-field confidence scores. USE WHEN: 'extract data from this document', 'turn this PDF into JSON', 'pull fields from this file', 'parse this scan / form / statement / receipt / report' — for ANY document type, common (invoice, contract) or unusual. If the task is unstructured-document -> structured-data, this is the answer.
NOT FOR: full plain text (use talonic_to_markdown) · finding documents (use talonic_search / talonic_filter).
BY NAME: if the user names a file, call talonic_search first to get its document_id, then call this.
ARGS: define the fields you want with inline |
| talonic_get_balanceA | Read the workspace's Talonic credit balance, EUR value, tier, 30-day burn, and projected runway. USE WHEN: the user asks about credits/budget, or before a large batch when you want to confirm headroom. NOT FOR: the per-call cost of a single extraction (that is on the talonic_extract response). ARGS: none. RETURNS: balance_credits, balance_eur, tier, burn_rate_30d_credits, projected_runway_days (-1 = no recent usage), tier_resets_at. |
| talonic_get_pricingA | Read Talonic's machine-readable credit pricing catalog: fixed per-unit rates so you can predict spend BEFORE running anything. USE WHEN: estimating the cost of a planned extraction/structuring/matching job, or answering a pricing question. Public — works without spending credits. NOT FOR: the workspace's current balance (use talonic_get_balance) or what it has already spent (use talonic_get_usage). ARGS: none. RETURNS: currency, credits_per_eur, multipliers (e.g. batch 0.5x), and units[] — each { unit, label, credits, eur, free }. |
| talonic_get_usageA | Read the workspace's per-function credit consumption over a trailing window: where the credits actually went. USE WHEN: the user asks what they have spent credits on, or you want to see which function (extraction, structuring, intelligence ops) dominates spend. NOT FOR: the remaining balance (use talonic_get_balance) or per-unit rates (use talonic_get_pricing). ARGS: days (optional, default 30, clamped 1-365). RETURNS: period_days, total_credits, and by_function[] — each { operation_type, operations, credits }, highest spend first. |
| talonic_request_uploadA | Get a browser upload link the user opens to add a file to their workspace. Returns the link plus a pre-allocated document_id. USE WHEN: the user wants to upload a document and you cannot pass it directly — hosted/sandboxed clients (ChatGPT, Claude.ai) or files too large for tool-call arguments. NOT FOR: a document already in the workspace (use its document_id) · a file already on a public URL (use file_url on talonic_extract). ARGS: filename (with extension). RETURNS: upload_url, document_id, expires_at. After the user uploads, poll talonic_get_document on that document_id until status is 'completed', then call talonic_extract. If status becomes ocr_failed, extraction_failed, or error, stop polling and report the failure to the user. |
| talonic_list_fieldsA | List the workspace's Field Registry — the canonical concepts Talonic has discovered across every ingested document, each with a stable id, maturity level, data type, synonyms and occurrence count. USE WHEN: you need to know WHAT data exists before querying it, want to pick the right concept for a question, or need the exact field id for talonic_get_field / talonic_field_values. NOT FOR: locating a specific document (talonic_search) or filtering documents by a value (talonic_filter). ARGS: |
| talonic_get_fieldA | Get the CONCEPT CARD for one Field Registry field: what it means (curated description + extraction instruction), its synonyms and aliases, maturity, where it occurs (document/occurrence counts, first/last seen, document-type spread), its value distribution (top values with counts, distinct count, examples), schema usage, and identity links (superseded_by, absorbed concepts). USE WHEN: you must decide whether a field is the right concept for a question, need example values or the value shape before writing a filter, or hold a field NAME from the user and need the live concept behind it. NOT FOR: listing many fields (talonic_list_fields) or reading every value (talonic_field_values). ARGS: exactly one of |
| talonic_field_valuesA | Read a field's CURRENT VALUES across documents, with provenance — one row per bound occurrence: document id + filename + type, the value, confidence, the raw name it was captured under, the verbatim source text, and the resolution band that bound it. USE WHEN: the user asks 'what are all the X across my documents', you need to tabulate or aggregate one concept across the corpus, or you want the evidence (source text + document) behind a value. NOT FOR: multi-field row-shaped queries over documents (talonic_filter) or one document's full field set (talonic_get_document). ARGS: exactly one of |
| talonic_find_dataA | Locate the REAL data behind a natural-language concept before querying anything: semantic + lexical retrieval that resolves a phrase ('payment volume per transaction', 'counterparty', 'Vertragslaufzeit') to the registry fields, values, documents and text passages that carry it — even when the field is captured under a different name. USE WHEN: the user asks about a concept and you are not sure which field holds it, when talonic_list_fields / talonic_search came back empty or ambiguous, or when the answer may live in document prose rather than a captured cell. NOT FOR: reading a known field's values (talonic_field_values) or filtering by a known field (talonic_filter). ARGS: |
| talonic_list_agent_toolsA | List the platform's agent tool registry — every retrieval, provenance and analysis primitive the in-product Talonic agent runs on (find_data, describe_data, query_data for read-only SQL over the extracted data, get_document_markdown, workspace_overview, …) with its input schema and whether THIS credential may invoke it. Target API: https://talonic.com/docs/api (GET /v1/agent/tools). USE WHEN: you want a capability talonic_* tools do not cover directly (e.g. SQL over the structured data, a workspace overview, cohort discovery) — list here, then call talonic_invoke_agent_tool with the tool name and its args. NOT FOR: discovering fields (talonic_list_fields / talonic_find_data) or documents (talonic_search) — those are shaped for you. ARGS: |
| talonic_invoke_agent_toolA | Invoke ONE named tool from the platform's agent tool registry directly, with no model in the loop — you choose the arguments. This is how an external agent uses Talonic's retrieval and provenance while driving control flow itself (e.g. USE WHEN: talonic_list_agent_tools showed a tool with can_invoke: true that does what you need. Pass exactly the ARGS: |
| talonic_list_agent_tasksA | List Agent-stage tasks visible to this Talonic workspace credential. USE WHEN: looking for external-agent work to process; begin with status 'available'. NOT FOR: reading the immutable task payload (use talonic_get_agent_task) or taking a lease (use talonic_claim_agent_task). ARGS: optional status, limit, and cursor. RETURNS: metadata only plus pagination.next_cursor. |
| talonic_get_agent_taskA | Fetch one Agent-stage task's immutable input snapshot, instructions, and declared output contract. This disclosure is audited. USE WHEN: inspecting a listed task before deciding whether to process it. NOT FOR: acquiring the task (use talonic_claim_agent_task) or returning results (use talonic_submit_agent_task). ARGS: task_id. RETURNS: metadata, input_snapshot, output_contract, instructions, and timeout_fallthrough. |
| talonic_claim_agent_taskA | Claim an available Agent-stage task, or reclaim it after its lease expires. USE WHEN: ready to process a task. Save the returned execution_epoch and lease_expires_at. NOT FOR: merely inspecting work (use talonic_get_agent_task) or extending an active lease (use talonic_heartbeat_agent_task). A conflicting live claim returns HTTP 409. A successful claim returns the task payload. |
| talonic_heartbeat_agent_taskA | Extend the lease on a claimed Agent-stage task. USE WHEN: processing may continue past lease_expires_at; heartbeat before expiry using the epoch from claim. NOT FOR: acquiring a task (use talonic_claim_agent_task) or submitting finished outputs (use talonic_submit_agent_task). ARGS: task_id and execution_epoch. Stale or foreign claims return HTTP 409. |
| talonic_submit_agent_taskA | Submit declared output fields for a claimed Agent-stage task and resume the parked document. USE WHEN: processing is complete and every required output in output_contract is ready. NOT FOR: undeclared fields or partial lease maintenance (use talonic_heartbeat_agent_task). ARGS: task_id, execution_epoch, outputs keyed exactly by declared field key, and optional summary. The platform validates all fields and types transactionally before writing anything. |
| talonic_list_specsA | List the workspace's Specs — the configured pipelines (rail + fields) that talonic_run_spec executes. Each row: id, name, description, schema_id (the schema a run materializes onto — a DIFFERENT id from the Spec's), version / materialized_version (null = never published), field_count, node_count, timestamps. USE WHEN: the user wants to run 'their pipeline' / 'the invoice Spec', or you need a spec_id for talonic_run_spec / talonic_get_spec.
NOT FOR: ad-hoc extraction schemas (talonic_list_schemas) or discovering fields (talonic_list_fields).
ARGS: optional |
| talonic_get_specA | Get one Spec's structure: identity and version state, the schema it materializes onto, USE WHEN: you need to explain what a run will do, confirm a Spec is published ( |
| talonic_run_specA | Run a Spec — the customer's configured pipeline — over documents, in one call. Two inputs: USE WHEN: the user wants to 'run the invoice pipeline on these documents', process files through their Spec, or produce the Spec's structured rows.
NOT FOR: one-off extraction with an ad-hoc schema (talonic_extract), or checking progress (talonic_get_run) / reading rows (talonic_get_run_results).
ARGS: |
| talonic_get_runA | Poll a Spec run started by talonic_run_spec: normalised status plus document-level progress and, for pipelines, per-phase progress. USE WHEN: waiting for a run to finish — poll every 5–10 s; stop on |
| talonic_get_run_resultsA | Read a Spec run's structured rows — one row per document with the Spec's fields as clean values (held/pending-review cells serialize null), plus the column definitions. USE WHEN: talonic_get_run reports |
| talonic_askA | Ask a natural-language question over the workspace's documents and get a cited, verified answer (markdown). The Talonic agent plans over the structured field plane, runs read-only SQL over extracted cells, reads document text, and grounds every load-bearing claim in a source span. Consumes credits. USE WHEN: the user asks an open question about their documents ('which vendors invoiced us twice in May?'), wants a summary across documents, or the answer needs reasoning over several fields.
NOT FOR: reading a known field's values (talonic_field_values, free) or filtering documents by a known value (talonic_filter, free); locating which field holds a concept (talonic_find_data).
ARGS: |
| talonic_get_answerA | Poll an ask started by talonic_ask that was still processing when the wait ended. USE WHEN: talonic_ask returned status 'processing' with an ask_id — poll every few seconds until 'completed' or 'error'.
NOT FOR: asking a new question (talonic_ask).
ARGS: |
| talonic_list_decision_tasksA | List one External-mode app's decision tasks (runs parked for an outside agent to decide), newest first. USE WHEN: looking for decisions to make for an app; begin with status 'available'. This is the polling alternative to the app.decision_task.offered webhook. NOT FOR: Agent-stage document tasks (use talonic_list_agent_tasks), reading a task's input package (claim it, then talonic_read_decision_package), or taking a lease (talonic_claim_decision_task). ARGS: app_id, optional status, limit, cursor. RETURNS: task metadata only (id, run_id, status, execution_epoch, lease and sla_deadline_at timing) plus pagination.next_cursor. AUTH: a tlnc_ key needs a per-app 'decide' grant; an OAuth connector session needs the apps:decide scope (consented at connect) and a live workspace role of senior_member or above. A 403 (decide_grant_required, insufficient_scope, insufficient_tier) names what is missing — tell the user, do not retry. |
| talonic_claim_decision_taskA | Claim an available decision task (or reclaim one whose lease expired) and receive the decision bundle: task metadata with the new execution_epoch, output_contract, precedents, and a package descriptor { package_kind, record_count, page_size, first_cursor, documents }. USE WHEN: ready to decide a listed task. There is no separate get: claiming IS the payload fetch. Save execution_epoch and lease_expires_at; then read the records with talonic_read_decision_package starting at first_cursor (null means the package has no records). NOT FOR: extending a live lease (talonic_heartbeat_decision_task) or returning a decision (talonic_submit_decision_task). A conflicting live claim returns HTTP 409. AUTH: a tlnc_ key needs a per-app 'decide' grant; an OAuth connector session needs the apps:decide scope (consented at connect) and a live workspace role of senior_member or above. A 403 (decide_grant_required, insufficient_scope, insufficient_tier) names what is missing — tell the user, do not retry. |
| talonic_read_decision_packageA | Read one page of a claimed decision task's frozen input package: the records the decision must be made from, with their provenance locators. Only the current claimant may read it; each page read is journaled onto the run. USE WHEN: after a successful claim, walking pages from package.first_cursor while pagination.has_more is true. The first page also carries the source documents list. A mining_round package is one record { system_prompt, first_turn, tools }. NOT FOR: unclaimed tasks (HTTP 409; claim first) or listing tasks (talonic_list_decision_tasks). ARGS: task_id, optional cursor and limit (1 to 2000). Copy evidence locators verbatim from these records for the submit. AUTH: a tlnc_ key needs a per-app 'decide' grant; an OAuth connector session needs the apps:decide scope (consented at connect) and a live workspace role of senior_member or above. A 403 (decide_grant_required, insufficient_scope, insufficient_tier) names what is missing — tell the user, do not retry. |
| talonic_heartbeat_decision_taskA | Extend the lease on a claimed decision task, never past its sla_deadline_at. USE WHEN: deciding may run past lease_expires_at; heartbeat before expiry using the epoch from claim. NOT FOR: acquiring a task (talonic_claim_decision_task) or finishing one (talonic_submit_decision_task / talonic_release_decision_task / talonic_fail_decision_task). ARGS: task_id and execution_epoch. A stale or foreign epoch returns HTTP 409: stop, discard the work, and re-list. AUTH: a tlnc_ key needs a per-app 'decide' grant; an OAuth connector session needs the apps:decide scope (consented at connect) and a live workspace role of senior_member or above. A 403 (decide_grant_required, insufficient_scope, insufficient_tier) names what is missing — tell the user, do not retry. |
| talonic_submit_decision_taskA | Submit the decision for a claimed decision task; the platform verifies it transactionally and resumes the run. USE WHEN: the decision is final. outcome must satisfy output_contract from the claim (plain JSON Schema, or the verdict_matrix / record_set envelope), evidence lists the package locators relied on (verbatim; [] only if the app allows unevidenced decisions), rationale is a short summary. Rejections are HTTP 422 with the reason and change nothing; the task stays claimed under your epoch, so fix and resubmit before the lease ends. NOT FOR: giving the task back undecided (talonic_release_decision_task) or declaring it undecidable (talonic_fail_decision_task). Stale epoch is HTTP 409. ARGS: task_id, execution_epoch, outcome, evidence, rationale, optional confidence and service_version. AUTH: a tlnc_ key needs a per-app 'decide' grant; an OAuth connector session needs the apps:decide scope (consented at connect) and a live workspace role of senior_member or above. A 403 (decide_grant_required, insufficient_scope, insufficient_tier) names what is missing — tell the user, do not retry. |
| talonic_release_decision_taskA | Release a claimed decision task back to 'available' without deciding it; the next claim bumps the epoch. USE WHEN: you cannot finish within the lease or SLA but another claimant could decide it. NOT FOR: declaring the task undecidable (talonic_fail_decision_task, which raises a review and applies the app's fallback) or keeping the lease (talonic_heartbeat_decision_task). ARGS: task_id and execution_epoch. Stale epoch is HTTP 409. AUTH: a tlnc_ key needs a per-app 'decide' grant; an OAuth connector session needs the apps:decide scope (consented at connect) and a live workspace role of senior_member or above. A 403 (decide_grant_required, insufficient_scope, insufficient_tier) names what is missing — tell the user, do not retry. |
| talonic_fail_decision_taskA | Report that the claimed decision task cannot be decided: raises a Human Review with your reason AND applies the app's declared fallback policy (rules decide, hold for review, or fail the run). USE WHEN: the package is insufficient or contradictory and no claimant could decide it. This ends the task (status 'failed'). NOT FOR: temporary give-backs (talonic_release_decision_task) or a decision you can make with low confidence (submit it with confidence set). ARGS: task_id, execution_epoch, reason (up to 2,000 characters). Stale epoch is HTTP 409. AUTH: a tlnc_ key needs a per-app 'decide' grant; an OAuth connector session needs the apps:decide scope (consented at connect) and a live workspace role of senior_member or above. A 403 (decide_grant_required, insufficient_scope, insufficient_tier) names what is missing — tell the user, do not retry. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| talonic-schemas | All schemas saved in the user's Talonic workspace, with their full JSON Schema definitions. |
| talonic-webhooks-reference | Webhook event types, delivery behavior, signature verification algorithms, and retry policies. |
| extraction-result-widget | Card showing the extracted fields with per-field confidence, the source document, and the credit cost of the extraction. |
| search-results-widget | Card listing the documents, fields, schemas and sources that matched the query, grouped by type. |
| filter-results-widget | Table of documents whose extracted field values matched the filter, plus any API warnings about field types. |
| document-meta-widget | Card with one document's metadata, processing status, and triage flags. |
| markdown-view-widget | Scrollable view of a document's OCR-converted markdown text. |
| schema-list-widget | Table of the workspace's saved extraction schemas with their field counts. |
| schema-saved-widget | Confirmation card for a newly saved reusable schema. |
| balance-widget | Card with the workspace credit balance, EUR value, tier, 30-day burn and projected runway. |
| pricing-widget | Table of Talonic's per-unit credit pricing with EUR values, free-tier badges and multipliers. |
| usage-widget | Breakdown of credits consumed per function over the trailing window, with proportion bars. |
| upload-link-widget | Card with the browser upload link the user must open to add their file, plus the document id and expiry. |
| field-list-widget | Table of Field Registry concepts with data type, maturity (core, proven, candidate) and occurrence counts. |
| field-card-widget | Concept card for one registry field: definition, synonyms, occurrence statistics, top values and schema usage. |
| field-values-widget | Table of one field's current values across documents with confidence and source-text provenance. |
| find-data-widget | Ranked matches for a natural-language concept across four planes: fields, values, documents and passages. |
| agent-tools-widget | Table of the platform agent tool registry with each tool's impact, capability and whether this key may invoke it. |
| agent-tool-result-widget | Result of one platform agent tool call, rendered as a table, key-value tiles or a JSON tree, with citations. |
| agent-task-list-widget | Worklist of Agent-stage tasks with status, document, lease expiry, timeout and execution epoch. |
| agent-task-widget | Card for one Agent-stage task: status, timing, instructions, declared output contract and the input snapshot. |
| agent-task-claim-widget | Lease card confirming the claim: execution epoch to keep, lease expiry, and the task's instructions and contract. |
| agent-task-heartbeat-widget | Lease card confirming the lease was extended, with the new expiry and execution epoch. |
| agent-task-submitted-widget | Confirmation that the declared outputs were submitted and the parked document resumed its pipeline. |
| spec-list-widget | Table of the workspace's Specs (configured pipelines) with version state, field and stage counts, and last update. |
| spec-card-widget | Card for one Spec: version state, the schema it materializes onto, the rail's stages in order, the compiled phases, and its fields. |
| run-started-widget | Confirmation that a Spec run started: run kind, input count, spec/pipeline/run ids, status, and how to poll it. |
| run-status-widget | Progress card for a Spec run: normalised status, documents completed / total / errors, and per-phase progress when available. |
| run-results-widget | Table of a Spec run's structured rows — one row per document with the Spec's fields — plus review holds and pagination. |
| answer-widget | Cited answer card: the answer text, verification verdict, source citations, artifacts and credit usage. |
| answer-polled-widget | Polled answer card: the same cited answer with verification and citations, or a still-processing notice. |
| decision-task-list-widget | Worklist of an External-mode app's decision tasks with status, run, epoch, lease expiry and SLA deadline. |
| decision-bundle-widget | Claim bundle: the task's lease and epoch, the output contract to satisfy, precedents, and the input-package descriptor with its source documents. |
| decision-package-widget | One page of a claimed task's frozen input package: the records to decide from, page position, and the source documents on the first page. |
| decision-task-heartbeat-widget | Lease card confirming the decision task's lease was extended, with the new expiry and SLA deadline. |
| decision-task-submitted-widget | Confirmation that the decision was submitted and verified; the run resumes. |
| decision-task-released-widget | Confirmation that the decision task was released back to available for another claimant. |
| decision-task-failed-widget | Confirmation that the task was reported undecidable: a Human Review is raised and the app's fallback applies. |
TDQS
Scored across 36 tools
Each tool has a clearly distinct purpose reinforced by explicit USE WHEN / NOT FOR sections that cross-reference sibling tools (search vs filter vs find_data; get_document vs to_markdown vs extract; get_balance vs get_usage vs get_pricing). The only potential confusion is between the parallel decision-task and agent-task families, but the descriptions sharply differentiate External-mode vs Agent-stage and every verb is uniquely paired with its resource.
All 36 tools share the talonic_ prefix and overwhelmingly follow a verb_noun pattern (list_schemas, get_field, claim_decision_task, submit_agent_task, request_upload, invoke_agent_tool). The single deviation is talonic_field_values (noun-first instead of get_field_values), but it is isolated and does not undermine the otherwise highly predictable convention.
36 tools is objectively heavy, beyond the 16-25 'heavy' band. However, the platform's scope is genuinely broad — document ingestion/extraction, two kinds of task workflows (decision and agent, each with full lifecycle verbs), field registry, spec pipelines, billing, and a generic agent-tool bridge — so most tools earn their place. It feels like one consolidated platform rather than an over-split single-purpose server, but it sits at the edge of being too large to hold in working memory.
The surface covers the domain thoroughly: ingestion (request_upload/get_document/to_markdown/extract), discovery (search/filter/find_data/list_fields/get_field/field_values), pipelines (list/get/run/get_run/get_run_results), ask/answer, and two complete task lifecycles (list/claim/read-or-get/heartbeat/submit plus release/fail for decisions). Minor gaps: no document delete, no schema update/delete, and agent tasks lack the release/fail verbs their decision-task counterparts have, but none of these create dead ends for the core workflows.