Skip to main content
Glama

Doxis AI.dp (Klippa DocHorizon) MCP by usefulapi

Server Details

Capture invoices, receipts, IDs and bank statements with Doxis AI.dp; split, render, convert files.

Ownership verified
Status
Healthy
Uptime
99.1% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A4.1/5.0

Scored across 30 tools

Disambiguation4/5

Most tools target a clearly distinct resource or action, and the async job management tools (list/get/result/logs/delete) are well delineated. The main risk is the family of capture tools, where capture_financial, capture_einvoice and capture_with_prompt could be confused for an invoice, though the descriptions do spell out the differences.

Naming Consistency5/5

Every tool follows the same dochorizon_ prefix followed by a consistent verb_noun pattern (capture_x, list_x, get_x, delete_x), with the same convention applied uniformly across all sub-domains.

Tool Count4/5

30 tools is on the heavy side, but the server spans genuinely broad scope (capture models, async jobs, document toolkit, e-invoicing/Peppol, storage, config metadata), so roughly six tools per sub-domain each earn their place. It is slightly over the ideal, but not bloated.

Completeness4/5

Coverage is strong: async jobs have full lifecycle (list, get, result, logs, delete), capture is available sync and async, and storage/toolkit/e-invoicing are covered. The only notable gap is no storage delete/expiry management tool to complement upload/download, a minor workaround-able omission.

Available Tools

30 tools
dochorizon_capture_bank_statementCapture a bank statementAInspect

SPENDS CREDITS: extract a bank statement: bank, account holder, period, opening and closing balance and every transaction. WARNING: the result contains personal data of the people on the document; handle it accordingly. It is returned to you only; this server never stores or logs it. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_capturing/v1/bank_statement.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesNoPages to process, for example '1-3, 5', '2-last', 'first-last' (default: all pages; documents over 50 pages time out).
content_typeNoMIME type, if it cannot be detected.
configuration_slugNoSlug of a capturing configuration made in the platform (see dochorizon_list_configurations). Optional: the model's defaults apply without it.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: it spends credits (billed per request or per page, project pricing, EUR 25 free credit), the result contains personal data and is returned only to the caller (server never stores or logs it), plus operational limits (30s URL download, 50-page timeout). None of this is derivable from readOnlyHint/openWorldHint/destructiveHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the credit warning and the extraction scope before the handling warnings and input rules. Long but dense, with each sentence carrying billing, privacy, or input-selection information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description effectively names the returned fields and warns that they contain personal data, so an agent knows what comes back. Minor gaps remain around error behavior and whether large documents must be split, though page_ranges and the 50-page timeout partially cover that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds a real constraint not expressed in the schema: exactly one of url/data_base64/file_id must be supplied (the schema marks all 8 params optional with no oneOf). The cost implication of configuration_slug is also noted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('extract a bank statement') and enumerates the exact fields returned (bank, account holder, period, opening/closing balance, every transaction). This clearly separates it from sibling capture tools such as einvoice, salary slip, or identity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a strong input-selection rule: 'Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file)', and points to dochorizon_list_configurations for the optional configuration_slug. It does not, however, say when to prefer this over dochorizon_capture_generic or the async capture variants.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_capture_einvoiceCapture a document as an e-invoiceAInspect

SPENDS CREDITS: read an invoice with the financial model and return it in the Universal Invoice structure used for e-invoicing (parties, lines, tax subtotals, totals, payment means). Does not send anything to a network. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_capturing/v1/einvoice.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesNoPages to process, for example '1-3, 5', '2-last', 'first-last' (default: all pages; documents over 50 pages time out).
content_typeNoMIME type, if it cannot be detected.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the credit-billing model (per request or per page, extra configurable components add cost, project pricing location, EUR 25 starting credit) and the critical fact that nothing is sent to a network. This is exactly the cost/authorization context an agent cannot get from the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the most decision-relevant fact ('SPENDS CREDITS') and keeps to a single tight paragraph. The free-credit detail borders on marketing, but overall most sentences carry operational weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by describing the returned structure, and it covers input alternatives, billing, network behavior, and page/timeout limits. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds the mutual-exclusivity constraint ('exactly one of url, data_base64 or file_id') and sizing preference ('prefer url or file_id for anything bigger') that the flat properties object does not express.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('read an invoice with the financial model') and names the exact output contract ('Universal Invoice structure used for e-invoicing ... parties, lines, tax subtotals, totals, payment means'). This meaningfully separates it from capture_generic and capture_financial, though it never explicitly routes the agent between the many capture_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its context (invoice capture for e-invoicing) and gives input-format selection guidance ('give the document as exactly one of url, data_base64 or file_id'). However it never states when to pick this tool over dochorizon_capture_financial, capture_generic, or convert_einvoice, so alternative selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_capture_financialCapture an invoice or receiptAInspect

SPENDS CREDITS: extract structured data from an invoice, receipt or other financial document with the Financial model: merchant and customer, dates, totals, VAT, line items, payment details, currency, and more (as the chosen configuration enables). Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). Synchronous; for long documents use dochorizon_submit_async_capture. POST /document_capturing/v1/financial.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesNoPages to process, for example '1-3, 5', '2-last', 'first-last' (default: all pages; documents over 50 pages time out).
content_typeNoMIME type, if it cannot be detected.
configuration_slugNoSlug of a capturing configuration made in the platform (see dochorizon_list_configurations). Optional: the model's defaults apply without it.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds genuinely non-structured context: credit spend, per-request vs per-page billing, and the EUR 25 free-credit detail. It does not disclose the return format, but the billing/cost disclosure is meaningful added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the most decision-relevant fact ('SPENDS CREDITS') then the capability, input rule, and sync guidance. The billing sentence is dense with parenthetical detail, but each sentence serves a distinct purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should ideally hint at the return shape; it lists the extracted fields (merchant, totals, VAT, line items, currency) which partly covers this. Billing, sync behavior, and input constraints are all present, so the agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds a real constraint beyond the schema — 'exactly one of url, data_base64 or file_id' — clarifying the mutually exclusive input methods, which the schema does not express.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('extract structured data from an invoice, receipt or other financial document') and names the Financial model, so the agent knows what it produces. Sibling differentiation is only partial: 'other financial document' is broad and overlaps with dochorizon_capture_bank_statement and dochorizon_capture_einvoice without explicitly excluding them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the sync/async split and routes long documents to dochorizon_submit_async_capture. Does not state when to prefer this Financial capture over the einvoice/generic siblings, but the model framing implies it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_capture_genericCapture any document as key-values and tablesAInspect

