Talonic

io.github.talonicdevPublished by GitHub account talonicdevv0.1.93Updated Nov 3, 2026

Extract structured, schema-validated data from PDFs, scans, images, spreadsheets, and forms.

Overview

AI-generated overview

Talonic turns PDFs, scans, images, DOCX and emails into schema-validated JSON with confidence scores, and answers questions over a Talonic document workspace.

What you can do
  • Extract structured, schema-validated JSON from documents with per-field confidence and optional provenance, or OCR a document to markdown
  • Upload files via a browser link, then check document metadata and processing status
  • Search, filter and list workspace documents, schemas and fields, and save reusable schemas
  • Explore the Field Registry: resolve concepts, read concept cards and pull one field's values across documents
  • Run configured pipelines (Specs) over documents and read the resulting rows; ask cited questions over the workspace
  • Work external agent tasks and app decision tasks through list, claim, heartbeat, submit, release or fail steps
When to use it
Useful when an assistant must pull reliable structured fields out of invoices, contracts, forms or scans, or answer questions across a document collection, rather than relying on raw OCR plus a free-form model call. Also fits workflows where an outside agent processes queued document or decision tasks.
Requirements
Runs as a local stdio process via npx (Node.js) for desktop and IDE clients, or as a hosted remote endpoint for Claude.ai connectors. Local installs need a Talonic account and the TALONIC_API_KEY environment variable; the hosted OAuth path needs no key. Decision tools additionally need the apps:decide consent and a senior_member role or above. Network access to the Talonic API is required.
Before you install
Extraction, markdown conversion and ask consume paid credits; check balance and pricing before large batches. Tools that change workspace data (saving schemas, decisions, record updates) should only run on explicit request. Documents are uploaded to and processed by Talonic's servers, so workspace data leaves the machine. Passing the API key in a connector URL persists it in the client's store and may appear in logs.

Installation

In SourceWeft

  1. Open Talonic in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@talonic/mcp

Official Talonic MCP server. Give any AI agent the ability to extract structured, schema-validated data from any document — PDFs, scans, invoices, contracts, forms — via the Model Context Protocol.

[talonic-mcp MCP server] [smithery badge]

