Jid: the trust API for AI agents
Server Details
Verify a business before an agent pays, signs or buys: registry-cited decision and signed receipt.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
The lookup tools (search_business, get_business_file) and receipt retrieval are clearly distinct, but screen, qualify_counterparty, and verify_business all return trust decisions and can be confused. Descriptions clarify context (inbound qualification vs fast pre-action screen vs activity-based verification), yet the boundaries remain overlapping enough to require careful selection.
Most names follow a consistent snake_case verb_noun pattern: check_email, get_business_file, get_receipt, qualify_counterparty, search_business, verify_business. screen is a lone verb and deviates slightly, but it is still intuitive and does not obscure the API structure.
Seven tools is well-scoped for a trust/verification API. Each maps to a distinct capability: header checking, business search, business file retrieval, qualification, screening, verification, and receipt retrieval. There is no obvious bloat or thinness.
The surface covers email-header checks, business discovery, business files, qualification, screening, verification, and signed receipts, giving broad pre-action trust coverage. Minor gaps exist, such as no receipt listing or batch verification, but agents can work around them.
Available Tools
7 toolscheck_emailIs this e-mail really from who it says? (SPF, DKIM, DMARC, lookalike sender)AInspect
Paste the raw headers of a message (Show original / View source). Returns checks and a read (headline, recommendation engage | verify_first | do_not_engage, failed checks, lookup links: show the user the read first): DMARC/SPF/DKIM as the receiving server recorded them, DKIM alignment with From, Reply-To going to another domain, and a From domain or display name that imitates a known business. The headers are processed in memory and never stored. Deterministic, no AI. Counts as 1 check with a key; free tier without one.
| Name | Required | Description | Default |
|---|---|---|---|
| headers | Yes | The raw message headers, as one string (the body is not needed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does so well: it discloses the output shape (headline, recommendation enum, failed checks, lookup links), privacy behavior ('processed in memory and never stored'), determinism ('no AI'), and billing ('counts as 1 check with a key; free tier without one'). Genuinely rich beyond any structured field.
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?
Front-loaded with the action (paste headers) and the return contract, then the checks performed, then privacy/billing. Dense and mostly waste-free, though the parenthetical UI hints and the billing clause make it a touch crowded.
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-param, no-output-schema, no-annotation tool, the description covers invocation, output shape, privacy, determinism, and billing – everything an agent needs to call it correctly and interpret results.
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 the description adds practical operational detail beyond the schema: that headers should be copied from 'Show original / View source' and that the body is not needed. This meaningfully helps the agent collect the right input, though it doesn't add format specifics beyond that.
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 title and description together state a specific verb (check) and resource (an email's authenticity via SPF/DKIM/DMARC and lookalike detection), and the input format is spelled out ('Paste the raw headers... Show original / View source'). This distinguishes it clearly from siblings like screen or verify_business, which concern businesses rather than individual messages.
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 gives clear operational context – paste raw headers, not the body – and instructs how to surface results ('show the user the read first'). It's clear when to use it, but there are no explicit exclusions or named alternatives for cases like verifying a business rather than a message.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_business_fileGet a business fileBInspect
The full Jid file for one business: status, identifiers, every current fact with its source, verification date, next check and confidence, owner statements (labelled self-reported), possible matches and the change history.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Jid file id from search_business, e.g. gland-pharma-limited-j9nehi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real behavioral value by flagging data provenance: facts carry a source, verification date, next check and confidence, and owner statements are 'labelled self-reported'. It still says nothing about read-only semantics, permissions, or failure behavior.
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?
A single front-loaded sentence that opens with the resource and then enumerates the payload; every clause maps to actual returned content. Slightly dense but no wasted words.
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?
There is no output schema, so the description must convey the return shape, and it does so in detail (status, identifiers, facts with provenance, owner statements, matches, history). Combined with a fully documented single parameter, an agent has enough to call it correctly; only usage routing is missing.
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 single id parameter is documented with a concrete example (gland-pharma-limited-j9nehi) sourced from search_business. The description adds nothing about the parameter, so baseline 3 applies.
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?
Names a specific resource (the full Jid file for one business) and enumerates the contents an agent will receive, so the purpose is unmistakable. It does not, however, distinguish itself from siblings like verify_business or screen, leaving the differentiator implicit.
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?
There is no when-to-use guidance and no mention of alternatives; an agent must infer from the name alone that this is the detail-retrieval step after search_business. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_receiptGet a verification receiptAInspect
Retrieve a stored, Ed25519-signed verification receipt by receipt_id: the inputs, decision, reasons, fact ids and value hashes, rules version and time. Use it to prove what was checked before an action. Free; not a check.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | Yes | rcpt_... from verify_business |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful traits: the receipt is stored, cryptographically signed with Ed25519, immutable evidence of a past decision, and free of charge (no metering/cost concern). It does not cover failure behavior (unknown/expired receipt_id, authorization needed to read a receipt), which is the main remaining gap for an annotation-free tool.
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?
Two sentences, front-loaded with verb/resource/key and followed by the payload contents and the routing disambiguation. Every clause carries information (signature scheme, returned fields, cost, sibling exclusion) with no filler.
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 single-parameter read tool with no output schema, the description usefully enumerates the returned fields and states cost and signature type, which is exactly what the missing output schema would otherwise need to supply. Only error/absence handling is unaddressed, a minor gap.
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 single parameter's schema already documents the 'rcpt_... from verify_business' format and origin. The description only restates that lookup is by receipt_id, adding no syntax, format, or validation detail beyond the schema, so the baseline of 3 applies.
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 verb (Retrieve) plus the resource (a stored, Ed25519-signed verification receipt) and the lookup key (receipt_id), then enumerates the payload (inputs, decision, reasons, fact ids, value hashes, rules version, time). The clause 'not a check' explicitly separates it from the sibling verify_business, so an agent can route without opening either 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?
'Use it to prove what was checked before an action' gives a clear use context, and 'not a check' rules out the obvious wrong use (treating it as a verification call). It stops short of a full when-to-use/when-not statement (e.g., whether receipts expire or when no receipt exists), so it lands at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qualify_counterpartyQualify a business lead or counterpartyAInspect
Before you engage with a business that contacted you (a form submission, an inquiry, an outreach reply), qualify it. Pass the sender's e-mail (or the company domain), the company name if given, and the context (form type, message, stated value, stated role). Jid checks the domain (MX, SPF, DMARC, registration date over RDAP, the website), matches it to a Jid business file, reads that file's registrations, licences, filings, capital raises, loans and adverse records, and returns signals (each with source, source_url, verified_at), three scores (legitimacy, capacity, consistency, 0 to 100 with reasons), checks (each pass, fail or unknown with one line of evidence and a lookup link) and a read: a one-line headline ("Passed all 7 checks Jid could run. Recommendation: engage."), the recommendation (engage, verify_first, do_not_engage), the failed checks and up to 4 links to verify by hand. Show the user the read first. Also a signed receipt. Businesses only: personal webmail or no matched business returns individual_or_unverified with no scores. A possible list match is 'review', never a finding. Requires an API key; counts as 2 checks. Not for credit, employment, insurance or housing decisions about any person.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The submitting website's domain (binds the signal token) | |
| No | Sender's e-mail address | ||
| domain | No | Company domain, when no e-mail is available | |
| ip_asn | No | ASN of the submitting network, to recognise hosting and VPN networks | |
| policy | No | How cautious `engage` is (default balanced) | |
| signal | No | Jid Signals token (the form's jid_signal field): Jid's own reading of the visitor's location; replaces the ip_* fields when it verifies | |
| country | No | Stated country, ISO 3166-1 alpha-2 | |
| message | No | The submission's free text (hashed, never stored) | |
| summary | No | Add a short plain-English summary grounded in the signals | |
| activity | No | Regulated activity whose licences matter, if any | |
| form_type | Yes | What kind of submission this is | |
| ip_region | No | Region the submission came from (ISO 3166-2, e.g. US-CA or CA) | |
| ip_country | No | Country the submission came from, ISO alpha-2 (location consistency check) | |
| stated_role | No | The sender's stated role | |
| company_name | No | Company name as stated by the sender | |
| stated_value | No | Deal or purchase size the sender states, USD | |
| stated_country | No | Country the submitter stated (same as country) | |
| claimed_website | No | For vendor_claim / listing_claim: the website of the business or listing being claimed (enables the affiliation check) | |
| browser_timezone | No | IANA time zone reported by the submitter's browser |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the entire burden and does so thoroughly: it discloses the return structure (signals with source/source_url/verified_at, three 0-100 scores, checks with evidence and lookup links, a headline read and recommendation), the cost ('counts as 2 checks'), the API-key requirement, the degraded path for personal webmail (individual_or_unverified, no scores), that a possible list match is only 'review', and that message is hashed and never stored.
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?
Front-loads the when-to-call and the primary inputs before diving into the return shape and caveats, so the most decision-relevant content comes first. It is dense and much of the middle is a single run-on enumeration of outputs, which costs some readability, but almost every clause carries actionable 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?
For a 19-parameter tool with no output schema and no annotations, the description is unusually complete: it explains inputs, the output payload, scoring ranges, recommendation values, cost, auth requirement, and edge-case behavior. An agent would know both when to call it and what to expect back.
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%, so the schema already documents all 19 parameters including enums and formats. The description only loosely maps inputs ('the sender's e-mail or the company domain, the company name, the context') without adding format or interaction semantics beyond what the schema states. Baseline 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?
States a specific verb+resource ('qualify' a business that contacted you) and immediately scopes it to an inbound form submission, inquiry or outreach reply. It is clearly distinguishable from check_email, screen and verify_business because it describes a multi-source qualification report rather than a single lookup.
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?
Gives a clear trigger ('Before you engage with a business that contacted you') plus hard boundaries ('Businesses only', 'Requires an API key', 'Not for credit, employment, insurance or housing decisions about any person'). It does not explicitly contrast itself with the sibling tools (screen, verify_business, check_email), so the alternative-selection guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenShould I engage? (screen a lead, sender, vendor or website)AInspect
A fast engage-or-not answer before you reply to, onboard, pay or buy from someone. Pass any of domain, url, email, phone or company_name, the context (lead, inbound_email, partnership, vendor, purchase, marketplace_seller, agent_action), an optional amount (USD) and a policy (strict, balanced, permissive; default balanced). Returns engage (true or false), risk (low, medium, high, unknown), confidence 0 to 1, subject_type, reasons (each with source and evidence), concrete mitigations, checks and a read (headline, recommendation engage | verify_first | do_not_engage, failed checks, lookup links: show the user the read first) and a signed receipt_id. Deterministic, no AI in the decision, usually under a second. Act on engage=true; on engage=false, show the reasons and mitigations to the user. A possible sanctions name match is engage=false with 'manual review', never a finding. Individuals get only technical checks of the address, phone or domain. engage is advisory. Rules: https://jid.com/screen-rules. Counts as 1 check with a key; free tier without one.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Website or page URL (purchase checks: only the host is used) | |
| site | No | The submitting website's domain (binds the signal token) | |
| No | Sender e-mail address (hashed on the receipt, never stored) | ||
| phone | No | Phone number, ideally in +E.164 | |
| amount | No | Amount at stake, USD | |
| domain | No | Company domain | |
| ip_asn | No | ASN of the request's network, to recognise hosting and VPN networks | |
| policy | No | strict, balanced (default) or permissive | |
| signal | No | Jid Signals token (the form's jid_signal field): Jid's own reading of the visitor's location; replaces the ip_* fields when it verifies | |
| context | No | What engaging means here; default lead (purchase when only a url or domain is given) | |
| country | No | Default country for a phone number without +, ISO alpha-2 | |
| ip_region | No | Region of the request (ISO 3166-2, e.g. US-CA or CA) | |
| ip_country | No | Country the request came from (ISO alpha-2), for the location consistency check | |
| company_name | No | Company name as stated | |
| stated_country | No | Country the counterparty stated | |
| browser_timezone | No | IANA time zone reported by the browser |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so richly: it declares determinism ('no AI in the decision'), typical latency ('usually under a second'), the advisory nature of the verdict, how sanctions name matches are handled ('engage=false with manual review, never a finding'), billing ('counts as 1 check with a key; free tier without one'), and the full return shape including a receipt_id and user-facing 'read'. It also links to governing rules.
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 front-loaded with the core purpose and decision, then covers inputs, outputs, and operational rules. It is long but justified by the tool's complexity (16 optional parameters, no output schema). The single dense paragraph could be more scannable, but every sentence contributes actionable 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?
Given the complexity (16 parameters, no output schema, no annotations), the description is nearly complete: it explains the verdict, return fields, determinism, edge-case handling, billing, and how to present results. It does not cover every parameter's mutual precedence or the role of less common fields (e.g., signal, ip_asn), but the schema handles those, leaving only minor gaps.
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%, so the schema already documents all 16 parameters thoroughly. The description restates the main input options (domain, url, email, phone, company_name, context, amount, policy) and notes the default policy, but adds little meaning beyond what the schema provides; baseline 3 applies when schema does the heavy lifting.
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 clear verb and resource: it gives a fast 'engage-or-not' answer for screening a lead, sender, vendor or website. It is specific about the decision it returns (engage true/false with risk, confidence, reasons, mitigations), but it does not explicitly distinguish itself from siblings like qualify_counterparty or verify_business.
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?
It clearly states the context of use ('before you reply to, onboard, pay or buy from someone') and enumerates supported contexts (lead, inbound_email, partnership, vendor, purchase, marketplace_seller, agent_action). It also tells the agent how to act on the result (act on engage=true; on engage=false, show reasons and mitigations). However, it does not name alternative tools or state when not to use this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_businessSearch businessesAInspect
Find Jid business files by name or by any registry number (FEI, LEI, SEC CIK, DUNS, NDC labeler code, state licence or entity number). Returns candidate files with status and match evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Business name or registry number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the return shape ('candidate files with status and match evidence'), which signals a fuzzy/non-exact lookup, but says nothing about result limits, pagination, permissions, or what happens when no match is found.
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?
Two tight sentences with no filler; the capability and accepted identifier types come first, the return behavior second. Every clause earns its place.
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 single-parameter search with no output schema, the description covers what the tool does, what it accepts, and roughly what it returns. Only pagination/result-limit behavior is unaddressed, a minor gap for a 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% and there is only one parameter, so the baseline is 3. The description goes beyond the schema's generic 'Business name or registry number' by enumerating the accepted registry identifiers (FEI, LEI, SEC CIK, DUNS, NDC labeler code, state licence/entity number), which genuinely improves how the agent fills the field.
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 verb and resource ('Find Jid business files') and scopes the accepted inputs precisely (name or any of seven registry-number types). An agent can distinguish this candidate-lookup tool from siblings like get_business_file and verify_business 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Find ... returns candidate files', which suggests a discovery step before get_business_file/verify_business, but no alternative is named and there are no explicit when/when-not conditions. Adequate but the routing decision 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.
verify_businessVerify a business before actingAInspect
Check a business before an agent pays, signs, books, hires or buys. Pass the Jid id (or a name or registry number) and, to get a decision, the activity. Returns decision (proceed, review, stop or insufficient_data) with reasons: each names the requirement, met (true, false or unknown), the fact ids, source, verified_at and fresh_until, plus a signed receipt_id. Without an activity it returns the status and every cited fact, as before. Activities: general_commerce (General commerce (default)); sell_prescription_drugs (Sell prescription drugs); manufacture_drugs (Manufacture drugs); sell_medical_devices (Sell medical devices); haul_freight (Haul freight (for-hire motor carrier)); broker_freight (Broker freight); sell_alcohol (Sell alcohol (wholesale or import)); produce_spirits (Produce distilled spirits); provide_investment_advice (Provide investment advice); accept_deposits (Accept deposits); lend (Lend); bill_medicare_medicaid (Bill Medicare or Medicaid); healthcare_supplier (Health care supplier); federal_contracting (Federal contracting); charitable_solicitation (Charitable solicitation); operate_psilocybin_healing_center (Operate a psilocybin healing or service centre (CO, OR)).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Jid file id (preferred) | |
| query | No | Name or registry number, used when no id is known | |
| amount | No | Transaction amount, recorded on the receipt as context only | |
| activity | No | What the business is about to do for you. Defaults to general_commerce when jurisdiction or amount is given. | |
| currency | No | ISO 4217 currency of amount, default USD | |
| jurisdiction | No | US state as US-XX (for example US-CO) or an ISO country code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose substantial behavior: the decision enum values (proceed, review, stop, insufficient_data), the shape of reasons (requirement, met true/false/unknown, fact ids, source, verified_at, fresh_until) and a signed receipt_id, plus what happens when activity is omitted. It stays silent on auth requirements, rate limits, and whether results are cached/stale beyond fresh_until.
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 opening sentence and the return-contract sentences are front-loaded and earn their place, but the inline enumeration of all 16 activities largely duplicates the schema enum, bloating the description with content already in structured data.
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?
There is no output schema, so the description correctly shoulders the return-value burden and does so in detail (decision values, reason fields, receipt_id, and the no-activity behavior). Given six parameters and a compliance use case, a note on prerequisites, auth, or freshness limits would make it fully complete.
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 schema already documents all six parameters, and the baseline is 3. The description adds some meaning by clarifying the id-vs-name/registry-number fallback path and giving human labels for each activity enum value, but it does not explain amount/currency/jurisdiction beyond what the schema already says.
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 verb and resource with an explicit decision context ('Check a business before an agent pays, signs, books, hires or buys') and details the returned decision vocabulary. It doesn't name or differentiate itself against siblings such as screen or get_business_file, so the agent must infer which is the pre-transaction check versus the file fetch.
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?
Gives a clear triggering context (before paying, signing, booking, hiring, buying) and explains the conditional behavior of omitting `activity`. However, no alternative tool is named for when you want raw status/facts or screening instead, so the routing decision is left implicit.
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 tool update
- Added
check_email
1 tool update
- Removed
check_email
1 tool update
- Added
check_email
2 tool updates
- Changed
qualify_counterparty7 fields changed- added
Input schema / properties / browser_timezoneAdded value: +{ + "description": "IANA time zone reported by the submitter's browser", + "maxLength": 60, + "type": "string" +} - added
Input schema / properties / ip_asnAdded value: +{ + "description": "ASN of the submitting network, to recognise hosting and VPN networks", + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" +} - changed
Input schema / properties / ip_country / descriptionPrevious value: -"Country the submission came from, ISO alpha-2"New value: +"Country the submission came from, ISO alpha-2 (location consistency check)" - added
Input schema / properties / ip_regionAdded value: +{ + "description": "Region the submission came from (ISO 3166-2, e.g. US-CA or CA)", + "maxLength": 10, + "type": "string" +} - added
Input schema / properties / signalAdded value: +{ + "description": "Jid Signals token (the form's jid_signal field): Jid's own reading of the visitor's location; replaces the ip_* fields when it verifies", + "maxLength": 800, + "type": "string" +} - added
Input schema / properties / siteAdded value: +{ + "description": "The submitting website's domain (binds the signal token)", + "maxLength": 253, + "type": "string" +} - added
Input schema / properties / stated_countryAdded value: +{ + "description": "Country the submitter stated (same as country)", + "maxLength": 2, + "minLength": 2, + "type": "string" +}
- Changed
screen2 fields changed- added
Input schema / properties / signalAdded value: +{ + "description": "Jid Signals token (the form's jid_signal field): Jid's own reading of the visitor's location; replaces the ip_* fields when it verifies", + "maxLength": 800, + "type": "string" +} - added
Input schema / properties / siteAdded value: +{ + "description": "The submitting website's domain (binds the signal token)", + "maxLength": 253, + "type": "string" +}
1 tool update
- Changed
screen5 fields changed- added
Input schema / properties / browser_timezoneAdded value: +{ + "description": "IANA time zone reported by the browser", + "maxLength": 60, + "type": "string" +} - added
Input schema / properties / ip_asnAdded value: +{ + "description": "ASN of the request's network, to recognise hosting and VPN networks", + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" +} - added
Input schema / properties / ip_countryAdded value: +{ + "description": "Country the request came from (ISO alpha-2), for the location consistency check", + "maxLength": 2, + "minLength": 2, + "type": "string" +} - added
Input schema / properties / ip_regionAdded value: +{ + "description": "Region of the request (ISO 3166-2, e.g. US-CA or CA)", + "maxLength": 10, + "type": "string" +} - added
Input schema / properties / stated_countryAdded value: +{ + "description": "Country the counterparty stated", + "maxLength": 2, + "minLength": 2, + "type": "string" +}
6 tool updates
- First observed
get_business_file - First observed
get_receipt - First observed
qualify_counterparty - First observed
screen - First observed
search_business - First observed
verify_business
Related MCP Connectors
Free agent identity and signed US supplier-payment decisions. Inspect first; verify portable proof.
Verify a company, figure or citation before you rely on it. Card or crypto; signed receipt.
Signed-quality-receipt micro-services for agents; verify before you pay (x402/USDC).
Signed verification attestations for agent decisions: business, price, freshness, claim checks.
Related MCP Servers
- AlicenseBqualityBmaintenanceA local receipt and approval gate for AI agent sessions. The agent can act, but it cannot sign.444 npm3Apache 2.0

BizVerify MCP Serverofficial
AlicenseAqualityDmaintenanceEnables AI agents to verify and search business entities across US state and international company registries, providing real-time confirmation of legal existence, status, and filings.9MIT
emilia-mcp-serverofficial
AlicenseAqualityAmaintenanceThe accountability layer for AI agents — a named human's signed yes before an agent does anything irreversible (payment, record change, deploy), then an offline-verifiable Trust Receipt. Apache-2.0, formally verified.3612Apache 2.0- AlicenseNot gradedqualityAmaintenanceEnables AI agents to obtain structured, source-backed real-world evidence with provenance, freshness, conflicts, support levels, coverage, unresolved dependencies, and reusable integrity-checked receipts, including French company verification and beta import assessment.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.