SPENDS CREDITS: turn any document into generic structured data: key-value pairs and tables, as JSON. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_capturing/v1/generic.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesNoPages to process, for example '1-3, 5', '2-last', 'first-last' (default: all pages; documents over 50 pages time out).
content_typeNoMIME type, if it cannot be detected.

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the safety profile (readOnly=false, destructive=false, openWorld=true), so the description carries the rest — and it delivers: credit consumption, per-request vs per-page billing, cost from extra configuration components, where pricing lives, the EUR 25 starting credit, and hard timeouts on download and page count. This is unusually rich behavioral disclosure beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the most decision-relevant fact ('SPENDS CREDITS') and stays to a single paragraph with no filler. The billing sentence is dense with nested parentheticals, which slightly hurts scannability, but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter, zero-required, no-output-schema tool, the description covers cost, input modes, timeouts and the return shape (JSON key-values and tables). It does not mention the async capture path for large/long-running documents despite 50-page timeouts, which is the main remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds a genuine constraint the schema lacks: url, data_base64 and file_id are mutually exclusive ('exactly one of'), and the schema declares zero required parameters with no oneOf. That is real value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'turn any document into generic structured data: key-value pairs and tables, as JSON'. The word 'generic' implicitly contrasts with the specialized capture siblings (bank_statement, einvoice, salary_slip), but no sibling is named explicitly, so an agent must infer the routing rather than read it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear guidance on input selection ('Give the document as exactly one of url, data_base64 or file_id') including size-based preference elsewhere in the schema, which is useful routing. However, it never says when to pick this generic capture over dochorizon_capture_bank_statement, capture_with_prompt or the async alternative — that choice is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_capture_identityCapture an identity documentAInspect

SPENDS CREDITS: read an identity document (passport, ID card, driver's licence, visa) with the Identity model: name, date of birth, nationality, document number, expiry, MRZ, validity and fraud checks. WARNING: the result contains personal data of the people on the document; handle it accordingly. It is returned to you only; this server never stores or logs it. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). Images up to 4096 px per side. POST /document_capturing/v1/identity.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesNoPages to process, for example '1-3, 5', '2-last', 'first-last' (default: all pages; documents over 50 pages time out).
content_typeNoMIME type, if it cannot be detected.
configuration_slugNoSlug of a capturing configuration made in the platform (see dochorizon_list_configurations). Optional: the model's defaults apply without it.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations by disclosing that the call consumes Doxis AI.dp credits (per request/page, with configuration-dependent extra cost), the project's price and free-credit amount, the privacy warning that the result contains personal data, and the fact that the server never stores or logs the result. These are exactly the behavioral traits an agent needs for a paid, open-world capture operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the critical cost warning ('SPENDS CREDITS') and then proceeds purpose → privacy → billing → input → limits → endpoint in a compact narrative with no filler. Every sentence carries actionable content for invocation or cost/privacy decisions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with full schema coverage, no output schema and annotations, the description is complete: it covers purpose, valid input forms, the cost model, privacy handling and the extracted fields that will be returned. No essential invocation detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds a mutually exclusive input constraint ('exactly one of url, data_base64 or file_id') and an image size limit ('up to 4096 px per side') that the schema does not state. It otherwise relies on the schema for parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('read') and resource ('identity document') and enumerates accepted document types (passport, ID card, driver's licence, visa) plus the Identity model's extracted fields. This distinguishes it from sibling capture tools that target other document classes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: for identity documents, exactly one of url/data_base64/file_id must be supplied, with size and page limits and an optional configuration_slug linked to dochorizon_list_configurations. It does not explicitly name a sibling alternative (e.g. dochorizon_capture_generic) for non-identity documents, so routing is implied by document types rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_capture_salary_slipCapture a salary slipAInspect

SPENDS CREDITS: extract a salary slip (payslip): employer, employee, period, gross and net pay, deductions. WARNING: the result contains personal data of the people on the document; handle it accordingly. It is returned to you only; this server never stores or logs it. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_capturing/v1/salary_slip.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesNoPages to process, for example '1-3, 5', '2-last', 'first-last' (default: all pages; documents over 50 pages time out).
content_typeNoMIME type, if it cannot be detected.
configuration_slugNoSlug of a capturing configuration made in the platform (see dochorizon_list_configurations). Optional: the model's defaults apply without it.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the generic mutation profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true); the description adds far more: it spends credits, how billing works (per request or per page, configurable extras, project pricing, EUR 25 starting credit), that the result contains personal data, that the server never stores or logs it, and the 50-page/30-second timeout limits. This is exactly the behavioral context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the credit-spend warning, then the privacy warning, then the input contract, then the endpoint. Every sentence carries information, but the billing sentence is dense and somewhat sprawling with parenthetical commercial detail (Billing → Pricing, EUR 25 free credit) that could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no output schema and thin annotations, the description covers cost, privacy, input modes, and processing limits well, and names the extracted output fields so return content is inferable. It does not mention the asynchronous alternative (dochorizon_submit_async_capture) for documents that would exceed the synchronous limits, which is the one notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds a genuine cross-parameter constraint the schema does not encode (required count is 0, so nothing enforces it): the document must be given as exactly one of url, data_base64, or file_id. That exclusivity rule is real value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (extract a salary slip/payslip) and enumerates the extracted fields (employer, employee, period, gross/net pay, deductions), which clearly separates it from sibling capture tools for bank statements, identity documents, or e-invoices. An agent can select this over dochorizon_capture_generic or dochorizon_capture_financial without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete invocation conditions: supply the document as exactly one of url, data_base64, or file_id, with size limits implied by each; configuration_slug is optional and dochorizon_list_configurations is named for finding one. It does not, however, state when to prefer an alternative such as dochorizon_submit_async_capture for large documents, so it stops short of explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_capture_with_promptCapture with a Prompt Builder configurationAInspect

SPENDS CREDITS: extract data from a document with a Prompt Builder configuration (an LLM extraction prompt you defined in the platform). Output follows that configuration's schema (see dochorizon_get_prompt_schema). The result may contain whatever personal data the document holds. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_capturing/v1/prompt_builder/configurations/{slug}.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
slugYesPrompt Builder configuration slug (see dochorizon_list_prompt_configurations).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesNoPages to process, for example '1-3, 5', '2-last', 'first-last' (default: all pages; documents over 50 pages time out).
content_typeNoMIME type, if it cannot be detected.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: it leads with SPENDS CREDITS, explains per-request/per-page billing (with extra-component cost), cites the project pricing location and EUR 25 free credit, notes the result may contain personal data, and warns that >50-page documents time out. These cost, privacy, and limit disclosures are exactly what mutations need and are not in the annotation set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the cost warning, then purpose, output, privacy, billing, and input method in a logical order with no filler sentences. It is dense and slightly long, and the trailing endpoint path is marginal for an agent, but each clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description routes the agent to dochorizon_get_prompt_schema for the return shape, and covers cost, input modes, password handling, and timeouts. It stops short of describing the return envelope itself, but the sibling reference largely compensates for the missing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the schema documents each parameter, but the description still adds the crucial mutual-exclusivity rule (exactly one of url, data_base64, file_id) and characterizes each option (public https, small files, stored file), which the schema does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: extract data from a document using a Prompt Builder configuration, explicitly defined as an LLM extraction prompt the user created. This clearly differentiates it from the fixed-schema siblings like capture_bank_statement or capture_einvoice, which extract to predefined formats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage constraints: supply the document as exactly one of url, data_base64, or file_id, and points to dochorizon_get_prompt_schema and dochorizon_list_prompt_configurations for setup. It does not explicitly state when to prefer this over the generic or domain-specific capture siblings, leaving that routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_convert_einvoiceConvert an e-invoice to Universal Invoice JSONAInspect

Convert an e-invoice (XML or hybrid PDF) to the Universal Invoice JSON structure (parties, lines, taxes, totals). Nothing is sent to anyone. May use credits per your pricing. POST /einvoicing/v1/tools/convert/einvoice.

NameRequiredDescriptionDefault
xmlNoThe e-invoice as XML text (UBL, CII, ...).
validateNoValidate the e-invoice during conversion.
data_base64NoThe e-invoice file as base64 (XML, or a hybrid PDF such as ZUGFeRD / Factur-X).
einvoice_typeNoThe e-invoice type, if it should not be auto-detected (see dochorizon_list_einvoice_types).
include_unmapped_fieldsNoAlso return fields of the original that have no place in the universal format.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false). The description adds genuinely useful context beyond them: no data is transmitted externally, and credit consumption may apply. It could go further (e.g. what 'readOnlyHint=false' concretely means here), but it earns credit for the added behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose in the first sentence and follows with three short, useful statements. Efficient overall, though the raw POST endpoint adds little value for an agent choosing a tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the burden of describing the return value; it names the Universal Invoice JSON structure and its main sections, which is reasonably sufficient. Parameter semantics are fully covered by the schema, so coverage is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters (xml, data_base64, validate, einvoice_type, include_unmapped_fields) are already fully documented in the schema. The description adds no syntax or format guidance beyond that, so baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Convert) and resource (an e-invoice in XML or hybrid PDF) plus the target format (Universal Invoice JSON, with parties/lines/taxes/totals). This clearly distinguishes it from siblings like dochorizon_validate_einvoice and dochorizon_capture_einvoice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the standard path is to feed an existing e-invoice XML/PDF and get JSON back. It never states when to prefer this over validate_einvoice or capture_einvoice, nor any prerequisites (e.g. credit requirements, auth). Adequate but leaves the agent to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_delete_async_jobDelete an asynchronous jobA
DestructiveIdempotent
Inspect