Status: stable, listed on the official MCP Registry as io.github.talonicdev/talonic-mcp. Thirty-six public tools and two resources, including seven decision-task tools for External-mode Talonic Apps (not yet production-verified, running at the platform's decide tier — a tlnc_ key with a per-app decide grant, or an OAuth session with the apps:decide scope and a senior_member role or above); the rest are verified end-to-end against production (including the Claude.ai hosted connector), each tool rendering its own ChatGPT Apps SDK widget card. Runs as a local stdio process for desktop/IDE clients or as the hosted Streamable HTTP server at mcp.talonic.com for Claude.ai connectors.


What you get

One install gives an agent the whole document-extraction workflow:

ToolWhat it does
talonic_extractExtract schema-validated JSON from a document, with per-field confidence scores. The primary tool.
talonic_request_uploadGet a browser upload link for files too large to pass through a hosted connector (e.g. Claude.ai). The robust path for real-world documents.
talonic_to_markdownOCR a document to clean markdown.
talonic_searchOmnisearch across documents, fields, sources, and schemas.
talonic_filterFilter documents by extracted field values (eq, gt, between, contains, …).
talonic_get_documentFetch a document's metadata, processing status, and links.
talonic_list_schemasList saved schemas (with definitions).
talonic_save_schemaSave a reusable schema to the workspace.
talonic_get_balanceRead credit balance, EUR value, burn rate, and runway for budget-aware behaviour.
talonic_get_pricingRead the public per-unit credit pricing catalog and multipliers to predict spend before running a job.
talonic_get_usageBreak down credit consumption per function over a trailing window (default 30 days).
talonic_list_fieldsList the Field Registry — every canonical concept with a stable id, maturity (core / proven / candidate), synonyms and occurrence counts.
talonic_get_fieldConcept card for one field (by id or by NAME): definition, aliases, maturity, occurrence stats, value distribution with examples, schema usage, identity links.
talonic_field_valuesOne concept's current values across all documents, with provenance (document, source text, resolution band).
talonic_find_dataResolve a concept in the user's words to the fields, values, documents and passages that carry it — by meaning, not by name.
talonic_list_agent_toolsThe platform's agent tool registry (query_data SQL, describe_data, document markdown, …) with schemas and per-credential invocability.
talonic_invoke_agent_toolRun one platform agent tool directly with your own arguments — no model in the loop.
talonic_list_agent_tasksMetadata worklist for documents parked at Agent stages.
talonic_get_agent_taskAudited fetch of one Agent task's immutable input snapshot and output contract.
talonic_claim_agent_taskAcquire or reclaim a leased Agent task and its execution epoch.
talonic_heartbeat_agent_taskExtend the current claim lease on an Agent task using its epoch.
talonic_submit_agent_taskSubmit an Agent task's declared typed outputs transactionally and resume the document.
talonic_list_specsList the workspace's configured Specs (pipelines) — name, schema, version, field/node counts.
talonic_get_specGet one Spec's full structure: nodes, compiled phases, fields, and (optionally) its version history.
talonic_run_specRun a Spec over documents already in the workspace or public file URLs — one call, either backend.
talonic_get_runPoll a Spec run's status and progress until it completes.
talonic_get_run_resultsRead a Spec run's structured rows, one per document, with column definitions.
talonic_askAsk a natural-language question over the workspace's documents and get a cited, verified answer.
talonic_get_answerPoll a long-running talonic_ask for its finished answer.
talonic_list_decision_tasksOne External-mode App's decision inbox: runs parked for an outside agent to decide (decide tier: per-app grant on a tlnc_ key, or the apps:decide OAuth scope).
talonic_claim_decision_taskLease a decision task; the claim returns the output contract, precedents and the input-package descriptor.
talonic_read_decision_packagePage through the claimed run's frozen input package with its provenance locators.
talonic_heartbeat_decision_taskExtend a decision-task lease, never past its SLA deadline.
talonic_submit_decision_taskSubmit the decision: outcome against the contract, verbatim evidence locators, a short rationale.
talonic_release_decision_taskGive a decision task back to available undecided.
talonic_fail_decision_taskDeclare a decision task undecidable: raises a Human Review and applies the app's fallback policy.

Plus two resources for clients that browse them (Claude Desktop, Cowork render these in-UI):

  • talonic://schemas — the saved-schemas list.
  • talonic://webhooks/reference — webhook event types, delivery semantics, signature verification, and retry policy.

Every tool description is written for an LLM, with explicit USE WHEN / DO NOT USE WHEN guidance, so agents pick the right tool without extra prompting.

Why use it

When an agent needs structured data out of a PDF, scan, or messy document, the usual approach is raw OCR plus an LLM call — and the results drift: tables get mangled, dates get misread, totals come out wrong. talonic_extract instead returns schema-validated JSON with per-field confidence scores, a detected document type, and stable IDs for follow-up calls. The full pipeline (upload → OCR → extraction → validation) runs server-side in one request.


Quick start

1. Get an API key (30 seconds)

Each user runs against their own isolated Talonic workspace — your documents and schemas are private to you.

  1. Sign up at app.talonic.com — free tier, 50 extractions/day, no credit card.
  2. Settings → API Keys → Create New Key.
  3. Copy the tlnc_… value into your MCP client config (snippets below).

You don't need an API key for Claude.ai. The hosted connector uses OAuth — Claude.ai handles auth via PKCE and stores its own short-lived tokens. The API key is only needed for local-stdio installs (Claude Desktop, Cursor, Cline, Continue, Cowork) and the API-key URL fallback.

2. Install

Every local client launches the server the same way — a one-line npx invocation with your key in the env block. No clone, no build:

jsonc
{  "command": "npx",  "args": ["-y", "@talonic/mcp@latest"],  "env": { "TALONIC_API_KEY": "tlnc_..." }}

Version pinning. @latest is fine for trying things out. For production and CI, pin a version (e.g. @talonic/[email protected]) so a release can't silently change tool descriptions, validation rules, or response shapes your agent depends on. Bump the pin after reviewing the CHANGELOG.


Client setup

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "talonic": {      "command": "npx",      "args": ["-y", "@talonic/mcp@latest"],      "env": { "TALONIC_API_KEY": "tlnc_your_key_here" }    }  }}

Fully restart Claude Desktop (Cmd+Q on macOS — not just close the window). Talonic appears in the connected-servers list with all thirty-six public tools.

Cursor

Edit ~/.cursor/mcp.json (or Cursor settings → MCP → edit config):

json
{  "mcpServers": {    "talonic": {      "command": "npx",      "args": ["-y", "@talonic/mcp@latest"],      "env": { "TALONIC_API_KEY": "tlnc_your_key_here" }    }  }}
Cline (VS Code)

