dutiful
Server Details
Cited company background reports for agents from official registries. $3 per report via x402.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- dutiful-hq/dutiful-mcp
- GitHub Stars
- 0
TDQS
Scored across 3 tools
Each tool maps to a distinct stage of a linear workflow: free search, order creation/payment setup, and report retrieval/status. The descriptions explicitly link them (check_coverage -> create_order -> get_report), leaving little chance of misselection.
All three names follow a clear verb_noun pattern: check_coverage, create_order, get_report. The verbs differ appropriately by action while the convention remains fully consistent.
Three tools are exactly what this narrow search-to-payment-to-report pipeline needs. There is no redundant or filler tool, and the surface is well scoped rather than artificially thin.
The core lifecycle is covered: free discovery, entity selection with payment requirements, and status/report retrieval. Minor gaps exist around managing existing orders (e.g., listing or canceling pending orders), but the primary workflow has no dead end.
Available Tools
3 toolscheck_coverageCheck coverageAIdempotentInspect
Free. Searches the official company register of the given country for the company name and returns the matching entities (idx, registry reference, name, address), an order id, and what a report covers. Nothing is charged. Supported country codes: GB, FR, NO, FI, CZ, EE, SK, LV, IL, CA, CY, US (CA: federal corporations only; US: SEC reporting companies only).
| Name | Required | Description | Default |
|---|---|---|---|
| company | Yes | Company name to look up. | |
| country | Yes | Two-letter country code: GB, FR, NO, FI, CZ, EE, SK, LV, IL, CA, CY, US. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It adds genuine context beyond the annotations: no charge is incurred, the response includes an order id and report-coverage information, and coverage is limited for CA (federal corporations only) and US (SEC reporting companies only). However, readOnlyHint=false is counterintuitive for something described as a 'search', and the description never explains what the returned order id implies about server-side state or side effects, leaving the most important behavioral question unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste, with the most decision-relevant fact ('Free') front-loaded and the coverage caveats consolidated at the end. Nothing is repeated from the schema unnecessarily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enumerates the returned fields and the order id, and it documents per-country coverage limits. It does not say what happens when there are zero matches, whether the order id expires, or whether results are paged, which is a modest gap for a two-parameter lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 omits: the country code list is restated and, more importantly, qualified with the CA and US coverage restrictions that materially change what a match means. It adds no format guidance for the company name beyond the schema's length bounds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource: it searches an official company register for a given company name in a given country and enumerates exactly what comes back (idx, registry reference, name, address, order id, report coverage). The 'Free / Nothing is charged' framing plus enumerated return fields make it distinguishable from create_order and get_report 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: a free lookup that also tells you what a report covers and hands back an order id, which strongly implies calling it before create_order. It stops short of an explicit 'use this instead of / before X' sentence and states no exclusions beyond the country coverage list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_orderCreate orderAInspect
Selects one entity from the check_coverage results (idx, starting at 0) and returns the x402 payment requirements for a report (USDC on Base, exact amount in the requirements). This tool does not pay. To pay, send the signed payment in a PAYMENT-SIGNATURE header to the returned pay_url, then read the report with get_report.
| Name | Required | Description | Default |
|---|---|---|---|
| idx | Yes | Index of the chosen entity in the check_coverage candidates. | |
| company | Yes | Same company name used in check_coverage. | |
| country | Yes | Same country code used in check_coverage. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, open-world, non-idempotent, non-destructive behavior. The description adds valuable context: it returns payment requirements in USDC on Base, does not perform payment, and requires a signed PAYMENT-SIGNATURE header to proceed. It does not explain whether the call creates or reserves an order, so it is not fully transparent about write-side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with purpose, followed by the non-payment behavior and next-step workflow. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains the return type, currency/network, amount inclusion, and the key pay_url field. It is sufficient to call and proceed, though it could enumerate the full response shape or clarify order creation side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter already has a description. The description adds only that idx is zero-based and ties the parameters to check_coverage results, so it adds some meaning but mostly restates structured information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action: selecting one check_coverage candidate and returning x402 payment requirements. It clearly distinguishes the tool from check_coverage and get_report by describing its role in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says the tool does not pay, then explains the next step: send the signed payment in a PAYMENT-SIGNATURE header to the returned pay_url, then use get_report. This gives both when to use it and how it relates to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportGet reportARead-onlyIdempotentInspect
Returns the status of an order and, once delivered, the report (structured JSON and plain text). Status values: pending_entity, pending_payment, paid, delivered. An unpaid order returns its payment requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Order id (UUID) returned by check_coverage or create_order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation, so the bar is lower. The description adds useful behavior beyond annotations by explaining status values, that the report is returned only once delivered, its formats, and that unpaid orders return payment requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences with the main purpose front-loaded. The status-value list and unpaid-order caveat each serve a clear behavioral purpose without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with annotations and no output schema, the description gives enough return-value context: status, report formats, and unpaid-order payment requirements. It does not detail the exact report structure, but it is otherwise sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter, order_id, is already documented as a UUID returned by check_coverage or create_order. The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: returns an order's status and, once delivered, its report. It clearly describes the status states and the unpaid-order behavior, but it does not explicitly distinguish itself from sibling tools such as check_coverage or create_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the tool is for checking an order after it has been created or checked for coverage, and the schema notes that order_id comes from those sibling tools. However, the description does not explicitly say when to use this tool versus alternatives or provide exclusions.
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.
3 tool updates
- First observed
check_coverage - First observed
create_order - First observed
get_report
Related MCP Connectors
Agent trust, pre-purchase risk, deliverable checks, data and SEO tools. Pay per call via x402.
x402 cited web research and synthesis for agents. $1.99 per completed brief.
Background check any company in the world: registration, executives, courts and finances.
Agent-native CRM + get-booked platform. Operate over MCP, or pay per call via x402. No login.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to research U.S. companies and associated people using official state registries and free regulatory datasets, with normalized evidence and optional browser automation.MIT
- AlicenseAqualityBmaintenanceEnables lookup of licensed US real estate agents on official state license registers by license number or name, returning the brokerage of record along with its active agent count, size band, and the agent's license status and expiry. It also lists every active agent at a given brokerage or every brokerage office in a zip code across 19 states.1MIT
- AlicenseNot gradedqualityBmaintenanceProvides real-time company verification and corporate intelligence by accessing global registries like UK Companies House, Singapore ACRA, and OpenCorporates. It enables AI agents to perform KYC tasks, retrieve company profiles, and conduct automated risk assessments for due diligence workflows.80 npmMIT
- AlicenseAqualityAmaintenanceEnables AI agents to investigate corporate ownership, trace ultimate beneficial owners, screen sanctions, detect offshore exposure, and access fully cited dossiers from 130M+ entities across 31 global registries.2196 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.