WRITE: permanently delete an async job, its result and the stored documents from Doxis AI.dp's servers; a job still waiting in the queue is cancelled. Use it to remove personal data you no longer need. Cannot be undone. DELETE /document_capturing/v1/async/{job_id}.

NameRequiredDescriptionDefault
job_idYesThe job_id returned when the document was submitted.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, so the safety profile is known, but the description adds substantial context beyond them: exactly what is destroyed (the job, its result, and the stored documents), that a queued job is cancelled rather than merely removed, and that the action is irreversible. The queued-job cancellation behavior is non-obvious and would not be inferable from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded block of clauses with no filler: the operation class leads, followed by effect scope, use case, irreversibility, and endpoint. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter destructive endpoint with no output schema, the description covers everything needed: what the operation is, what data it removes, its effect on in-flight jobs, its irreversibility, and the underlying route. Nothing required for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single job_id parameter is fully documented in the schema, so the baseline of 3 applies. The description restates the parameter only implicitly through the DELETE endpoint path and adds no syntax or source detail beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('permanently delete an async job, its result and the stored documents') plus the service scope (Doxis AI.dp servers). It is clearly distinguishable from read-oriented siblings such as get_async_job, get_async_job_result, and list_async_jobs, and the 'WRITE:' prefix makes the operation class unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete intended use case ('remove personal data you no longer need') and notes the queued-job case, so the agent has clear context for invoking it. It does not, however, name alternatives or state when not to use it (e.g., retrieve results via get_async_job_result first), so it falls short of explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_document_infoGet document infoAInspect

SPENDS CREDITS: page count, page sizes, content type, metadata and permissions of a PDF or TIFF. Useful to check the page count before capturing. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_toolkit/v1/info.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
content_typeNoMIME type, if it cannot be detected.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations by disclosing that the call SPENDS CREDITS, the billing model (per request or per page, extra components can add cost), the pricing reference and the free-credit starting balance. It also states the input exclusivity constraint and the POST endpoint. It doesn't explain the unusual readOnlyHint=false for what looks like a read, or timeout/error behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the cost warning and the returned fields, which are the two most decision-relevant facts, and is mostly sentence-efficient. The billing sentence is dense and the 'EUR 25 of free credit' detail is marginal, keeping it just under full marks.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names what is returned (page count, sizes, content type, metadata, permissions), and it covers the mutually-exclusive input modes for a 6-parameter, zero-required tool. Costs and inputs are covered; error/timeout handling on the 30-second download is only covered by the schema, not the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds a genuine constraint absent from the schema: the document must be supplied as exactly one of url/data_base64/file_id, plus a size hint ('small files' for base64). That one-of exclusivity is real semantic value the schema does not encode (no required fields, no oneOf).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('info' on a PDF/TIFF) and enumerates exactly what it returns: page count, page sizes, content type, metadata and permissions. It also positions itself against the capture siblings by naming the pre-capture page-count check, so an agent can tell it apart from dochorizon_capture_* without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Useful to check the page count before capturing' gives a concrete when-to-use scenario tied to the sibling capture tools. It does not state explicit exclusions or when another toolkit tool (e.g. render/split) is preferable, so it falls short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_document_mergeMerge PDFsAInspect