Open the Cline panel → settings (gear) → MCP Servers → Edit. Add the entry above. Save and restart the panel.

Continue (VS Code / JetBrains)

Edit ~/.continue/config.json, add to the mcpServers array:

json
{  "name": "talonic",  "command": "npx",  "args": ["-y", "@talonic/mcp@latest"],  "env": { "TALONIC_API_KEY": "tlnc_your_key_here" }}
Cowork

Open Cowork settings → MCP Servers → Add. Use the same shape as Claude Desktop above.

Claude.ai (hosted connector)

Claude.ai's "Add custom connector" flow uses a remote MCP URL instead of a local process. We host one at mcp.talonic.com. OAuth is the recommended path — no API key in the config.

Recommended — OAuth (no API key):

  1. Open claude.ai/settings/connectors → Add custom connector.
  2. URL: https://mcp.talonic.com/mcp (no query string, no headers).
  3. Click Connect → you're redirected to Talonic → sign in (Google, Microsoft, or SSO).
  4. Approve the consent screen (scopes: extract:write, documents:read, schemas:read, and apps:decide for the decision-task tools). Connectors added before apps:decide existed keep working; the seven decision tools show as not invocable until you remove and re-add the connector. Pick a workspace if you have multiple.
  5. You're returned to Claude.ai. All thirty-six public tools appear.

The flow uses PKCE (RFC 7636) and dynamic client registration (RFC 7591). Claude.ai stores a 1-hour access token + 30-day refresh token and refreshes automatically. No API key ever touches the connector config or any URL. Revoke by removing the connector or revoking the OAuth client in your Talonic dashboard.

Alternative — API key in URL (firewalled environments, automation, static credential):

https://mcp.talonic.com/mcp?apiKey=tlnc_your_key_here

Trade-off: the key is persisted in Claude.ai's connector store and may appear in Anthropic-side logs. Rotate it if you remove or share the connector.

Uploading files in Claude.ai? Use talonic_request_upload — see the next section. Dragging a real file straight into the chat does not work through hosted connectors (a platform limit, explained below).


File uploads: the browser-handoff flow

This is the most important thing to understand about running Talonic inside a hosted connector (Claude.ai web, ChatGPT).

The constraint

Hosted AI platforms cap the size of a single tool-call argument. On Claude.ai the effective ceiling is ~32 KB of decoded payload (~43 KB of base64) — measured directly against production. A real PDF is hundreds of KB to several MB, so passing it as base64 file_data gets silently truncated: the server receives a clean-but-incomplete prefix, the API registers a stub document, and extraction returns null fields. The agent never sees the truncation. Separately, the agent's sandbox cannot upload the bytes out-of-band either — egress is allowlisted, so a direct PUT to storage is blocked.

These are deliberate, structural properties of hosted/sandboxed agent platforms — not a Talonic bug, and not something we can configure away. The same limits apply to ChatGPT connectors and similar surfaces.

The solution: talonic_request_upload

Route the file transfer onto the user's own browser, which has neither the tool-call cap nor the egress allowlist:

1. Agent calls  talonic_request_upload(filename)       → { document_id, upload_url: "https://app.talonic.com/u/<token>", expires_at }2. Agent shows the upload_url to the user.3. User opens it in a browser tab and drops the file.4. Agent polls  talonic_get_document(document_id)  until status === "completed".5. Agent calls  talonic_extract(document_id, schema)  — structured data comes back.

Cost to the user: one click. It's the same pattern as a Slack/Stripe "open in browser" link, and it works on every hosted agent. Verified end-to-end in production Claude.ai.