SPENDS CREDITS: merge two or more PDFs into one, in the order given, optionally taking only some pages of each. The merged file is stored in Doxis AI.dp storage and returned as a file id. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Each document is one of url (public https), data_base64 or file_id. POST /document_toolkit/v1/merge.

NameRequiredDescriptionDefault
documentsYesThe PDFs to merge, in order (2 to 10).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true. The description goes well beyond that: it discloses that the call consumes the caller's Klippa credits, that pricing is per request or per page with extra components adding cost, that free credit starts at EUR 25, that the artifact lands in Doxis AI.dp storage as a file id, and it exposes the endpoint path. This is exactly the cost/side-effect context an agent cannot get from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but well front-loaded: the merge action and the credit warning lead, followed by output location and input forms. The billing tangent ('Billing → Pricing in the platform'); 'EUR 25 of free credit') is slightly verbose, but it is decision-relevant and the whole block stays compact with no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so ('returned as a file id'), while also covering storage location, cost model, accepted input forms, ordering constraint, and endpoint. For a single-parameter tool with a rich nested schema, nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning the schema does not express: each document is one of url, data_base64 or file_id (the schema lists all three properties without an exclusive oneOf), documents must be given in merge order, and page_ranges is optional with a default of all pages. Minor gain over a fully documented schema, hence a 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('merge two or more PDFs into one'), plus scope details: order preserved, optional per-document page subsetting, and the output ('stored in Doxis AI.dp storage and returned as a file id'). An agent can distinguish this from dochorizon_document_split and dochorizon_upload_file without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb plus the cost framing, and the description gives a useful deployment condition (credit consumption, billing per request or per page). It never states when NOT to use this tool or names a sibling alternative (e.g., document_split) that an agent should prefer for the inverse operation, so the guidance stays implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_document_renderRender PDF pages as imagesAInspect

SPENDS CREDITS: render pages of a PDF as images, optionally limited in width/height. Each render config gives page_ranges and optional width and height in pixels. Images are stored in Doxis AI.dp storage and returned as file ids (use dochorizon_download_file for small ones). Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_toolkit/v1/render.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
rendersYesThe render configurations.
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
content_typeNoMIME type, if it cannot be detected.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations only covering readOnly/openWorld/idempotent flags, the description carries the real behavioral burden and does so: it discloses that credits are spent (billed per request or per page, project pricing, extra components add cost), that output images land in Doxis AI.dp storage and come back as file ids, and it even names the underlying endpoint. This is exactly the side-effect context an agent needs before calling a billable tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the highest-value signal ('SPENDS CREDITS'), and most sentences carry information. The billing paragraph (project pricing, Billing → Pricing, EUR 25 free credit) is somewhat more commercial detail than an agent needs, mildly diluting density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain returns — and it does ('returned as file ids'). Combined with input-source rules, cost model, storage side effect and password/content_type hints, an agent has everything needed to invoke this correctly. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds a constraint the schema does not encode: the document must be supplied as exactly one of url, data_base64 or file_id (the schema lists all three as optional with no oneOf/XOR). It also restates that each render config carries page_ranges plus optional width/height, reinforcing the nesting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('render pages of a PDF as images') plus the tunable output shape (width/height), which cleanly separates it from siblings like capture_*, convert_einvoice, merge and split. An agent can identify this as the rasterization tool without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage conditions: exactly one of url / data_base64 / file_id must supply the document, and it routes to dochorizon_download_file for retrieving small results. It lacks explicit when-not-to-use guidance or comparison against adjacent siblings (e.g. document_info), so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_document_splitSplit a PDFAInspect

SPENDS CREDITS: split a PDF into several PDFs by page ranges (one output file per range, for example ['1-3','4-6']). Output files are stored in Doxis AI.dp storage and returned as file ids you can pass to any other tool as file_id. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_toolkit/v1/split.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesYesOne entry per output file, e.g. ['1-3', '4-6', '7'].
content_typeNoMIME type, if it cannot be detected.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic mutation profile (readOnly=false, idempotent=false, destructive=false). The description adds substantial behavior beyond them: that it spends credits, how billing works, that outputs are stored in Doxis AI.dp storage and returned as reusable file ids, and the POST endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded with the 'SPENDS CREDITS' warning and the core behavior first. However, some billing detail ('extra components... can add cost', 'EUR 25 of free credit') leans promotional and could be trimmed without losing call-relevant meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the return-value burden by explaining outputs are stored and returned as file ids. Inputs, exclusivity, cost, output handling, and endpoint are all covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds a genuine constraint not in the schema: the three input-source parameters are mutually exclusive ('exactly one of'). It also reinforces that file_id values are portable across tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (split) and resource (PDF) plus the mechanism (by page ranges), with a concrete example ['1-3','4-6']. This clearly separates it from the obvious sibling dochorizon_document_merge and other document tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context on how to supply input ('exactly one of url, data_base64 or file_id') and on how outputs feed into other tools. It does not state explicit when-to-use/when-not versus alternatives, but the operation's purpose makes alternatives self-evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_download_fileDownload a stored file (small files only)A
Read-only
Inspect

Fetch a stored file by file_id and return it as base64. Only files up to 30 KB are returned inline; for larger files use the file_id in other tools instead. Does not process a document; normally not billed. GET /storage/v1/files/{file_id}.

NameRequiredDescriptionDefault
file_idYesA storage file id.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the safety profile (readOnly, non-destructive, openWorld); the description adds substantive behavioral facts beyond them — the 30 KB inline ceiling, that no document processing occurs, that it is normally not billed, and the underlying HTTP route. These are exactly the constraints an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with zero filler; the core action and the size constraint are front-loaded, and the billing/endpoint notes come last as secondary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by specifying base64 plus the 30 KB limit that determines when that return is actually usable. Combined with the inherited safety annotations, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and there is a single required file_id parameter, so the schema already does the work. The description reiterates file_id and the base64 return but adds no format or sourcing detail beyond the schema, which is the expected baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Fetch a stored file by file_id'), states the return format ('as base64'), and is clearly distinguishable from siblings like dochorizon_upload_file and the capture_* tools. An agent knows exactly what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear conditional: files up to 30 KB are returned inline, and for larger files the agent should pass file_id to other tools instead. It also clarifies this is not a document-processing tool. It stops short of naming the specific sibling tool to use for large files, so the routing is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_get_async_jobGet asynchronous job statusA
Read-only
Inspect

The status of one async capture job (in_queue, processing, hitl, done, error, closed, rejected). Does not process a document; normally not billed. GET /document_capturing/v1/async/{job_id}.

NameRequiredDescriptionDefault
job_idYesThe job_id returned when the document was submitted.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/non-destructive/openWorld, so the safety profile is covered; the description adds valuable context beyond that — the full status vocabulary and the fact that the call does not process the document and is normally not billed. It stops short of explaining polling behaviour or what 'hitl' entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded clauses with zero filler: what it returns, what it does not do, and the endpoint. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the enumerated status list effectively documents the return value, and the billing note covers a key operational concern. Only minor gaps remain (polling guidance, meaning of 'hitl'), which are not essential to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and there is a single required job_id, so the schema carries the burden. The description only restates that a job identifier identifies the job; it adds no format, source, or validation detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('The status of one async capture job') and enumerates the exact states returned (in_queue, processing, hitl, done, error, closed, rejected). This clearly separates it from the value-returning siblings get_async_job_result and get_async_job_logs, and the endpoint confirms the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It signals scope with 'one async capture job' and clarifies 'Does not process a document; normally not billed', which hints at when it is safe/cheap to call. But it never explicitly routes the agent to alternatives such as get_async_job_result once a job is done, or list_async_jobs for polling many jobs, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_get_async_job_logsGet asynchronous job logsA
Read-only
Inspect

Status changes and error messages of an async job, to debug a failed one. Does not process a document; normally not billed. GET /document_capturing/v1/async/{job_id}/logs.

NameRequiredDescriptionDefault
limitNoEntries per page (default 25).
job_idYesThe job_id returned when the document was submitted.
offsetNoSkip this many entries.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: 'Does not process a document; normally not billed' — billing and processing semantics an agent cannot infer from annotations or schema. It still omits return shape and pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, front-loading what the tool returns before the usage hint and the billing note. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully summarizes the return content (status changes and error messages) and covers billing behavior, which is the main non-obvious risk for this read-only call. Return format and pagination details remain unstated, but nothing essential to invoking it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so limit, offset, and job_id are already fully documented in the schema, and the description adds no syntax, format, or default detail beyond it. Baseline 3 is correct when the schema carries all parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and content type ('Status changes and error messages of an async job') and pins the endpoint GET /document_capturing/v1/async/{job_id}/logs, so an agent knows it retrieves logs rather than job status or results. It does not explicitly contrast with siblings get_async_job or get_async_job_result, leaving the boundary between 'logs' and 'job status' to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear selection condition: 'to debug a failed one.' This tells the agent when this tool is the right pick over the general job/result tools. It stops short of naming alternatives explicitly or stating when-not to use it, so it's clear context rather than full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_get_async_job_resultGet asynchronous job resultA
Read-only
Inspect

The captured data of a finished async job (status done). The result may contain personal data (identity, salary slip, bank statement). Does not process a document; normally not billed. GET /document_capturing/v1/async/{job_id}/result.

NameRequiredDescriptionDefault
job_idYesThe job_id returned when the document was submitted.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, non-destructive, openWorld). The description adds real value beyond them: a personal-data warning (identity, salary slip, bank statement), the 'does not process a document; normally not billed' cost note, and the required 'done' status. Return-format details are absent, but the added context is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences plus the endpoint path; every sentence carries information (purpose, privacy warning, billing/scope). The trailing URL is somewhat redundant but harmless.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with full schema coverage and annotations, the description covers purpose, precondition, privacy, and billing. Minor gaps remain (behavior when the job is not done, output shape), but nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single job_id parameter is already documented in the schema as 'the job_id returned when the document was submitted.' The description adds no syntax or format detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: it returns 'the captured data of a finished async job.' This is clearly distinct from status/logs siblings, though it does not name those siblings explicitly to route the agent away from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(status done)' implies a precondition that the job must be finished, but it does not tell the agent to check status via dochorizon_get_async_job first or what happens if the job is still running. Usage is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_get_key_infoGet API key infoA
Read-only
Inspect

Check the connected Doxis AI.dp (Klippa DocHorizon) API key: organization, project, credential id, and the services enabled for it. Does not process a document and costs nothing. GET /auth/v1/info.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. The description adds genuinely new behavioral facts beyond the annotations: no document processing occurs and the call costs nothing, which matters for credit-accounting agents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed sentences: the capability and returned fields come first, the cost/side-effect reassurance second, and the raw endpoint (GET /auth/v1/info) last. No filler and no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema present, the description compensates by listing the returned fields, and it covers cost and side-effect behavior for a zero-parameter read-only tool. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. The baseline for a no-parameter tool applies, and the description correctly avoids inventing input syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Check the connected Doxis AI.dp (Klippa DocHorizon) API key') and enumerates exactly what is returned: organization, project, credential id, and enabled services. This is unmistakably distinct from the capture/convert/validate siblings, which all process documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear situational context: it does not process a document and costs nothing, which tells an agent this is a free diagnostic call safe to run before spending credits. It stops short of naming alternatives or explicit exclusions, but the context is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_get_model_schemaGet a model's JSON schemaA
Read-only
Inspect

The JSON schema of what a capturing model returns (every field it can extract), optionally for one configuration. Does not process a document; normally not billed. GET /document_capturing/v1/{model}/schema or /{model}/configurations/{slug}/schema.

NameRequiredDescriptionDefault
modelYesThe capturing model.
configuration_slugNoSchema for this configuration (not for einvoice).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely new behavioral context the annotations cannot carry: that the call does not process a document and is normally not billed, plus the underlying endpoint paths.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the core purpose front-loaded, followed by a scope disclaimer and the endpoint paths. Nothing is padded, though the raw endpoint strings are somewhat boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully explains what the call returns ('every field it can extract'). Combined with the billing note and endpoint references, an agent has enough to invoke it correctly; only the missing sibling routing keeps it short of full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (model enum and configuration_slug) are already fully documented in the schema. The description's 'optionally for one configuration' restates the optional/modelling relationship and the endpoint shows the slug placement, but it adds little beyond the structured fields - the schema baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('The JSON schema of what a capturing model returns, every field it can extract') and clarifies it does not process documents, which separates it from the capture tools. It does not, however, name the closest sibling dochorizon_get_prompt_schema, so sibling differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Does not process a document; normally not billed' gives the agent clear context on what this call is and is not, steering away from the capture siblings. It stops short of naming an explicit alternative (e.g. get_prompt_schema for prompt-based models), so it is clear but not a full when/when-not routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_get_prompt_schemaGet a Prompt Builder JSON schemaA
Read-only
Inspect