For the agent: a user saying "done" or "uploaded" only confirms the browser-side upload finished — server-side OCR + processing take another ~10–30 s. Poll talonic_get_document until status is "completed" before calling talonic_extract. Calling early returns errors that look like the file is missing. (The tool descriptions enforce this; you generally don't need to prompt for it.)

When you don't need it

  • Local-stdio installs (Claude Desktop, Cursor, Cline, Continue, Cowork) have no tool-call cap. Drop a file in and the agent passes file_data directly — talonic_request_upload isn't needed.
  • The file is already at a public URL → pass file_url to talonic_extract.
  • The file was already uploaded at app.talonic.com → pass its document_id.

Agent decision guide

Pick the right tool before calling — the wrong one returns the wrong data, costs credits, and slows the conversation.

User has a file

  • Local client (Desktop, Cursor, …), small-to-medium file → talonic_extract with file_data + filename.
  • Hosted connector (Claude.ai) → talonic_request_upload, then poll, then talonic_extract by document_id. (See browser-handoff.)
  • File is at a public URL → talonic_extract with file_url.
  • They want specific fields → pass a schema or schema_id. They want full text → talonic_to_markdown. Both → talonic_extract with include_markdown: true.

User is asking about existing documents

  • Conceptual/fuzzy ("any docs about indemnification") → talonic_search.
  • Value-based ("invoices over 1000 EUR") → talonic_filter.
  • They reference a document_id → talonic_get_document (metadata), talonic_to_markdown (text), or talonic_extract (re-extract with a new schema). Re-using a document_id is cheaper than re-uploading.

Working with schemas

  • One-off → pass the schema inline. Reused across many docs → talonic_save_schema once, then talonic_extract with schema_id. Discover existing → talonic_list_schemas.

Confidence & human review

  • confidence.overall < ~0.7 → tell the user the extraction may be unreliable; surface low-confidence fields; confirm before downstream actions.
  • Per-field confidence < ~0.7 → mark "needs review"; don't use silently in calculations or external calls.
  • Critical fields (amounts, legal terms, names, dates) → confirm with the user even at high confidence.
  • Need to cite sources? Pass include_provenance: true for per-field page/section/source-text.

When not to call Talonic

  • General-knowledge or chat questions — don't pre-emptively extract.
  • The data is already in the conversation from a prior call — reuse it.
  • For cost/balance questions → talonic_get_balance. Per-call cost is on every talonic_extract / talonic_to_markdown response under cost.

How it works

Agent (Claude Desktop / Cursor / Claude.ai / …)  │  MCP protocol — stdio (local) or Streamable HTTP (hosted)  ▼Talonic MCP server (this package)  │  HTTPS, Bearer auth (API key or OAuth token)  ▼api.talonic.com

Each tool call is one HTTP request to the Talonic API. The server handles auth, retries on transient failures (429, 5xx), MIME-type detection, multipart serialisation, and structured error formatting. It is a thin, stateless client — see Privacy.

Configuration

Set via the env block in your MCP client config:

VariableRequiredDescription
TALONIC_API_KEYyes (local installs)Your Talonic API key. Starts with tlnc_. Not needed for Claude.ai OAuth.
TALONIC_BASE_URLnoOverride the API base URL. Default: https://api.talonic.com.

Troubleshooting

Error: TALONIC_API_KEY environment variable is required. The env block is missing or unread. Check the JSON shape, then fully restart the client (not just the conversation).

Talonic doesn't appear in the connected-servers list. Confirm command is npx and args are exactly ["-y", "@talonic/mcp@latest"]. Sanity check in a terminal: npx -y @talonic/mcp@latest --version should print a version.

talonic_extract returns a validation error with no schema. By design — the call needs to know which fields to pull. The error hands back a ready-to-paste minimal schema (tailored to your instructions) so the retry succeeds immediately. Three ways forward: provide an inline schema (full JSON Schema recommended), pass a schema_id from talonic_list_schemas, or set auto_schema: true for open capture — Talonic discovers the fields and returns a suggested schema you can refine.

Dragging a file into Claude.ai gives empty/null fields. The hosted-connector tool-call cap (~32 KB) truncated file_data. Use talonic_request_upload — the browser-handoff flow is the supported path. Local-stdio installs are unaffected.

talonic_request_upload worked but talonic_extract errors right after. You extracted before processing finished. Poll talonic_get_document until status === "completed", then extract. A user's "done" only means the browser upload landed, not that OCR is done.

talonic_filter returns nothing when you expect data. Two causes: (1) the field isn't extracted/filterable yet — call talonic_search and check filterable: true; (2) schema-typing — numeric operators (gt, gte, lt, lte, between) need the field typed as number. A string field holding numeric content silently returns zero. Gate on field.dataType === "number" (from talonic_search) before constructing numeric filters.

Tool descriptions look stale after an update. Some clients cache tool lists. For Claude.ai, remove and re-add the connector. For local clients, restart.


Known limitations (v0.1)

  • talonic_extract needs the fields specified. Pass a schema (full JSON Schema recommended) or a schema_id — or set auto_schema: true for open capture, which discovers the fields and returns a suggested schema. A call giving none of the three returns a validation error that hands back a ready-to-paste minimal schema. If a flat key-type map ({ vendor_name: "string" }) yields a "no fields" error, use full JSON Schema:
    json
    {  "type": "object",  "properties": {    "vendor_name": { "type": "string", "title": "Vendor Name" },    "total_amount": { "type": "number", "title": "Total Amount" }  },  "required": ["vendor_name", "total_amount"]}
  • Hosted-connector tool-call cap (~32 KB). Real files can't pass through file_data on Claude.ai/ChatGPT — use talonic_request_upload. Local installs are unaffected.
  • Filter requires filterable: true fields. Call talonic_search first; only entries with filterable: true are usable on talonic_filter.
  • Numeric filter operators need number-typed fields. Numbers stored as strings (currency symbols, locale formatting) silently return zero. Type schema fields appropriately at design time; gate on dataType at query time.
  • Per-call cost is extract-only. talonic_extract and talonic_to_markdown (file-input path) return a cost block (costCredits, costEur, balanceCredits, cellsResolvedRegistry, cellsResolvedAi) from the API's X-Talonic-Cost-* headers. Read tools don't consume credits and carry no cost; talonic_to_markdown on the document_id path returns cost: null. For balance any time → talonic_get_balance.

Develop

bash
git clone https://github.com/talonicdev/talonic-mcp.gitcd talonic-mcpnpm installnpm run buildnpm testnode dist/server.js --version

Contributing to docs or adding a tool? Read AGENTS.md and docs/architecture/docs-pipeline.md first — there are two parallel docs surfaces and it's easy to edit the wrong one.

Privacy

This MCP server is a thin client. It does not collect, store, log, or transmit any data on its own. Every tool call is forwarded directly to api.talonic.com using your credential, and the response is returned verbatim. The server does not persist API keys, inputs, outputs, or document contents beyond a single tool call; sends no analytics or telemetry; and reads/writes files only at the file_path you explicitly pass, only for that call's duration.

What Talonic does with uploaded data is governed by talonic.com/privacy: documents are processed for OCR + extraction, results live in your isolated workspace at app.talonic.com, and workspace data is not shared with third parties. To delete state, remove documents/schemas in the dashboard or revoke the API key. Privacy questions specific to this integration: [email protected].

License

MIT © Talonic GmbH

Source: README.md at commit 3c856fd

Tools

36

talonic_list_schemas

List Talonic Schemas

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 `schema_id`.

Takes no parameters.

talonic_save_schema

Save Talonic Schema

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: `name`; `definition` — a JSON Schema ({type:'object',properties:{...}}) or a flat {field:'type'} map. RETURNS: the saved schema with id and short_id. Pass either to talonic_extract as `schema_id`.

Parametersnamerequireddefinitionrequireddescription

talonic_get_document

Get Talonic Document

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 `status`. Status lifecycle: pending_upload -> uploading -> queued -> extracting -> completed. Wait for `completed` before calling talonic_extract on a freshly uploaded doc. Terminal failure statuses: ocr_failed, extraction_failed, error — stop polling and report the failure to the user if any of these appear. To read the document's text, call talonic_to_markdown with this id.

Parametersdocument_idrequired

talonic_filter

Filter Talonic Documents

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 `field` (canonical name) or `field_id` (UUID), an `operator`, and usually a `value`. Operators: eq, neq, gt, gte, lt, lte, between (needs `value` AND `value_to`), contains, is_empty / is_not_empty (no value). `value`/`value_to` are string|number|boolean matching the field type (ISO YYYY-MM-DD for dates). TEXT FILTERS: for eq/contains/is_not_empty on a text field, just TRY a natural field name ('currency', 'vendor_name') — names resolve server-side and an unresolved field surfaces in warnings[] rather than erroring. Do NOT block on discovering the field first; search-first is only required for numeric operators. NUMERIC GUARD: gt/gte/lt/lte/between only work when the field's dataType is 'number'. Call talonic_search first and check dataType; a numeric op on a string field returns zero matches. If the response has `warnings[]`, surface them to the user — do not silently retry. RETURNS: data[] (matching documents with field values), total, warnings[].

Parameterspagesortlimitsearchconditionsrequiredsource_connection_id

talonic_to_markdown

Document to Markdown

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 `document_id` (a workspace doc — one cheap call). Otherwise `file_url`, or `file_data`+`filename` for small local files — provide exactly one. A file input ingests the document first and consumes credits; `document_id` does not. RETURNS: document_id and markdown (the full text).

Parametersfile_urlfilenamefile_datafile_pathdocument_id

talonic_extract

Extract Data from Document

Extract structured, schema-validated JSON from a document: PDF, scan, image, DOCX, email, or photo. Returns the requested fields with per-field confidence scores and, with include_provenance, the page and source text each value came from. USE WHEN: the user asks to extract data from a document, turn a PDF into JSON, pull fields from a file, or parse a scan / form / statement / receipt / report, for common (invoice, contract) or unusual document types. 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 `schema` (JSON Schema, e.g. {type:'object',properties:{vendor_name:{type:'string'}}}) OR a saved `schema_id`, not both. Don't know the fields yet? Set `auto_schema:true` to let Talonic discover them (open capture) and return a suggested schema you can refine. Provide EXACTLY ONE document source: `document_id` (cheapest, a workspace doc), `file_url` (public URL), or `file_data`+`filename` (small local files only). COST: each call uses credits; talonic_get_balance shows the remaining balance. RETURNS: data (the JSON), confidence.overall and confidence.fields (treat <0.7 as needs review), provenance per field when include_provenance is set, document metadata, extraction_id.

Parametersschemafile_urlfilenamefile_datafile_pathschema_idauto_schemadocument_idinstructionsinclude_markdowninclude_provenance

talonic_get_balance

Get Talonic Credit Balance

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.

Takes no parameters.

talonic_get_pricing

Get Talonic Pricing

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 }.