The JSON schema of the output of one Prompt Builder configuration. Does not process a document; normally not billed. GET /document_capturing/v1/prompt_builder/configurations/{slug}/schema.

NameRequiredDescriptionDefault
slugYesPrompt Builder configuration slug.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds genuine beyond-annotation context about cost and side effects ('Does not process a document; normally not billed'), which is exactly the kind of trait an agent needs, though it stays silent on response format and error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-load the purpose, followed by the endpoint path. Every element is relevant, with only slight redundancy between the title and the opening clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, single-parameter introspection tool whose annotations cover the safety profile, the definition is nearly complete. The return value is itself a schema and no output schema is declared, so the only minor gap is the absence of any note on what the schema applies to downstream.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single slug parameter is fully documented in the schema (100% coverage) with pattern and length constraints, so the schema carries the load. The description adds nothing about the parameter beyond what is structured, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and outcome: the JSON schema of one Prompt Builder configuration's output. It is clearly distinct from get_model_schema in wording, though it doesn't explicitly name or contrast against that sibling, leaving the agent to infer the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds useful context that it 'Does not process a document; normally not billed,' which implies it is a cheap introspection call. However, it gives no explicit when-to-use versus alternatives like get_model_schema or list_prompt_configurations, so the routing guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_list_async_jobsList asynchronous capture jobsA
Read-only
Inspect

List the project's async capture jobs (newest first as returned): job_id, status, created time, with paging. Does not process a document; normally not billed. GET /document_capturing/v1/async.

NameRequiredDescriptionDefault
limitNoJobs per page (default 25).
offsetNoSkip this many jobs (use the previous reply's paging_data).
statusNoOnly jobs in these states.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, destructiveHint false), and the description adds real behavioral context: result ordering, paging behavior, and a billing note ('normally not billed'). It does not describe pagination limits or error behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short, front-loaded with the action and scope, then the key non-obvious caveats. Every clause earns its place; the trailing endpoint path is compact and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with annotation-covered safety and no output schema, the description compensates by naming the returned fields (job_id, status, created time) and the paging contract. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so limit/offset/status are already fully documented in the schema. The description only restates 'with paging' and adds no syntax or filter semantics beyond what the schema provides, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('the project's async capture jobs') with scope, ordering ('newest first'), and the fields returned. It is clearly distinguishable from the get/delete async job siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds a useful when-to-use signal by clarifying 'Does not process a document; normally not billed,' which separates it from the capture/submit tools, and 'with paging' signals the iteration use case. It never explicitly names a sibling alternative (e.g., get_async_job for a single job), so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_list_configurationsList capturing configurationsA
Read-only
Inspect

List the capturing configurations of a model (name, slug and the enabled components). Pass a slug as configuration_slug to a capture tool to choose which fields are extracted. Does not process a document; normally not billed. GET /document_capturing/v1/{model}/configurations.

NameRequiredDescriptionDefault
modelYesThe capturing model.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: it performs no document processing and is 'normally not billed,' plus the underlying endpoint path, which helps the agent reason about side effects and cost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with no filler: what it returns, how the result is consumed, and what it does not do. Purpose and the key downstream instruction are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields, and it covers the workflow, billing, and side-effect questions an agent would have. Nothing required to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single enum parameter is fully documented, so the baseline is 3. The description earns above baseline by clarifying what the slug means in the wider workflow (it is the value passed as configuration_slug to capture tools), adding semantic context the enum alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the capturing configurations of a model') and enumerates the returned fields (name, slug, enabled components). This distinguishes it from siblings like dochorizon_list_models and dochorizon_list_prompt_configurations without the agent needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the downstream workflow clearly: 'Pass a slug as configuration_slug to a capture tool to choose which fields are extracted,' which tells the agent why and when to call it. It also sets a boundary with 'Does not process a document,' though it does not explicitly name an alternative sibling to use instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_list_einvoice_typesList e-invoice typesA
Read-only
Inspect

The e-invoice types Doxis AI.dp understands (ids to pass as einvoice_type). Does not process a document; normally not billed. GET /einvoicing/v1/tools/einvoice-types.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context beyond the structured fields: no document is processed and the call is normally not billed — billing impact is not derivable from annotations. The endpoint path also aids debugging, though return shape is left unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight fragments with the purpose front-loaded, followed by the scoping clarification and the endpoint. Very little waste; the trailing 'GET /einvoicing/v1/tools/einvoice-types' is marginal but consistent and cheap.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only listing tool with no output schema, the description covers what it returns (type ids), what it is for, and what it does not do. Nothing essential is missing, though a note on the return format or typical id examples would push it higher.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The description still usefully names the consuming parameter (einvoice_type) in the calling tool, which is a small bonus.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('the e-invoice types Doxis AI.dp understands') and goes further by explaining what the returned ids are for. An agent can distinguish this from siblings such as convert_einvoice and validate_einvoice without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(ids to pass as einvoice_type)' tells the agent exactly when to call this: before invoking an operation that needs an einvoice_type id. The explicit 'Does not process a document; normally not billed' rules out the mistaken assumption that this is a capture/processing tool. It stops short of naming a specific sibling as the follow-up consumer, so it is not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_list_modelsList enabled capturing modelsA
Read-only
Inspect

List the document capturing models enabled for this project (financial, identity, bank statement, salary slip, generic, e-invoice, ...). Does not process a document; normally not billed. GET /document_capturing/v1/enabled_models.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/openWorldHint/destructiveHint, so the safety profile is covered. The description adds meaningful beyond-annotation context: it does not process documents and is normally not billed, plus the underlying GET endpoint. Return shape is not described, but no output schema exists to lean on, making this a modest gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences: purpose and allowed values first, then the disambiguating constraint, then the endpoint. Nothing is padded and the key routing information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only discovery tool with no output schema, the description is nearly complete: it says what is listed and gives representative model types. Only the exact return format (IDs vs. names, ordering) is unspecified, which is a minor gap given the simple surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4 under the rubric. The description adds no parameter detail, but there is nothing to document, and the empty schema is fully consistent with the stated behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List the document capturing models enabled for this project') and enumerates the model types returned. The sentence 'Does not process a document' directly distinguishes it from the capture_* siblings, so an agent can route correctly without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly frames this as a discovery/metadata call with no side effects and no billing, which tells the agent when it is appropriate. It stops short of explicitly naming the capture_* alternatives as the next step, so it is clear context rather than full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_list_prompt_configurationsList Prompt Builder configurationsA
Read-only
Inspect

List the Prompt Builder (LLM extraction) configurations of the project: name and slug. Does not process a document; normally not billed. GET /document_capturing/v1/prompt_builder/configurations.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuine non-redundant context: it does not process a document and is normally not billed, plus the underlying REST endpoint. It stops short of describing pagination or result size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences plus the endpoint path, with the core purpose front-loaded and no filler. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, no output schema, and annotations covering the safety profile, the description is nearly self-sufficient: it names the returned fields and the billing/no-processing behavior. Only minor gaps (pagination, ordering) remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so this dimension has no schema surface to compensate for. The description does disclose the response shape (name and slug), which is a small added value despite being about output rather than input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List the Prompt Builder (LLM extraction) configurations of the project') and even declares the returned fields (name, slug). This clearly distinguishes it from the generic dochorizon_list_configurations and the schema-fetching get_prompt_schema siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a discovery use-case ('Does not process a document; normally not billed') but never explicitly says when to call this versus capture_with_prompt or list_configurations. Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_lookup_peppol_participantLook up a Peppol participantA
Read-only
Inspect

Look up one Peppol participant by identifier (for example iso6523-actorid-upis::0106:64111512) in the Peppol network (SML): the document types it can receive. Does not process a document; normally not billed. GET /einvoicing/v1/peppol/environments/{environment}/participants/{participant_identifier}.

NameRequiredDescriptionDefault
environmentNoPeppol environment: production (live network) or acceptance (test).
participant_identifierYesThe Peppol participant identifier.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds value beyond them by stating the operation is non-billing and non-document-processing, and by exposing the underlying GET endpoint. It still says nothing about rate limits, auth prerequisites, or failure modes for unknown participants.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the core purpose is front-loaded ahead of the cost/non-processing caveat. The trailing raw endpoint path is slightly redundant for a tool consumer but compact and occasionally useful for debugging.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema the description does explain what comes back ('the document types it can receive'), which covers the main gap. For a two-parameter read-only lookup with full schema coverage and annotations, it is nearly complete; only auth expectations and unknown-participant behavior are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3, but the description contributes an illustrative identifier ('iso6523-actorid-upis::0106:64111512') that conveys the real-world ISO 6523 syntax far better than the schema's terse 'The Peppol participant identifier'. The environment parameter is left entirely to the schema, which handles it adequately via its enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Look up one Peppol participant by identifier') plus the returned payload ('the document types it can receive'), so an agent knows exactly what the tool produces. The singular 'one ... by identifier' implicitly separates it from the sibling search_peppol_directory, but that alternative is never named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Does not process a document; normally not billed' tells the agent what this is not and roughly what it costs, which is real routing signal. However there is no explicit guidance on when to prefer this over search_peppol_directory, or what the environment choice implies operationally.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_search_peppol_directorySearch the Peppol directoryA
Read-only
Inspect

Search the public Peppol business directory by company name, identifier or other text: participant identifiers, countries, contacts, websites and the document types each can receive. Public business data; costs nothing. GET /einvoicing/v1/peppol/environments/{environment}/directory.

NameRequiredDescriptionDefault
queryYesName, identifier or other identifying text.
environmentNoPeppol environment: production (live network) or acceptance (test).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint:false and openWorldHint, so the safety profile is covered. The description adds meaningful context beyond that: the data is public, the call costs nothing, and it exposes the underlying REST path and verb. What is missing is any note on result volume, ranking or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose before the coverage detail, and the trailing endpoint path is compact. Slightly overstuffed relative to a 2-parameter tool, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should hint at what comes back, and it does by listing the fields each entry exposes (contacts, websites, receivable document types). Combined with fully documented parameters and annotation coverage, an agent has enough to call it correctly; only result shape and volume remain unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds searchable-field semantics the schema lacks: it names participant identifiers, countries, contacts, websites and receivable document types, which is richer than the schema's generic 'Name, identifier or other identifying text'. The environment parameter's purpose is only covered by the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Search the public Peppol business directory') plus the searchable fields, so the agent knows exactly what this does. It does not, however, distinguish itself from the sibling dochorizon_lookup_peppol_participant, which is a closely related Peppol operation, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the phrase 'by company name, identifier or other text', which tells the agent what inputs are appropriate. There is no explicit when-to-use statement, no exclusions, and the nearby alternative (lookup_peppol_participant) is never referenced, leaving the agent to infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_submit_async_captureSubmit a document for asynchronous captureAInspect

SPENDS CREDITS: queue one document for capturing and return a job_id right away; poll dochorizon_get_async_job, then read dochorizon_get_async_job_result. Use it for long documents and bursts (async jobs are not subject to the concurrent-request limit). No webhook or human review is configured. For identity, salary_slip and bank_statement the result holds personal data. Uses your own Doxis AI.dp (Klippa) credits: billed per request or per page depending on the service (extra components in a configuration can add cost), at your project's price (Billing → Pricing in the platform); a new account starts with EUR 25 of free credit. Give the document as exactly one of url (public https), data_base64 (small files) or file_id (a stored file). POST /document_capturing/v1/{model}/async.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
modelYesThe capturing model.
file_idNoA Doxis AI.dp storage file id (from dochorizon_upload_file or a toolkit result).
filenameNoA name for the file (helps content-type detection).
passwordNoPassword of a protected PDF. Only used for this request.
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
page_rangesNoPages to process, for example '1-3, 5', '2-last', 'first-last' (default: all pages; documents over 50 pages time out).
content_typeNoMIME type, if it cannot be detected.
configuration_slugNoSlug of a capturing configuration made in the platform (see dochorizon_list_configurations). Optional: the model's defaults apply without it.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing credit spend and the billing model (per request or per page, project pricing, EUR 25 free starting credit), that no webhook or human review exists, that identity/salary_slip/bank_statement results contain personal data, and the concurrency exemption. These are exactly the traits an agent cannot infer from readOnlyHint/openWorldHint/idempotentHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the cost warning in caps and otherwise dense with only relevant content; every clause carries information (billing, privacy, polling chain, input modes). It is a single packed paragraph with nested parentheticals, which makes it slightly heavy to scan but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, high-complexity, no-output-schema tool, it covers everything needed: return value (job_id), follow-up chain, cost, personal-data implications, input-mode exclusivity, and a pointer to dochorizon_list_configurations for configuration_slug. Nothing required to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds real meaning the schema does not state: 'exactly one of url (public https), data_base64 (small files) or file_id (a stored file)', an explicit mutual-exclusion rule for the three input modes. It also ties configuration_slug to added cost, which the schema does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+effect: 'queue one document for capturing and return a job_id right away'. It also names the downstream siblings (dochorizon_get_async_job, dochorizon_get_async_job_result) and distinguishes itself from the synchronous capture_* family by scoping itself to long documents and bursts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear usage condition ('Use it for long documents and bursts… async jobs are not subject to the concurrent-request limit') and defines the correct call sequence (submit → poll → read result). It lacks an explicit when-NOT-to-use statement pointing back to the synchronous capture_* tools for small single documents, so it falls short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_upload_fileUpload a file to Doxis AI.dp storageAInspect