Takes no parameters.

talonic_get_usage

Get Talonic Usage

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.

Parametersdays

talonic_request_upload

Request File Upload

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: the client cannot attach file bytes to a tool call, or the file is 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.

Parametersfilenamerequired

talonic_list_fields

List Registry Fields

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: `search` (case-insensitive contains on name), `maturity` (core | proven | candidate — prefer `core`/`proven` for anything you will build on), `include_superseded` (default false: rows merged into another concept are hidden so you never see two ids for one concept), `limit`, `cursor`. RETURNS: data[] of { id, canonical_name, display_name, data_type, maturity, tier, synonyms, description, occurrence_count, superseded_by, links } plus cursor pagination.

Parameterslimitcursorsearchmaturityinclude_superseded

talonic_get_field

Get Field Concept Card

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 `field_id` or `name`. Names are resolved through canonical name → spelling fold → merge aliases → synonyms (then case-insensitive fallbacks) and followed to the live concept; the response says which arm matched. `include_history: true` appends the curation trail (merges, renames, maturity moves). RETURNS: the card { id, canonical_name, maturity, data_type, definition, identity, occurrence, values, usage, links } plus `resolution` when a name was given and `history` when requested.

Parametersnamefield_idinclude_history

talonic_field_values

Read Field Values

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 `field_id` or `name`; optional `document_id` (one document), `value` (case-insensitive contains filter), `limit` (max 100), `cursor`. RETURNS: { field_id, canonical_name, concept_ids, data[] of { occurrence_id, document_id, document_filename, value, confidence, provenance{ raw_field_name, source_text, resolved_by, needs_confirmation, via_redirect }, links }, pagination }. Rows are Sources-IAM filtered for the caller.