WRITE: store a file in your Doxis AI.dp storage and get a file_id to reuse in other tools (capture the same file several times without sending it again). Give a public https url or small base64 data. The file stays in your project's storage until it expires per your data-retention setting. May use credits per your pricing. POST /storage/v1/files.

NameRequiredDescriptionDefault
urlNoPublic https URL of the document. Klippa downloads it (must complete within 30 seconds).
filenameNoA name for the file (helps content-type detection).
data_base64NoThe document as base64 (at most about 1.5 MB of file). Prefer url or file_id for anything bigger.
content_typeNoMIME type, if it cannot be detected.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true), and the description adds real context beyond them: retention/expiry semantics, possible credit consumption, and the POST /storage/v1/files endpoint. It omits auth requirements and the exact response shape, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the WRITE marker and the core purpose come first, followed by lifecycle and cost notes. Every clause carries information, though the compressed 'WRITE: ...' phrasing and stacked asides read a little telegraphically.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully states the return value (a file_id) and resolves the schema's ambiguity of zero required parameters by saying the caller must give a url or base64 payload. Format limits and content-type detection are left to the schema, which covers them fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents url, filename, data_base64 and content_type in detail. The description only restates the url-vs-base64 choice, adding little beyond what the parameter descriptions provide, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource pair ('WRITE: store a file in your Doxis AI.dp storage') and states the payoff ('get a file_id to reuse in other tools'). That makes it clearly distinguishable from the capture_*, download_file and document_* siblings, which either consume a file_id or transform an already-uploaded document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical 'capture the same file several times without sending it again' tells the agent the situation that selects this tool over re-sending bytes to each capture call, and 'Give a public https url or small base64 data' steers input choice. It never states an explicit when-not or names an alternative tool, so it falls short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dochorizon_validate_einvoiceValidate an e-invoiceAInspect

Validate an e-invoice (XML or hybrid PDF) against its standard (EN 16931, XRechnung, Peppol BIS, ...): returns the detected type, valid yes/no, a summary and each broken rule with its XPath location. Nothing is sent to anyone. May use credits per your pricing. POST /einvoicing/v1/tools/validate.

NameRequiredDescriptionDefault
xmlNoThe e-invoice as XML text (UBL, CII, ...).
data_base64NoThe e-invoice file as base64 (XML, or a hybrid PDF such as ZUGFeRD / Factur-X).
einvoice_typeNoThe e-invoice type, if it should not be auto-detected (see dochorizon_list_einvoice_types).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the annotations by disclosing two behaviors an agent cannot infer from structured fields: the call may consume credits, and 'nothing is sent to anyone' (data-handling/privacy). It also enumerates the response contents (detected type, valid yes/no, summary, broken rules with XPath) even though no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and standards, followed by compact sentences on returns, privacy, cost, and endpoint. Slightly dense in the first clause (long parenthetical and acronym list), but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description helpfully covers return values, cost, and privacy, which is most of what a caller needs. It does not state that at least one of xml or data_base64 must be supplied, nor any size/error constraints, which is a real gap given zero required parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each of the three parameters is already documented in the schema. The description adds only the accepted input forms (XML or hybrid PDF) without clarifying mutual exclusivity of xml vs data_base64 or the auto-detection behavior of einvoice_type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (validate) plus resource (e-invoice) and scopes it to named standards (EN 16931, XRechnung, Peppol BIS) over XML or hybrid PDF. This clearly separates it from siblings like dochorizon_convert_einvoice and dochorizon_capture_einvoice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (checking an invoice against its standard) but never states when to choose this over convert_einvoice or when validation is not appropriate. The alternative for overriding detection, dochorizon_list_einvoice_types, is referenced only in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 30 tool updates
    • First observeddochorizon_capture_bank_statement
    • First observeddochorizon_capture_einvoice
    • First observeddochorizon_capture_financial
    • First observeddochorizon_capture_generic
    • First observeddochorizon_capture_identity
    • First observeddochorizon_capture_salary_slip
    • First observeddochorizon_capture_with_prompt
    • First observeddochorizon_convert_einvoice
    • First observeddochorizon_delete_async_job
    • First observeddochorizon_document_info
    • First observeddochorizon_document_merge
    • First observeddochorizon_document_render
    • First observeddochorizon_document_split
    • First observeddochorizon_download_file
    • First observeddochorizon_get_async_job
    • First observeddochorizon_get_async_job_logs
    • First observeddochorizon_get_async_job_result
    • First observeddochorizon_get_key_info
    • First observeddochorizon_get_model_schema
    • First observeddochorizon_get_prompt_schema
    • First observeddochorizon_list_async_jobs
    • First observeddochorizon_list_configurations
    • First observeddochorizon_list_einvoice_types
    • First observeddochorizon_list_models
    • First observeddochorizon_list_prompt_configurations
    • First observeddochorizon_lookup_peppol_participant
    • First observeddochorizon_search_peppol_directory
    • First observeddochorizon_submit_async_capture
    • First observeddochorizon_upload_file
    • First observeddochorizon_validate_einvoice

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to turn PDFs, scans, photos, Office files, and HTML into readable text through signed-URL uploads and batch jobs, using fast page-level OCR or accurate vision-reconciled transcription. Jobs run independently, support page-by-page reading and downloads, and can be deployed securely with Entra authentication.
    11 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables accounts payable teams to extract invoice data from PDFs and images, detect duplicates, normalize vendor names, calculate payment terms, and validate invoice completeness. Supports local extraction for text PDFs and optional vision providers for scanned documents.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.