Parametersnamelimitvaluecursorfield_iddocument_id

talonic_find_data

Find Data by Concept

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: `query` (the concept, in the user's words), optional `top_k` (1–25, default 10), `document_ids` (hard scope). RETURNS: ranked planes — FIELDS (canonical_name, field ids/keys, maturity/tier, occurrence_count, sample values with their documents), VALUES, DOCUMENTS and PASSAGES — every item a ready handle for the next call. Read-only, no LLM cost.

Parametersqueryrequiredtop_kdocument_ids

talonic_list_agent_tools

List Platform Agent Tools

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: `only_invocable` (default true — hide tools this credential cannot run), `include_schemas` (default true — include each tool's JSON input schema). RETURNS: { tools[] of { name, description, impact, capability, can_invoke, input_schema? }, invocable_count, totalCount }.

Parametersonly_invocableinclude_schemas

talonic_invoke_agent_tool

Invoke Platform Agent Tool

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. `query_data` for a read-only SQL SELECT over the extracted data, `describe_data` for the queryable field list, `get_document_markdown` to read a document's text). READ-ONLY FOR EVERY CREDENTIAL: the platform runs each caller of this route, API key or OAuth session alike, as its least-privilege viewer role, which grants only the registry's read-only tools (capability `data.read`). Write-capable registry tools are never invocable here, however you connected, so this tool reads and never changes workspace data. Target API: Talonic agent tool registry — https://talonic.com/docs/api (POST /v1/agent/tools/{name}/invoke; input schemas from talonic_list_agent_tools). USE WHEN: talonic_list_agent_tools showed a tool with can_invoke: true that does what you need. Pass exactly the `args` its input_schema declares. NOT FOR: anything a dedicated talonic_* tool already does (prefer those — they are shaped for you). ARGS: `name` (tool name), `args` (object matching the tool's input_schema), optional `document_ids` (hard scope for scope-aware tools). RETURNS: { tool, result (the tool's parsed output), citations?, artifacts?, cards? }. Denied capabilities come back as an error naming the capability required; the platform re-checks every call.

Parametersargsnamerequireddocument_ids

talonic_list_agent_tasks

List Agent Tasks

List Agent-stage tasks visible to this Talonic workspace credential. USE WHEN: looking for external-agent work to process; begin with status 'available'. To take a batch of one pipeline (e.g. 'take 10 tasks of pipeline X'), list with pipeline_id and status 'available', then claim each with talonic_claim_agent_task; a task another agent took returns HTTP 409, so skip it and take the next. NOT FOR: reading the immutable task payload (use talonic_get_agent_task) or taking a lease (use talonic_claim_agent_task). ARGS: optional status, pipeline_id, limit, and cursor. RETURNS: metadata only plus pagination.next_cursor.

Parameterslimitcursorstatuspipeline_id

talonic_get_agent_task

Get Agent Task

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.

Parameterstask_idrequired

talonic_claim_agent_task

Claim Agent Task

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: input_snapshot, instructions, and output_contract, whose entries carry each field's Spec rules (description) and allowed codes (enumValues). Review the documents against those rules.

Parameterstask_idrequired

talonic_heartbeat_agent_task

Heartbeat Agent Task

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.

Parameterstask_idrequiredexecution_epochrequired

talonic_submit_agent_task

Submit Agent Task

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.

Parametersoutputsrequiredsummarytask_idrequiredexecution_epochrequired

talonic_list_specs

List Specs

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 `search` (name contains, case-insensitive), `limit` (1–100, default 20), `cursor` (from pagination.next_cursor), `order` (asc|desc by updated_at). RETURNS: { data[] of { id, name, description, schema_id, version, materialized_version, materialized_at, field_count, node_count, created_at, updated_at, links }, pagination { total, limit, has_more, next_cursor } }.

Parameterslimitordercursorsearch

talonic_get_spec

Get a Spec's structure

Get one Spec's structure: identity and version state, the schema it materializes onto, `nodes[]` (the rail as authored, in editing order) and `phases[]` (the compiled execution plan, in run order — a validation checkpoint expands to one phase per gate, so the two lists differ on purpose), and `fields[]` (Spec field ↔ schema field). USE WHEN: you need to explain what a run will do, confirm a Spec is published (`version` non-null) before talonic_run_spec, or map field names to keys. NOT FOR: listing Specs (talonic_list_specs) or starting a run (talonic_run_spec). ARGS: `spec_id` (UUID from talonic_list_specs); optional `include_versions` (adds `versions[]` — published versions newest first, each { version, content_hash, created_at, is_materialized }). RETURNS: the Spec object { id, name, description, schema_id, version, materialized_version, materialized_at, field_count, node_count, schema, nodes[], phases[], fields[], links } plus optional versions[].

Parametersspec_idrequiredinclude_versions

talonic_run_spec

Run a Spec pipeline

Run a Spec — the customer's configured pipeline — over documents, in one call. Two inputs: `document_ids` (documents already in the workspace; for a new file, first talonic_request_upload → poll talonic_get_document until completed) OR `file_urls` (public https files, max 20; Talonic ingests them first). Consumes credits. 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: `spec_id` (talonic_list_specs); exactly one of `document_ids[]` (1–500) or `file_urls[]` (1–20, https); optional `name`, `pipeline_mode` (`new` default | `append` to the Spec's existing pipeline); `batch_id` and flat `metadata` only with file_urls. RETURNS: RunEnvelope { run_kind ('pipeline'|'run'), run_id, pipeline_id, spec_id, status ('processing'|'completed'|'failed'), raw_status, input_count, documents?, message?, links }. Then poll talonic_get_run with the `pipeline_id` when run_kind is 'pipeline', or with the `run_id` when it is 'run', every 5–10 s until status is completed/failed, then talonic_get_run_results.

Parametersnamespec_idrequiredbatch_idmetadatafile_urlsdocument_idspipeline_mode

talonic_get_run

Poll a Spec run

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 `completed` or `failed`. NOT FOR: reading the structured rows (talonic_get_run_results) or starting a run (talonic_run_spec). ARGS: exactly one of `pipeline_id` (run_kind 'pipeline') or `run_id` (run_kind 'run'), from the RunEnvelope. RETURNS: { run_kind, run_id, pipeline_id, spec_id, status, raw_status, input_count?, progress { total_documents, completed_documents, error_documents, phases?[] }, documents?[], error_message?, created_at, updated_at }.

Parametersrun_idpipeline_id

talonic_get_run_results

Read a Spec run's rows

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 `completed` (partial rows are also readable while `processing`). NOT FOR: progress (talonic_get_run) or per-field provenance of a single value (include: ['provenance'] here, or talonic_field_values). ARGS: exactly one of `pipeline_id` (run_kind 'pipeline', optionally with the envelope's `run_id` to scope to that submission) or `run_id` alone (run_kind 'run'); optional `document_id` (one document), `include` (['cells','provenance'] — heavier payload), `limit` (1–200, default 50), `cursor`. RETURNS: { run_kind, status, columns[] of { field_key, display_name, data_type }, data[] of { document_id, filename, record_id, status ('complete'|'partial'|'error'|'processing'), completed_at, fields { field_key: value }, cells?, provenance? }, pagination, pending_review_count, links }.

Parameterslimitcursorrun_idincludedocument_idpipeline_id

talonic_ask

Ask a question over the workspace

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: `question`; optional `scope` { document_ids[], schema_id, pipeline_id, data_product_id, document_type, source_id, tags[], ingested_after, ingested_before } (ANDed), `conversation_id` (continue a thread), `output_format` { instruction, template }, `wait_seconds` (0–55, default 45). RETURNS: { ask_id, status ('completed'|'processing'|'error'), conversation_id, answer (markdown), citations[] { quote, document_id, kind, filename, app_url }, verification { verdict, checks_total, checks_unsupported, correction }, usage { tokens, credits_charged }, tool_calls, artifacts[], waited_ms }. If status is still 'processing' after the wait, call talonic_get_answer with the ask_id.

Parametersscopequestionrequiredwait_secondsoutput_formatconversation_id

talonic_get_answer

Poll an ask for its answer

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: `ask_id`. RETURNS: the same answer envelope as talonic_ask (answer, citations[], verification, usage) or { status: 'processing', poll_hint }.

Parametersask_idrequired

talonic_list_decision_tasks

List Decision Tasks

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.

Parameterslimitapp_idrequiredcursorstatus

talonic_claim_decision_task

Claim Decision Task

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.

Parameterstask_idrequired

talonic_read_decision_package

Read Decision Package

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.

Parameterslimitcursortask_idrequired

talonic_heartbeat_decision_task

Heartbeat Decision Task

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.

Parameterstask_idrequiredexecution_epochrequired

talonic_submit_decision_task

Submit Decision Task

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.

Parametersoutcomerequiredtask_idrequiredevidencerequiredrationalerequiredconfidenceexecution_epochrequiredservice_version

talonic_release_decision_task

Release Decision Task

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.

Parameterstask_idrequiredexecution_epochrequired

talonic_fail_decision_task

Fail Decision Task

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.

Parametersreasonrequiredtask_idrequiredexecution_epochrequired

Version history

16
  1. v0.1.93LatestOct 29, 2026
  2. v0.1.92Oct 21, 2026
  3. v0.1.91Oct 16, 2026
  4. v0.1.90Oct 14, 2026
  5. v0.1.89Oct 12, 2026
  6. v0.1.88Oct 12, 2026
  7. v0.1.86Oct 9, 2026
  8. v0.1.85Oct 8, 2026
  9. v0.1.84Oct 6, 2026
  10. v0.1.83Oct 6, 2026
  11. v0.1.82Sep 25, 2026
  12. v0.1.81Sep 24, 2026
  13. v0.1.80Sep 24, 2026
  14. v0.1.79Sep 23, 2026
  15. v0.1.78Sep 22, 2026
  16. v0.1.76Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts