Skip to main content
Glama

Jid: the trust API for AI agents

Qualify a business lead or counterparty

qualify_counterparty

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
siteNoThe submitting website's domain (binds the signal token)
emailNoSender's e-mail address
domainNoCompany domain, when no e-mail is available
ip_asnNoASN of the submitting network, to recognise hosting and VPN networks
policyNoHow cautious `engage` is (default balanced)
signalNoJid Signals token (the form's jid_signal field): Jid's own reading of the visitor's location; replaces the ip_* fields when it verifies
countryNoStated country, ISO 3166-1 alpha-2
messageNoThe submission's free text (hashed, never stored)
summaryNoAdd a short plain-English summary grounded in the signals
activityNoRegulated activity whose licences matter, if any
form_typeYesWhat kind of submission this is
ip_regionNoRegion the submission came from (ISO 3166-2, e.g. US-CA or CA)
ip_countryNoCountry the submission came from, ISO alpha-2 (location consistency check)
stated_roleNoThe sender's stated role
company_nameNoCompany name as stated by the sender
stated_valueNoDeal or purchase size the sender states, USD
stated_countryNoCountry the submitter stated (same as country)
claimed_websiteNoFor vendor_claim / listing_claim: the website of the business or listing being claimed (enables the affiliation check)
browser_timezoneNoIANA time zone reported by the submitter's browser

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / browser_timezone
      Added value: +{
      +  "description": "IANA time zone reported by the submitter's browser",
      +  "maxLength": 60,
      +  "type": "string"
      +}
    • addedInput schema / properties / ip_asn
      Added value: +{
      +  "description": "ASN of the submitting network, to recognise hosting and VPN networks",
      +  "exclusiveMinimum": 0,
      +  "maximum": 9007199254740991,
      +  "type": "integer"
      +}
    • changedInput schema / properties / ip_country / description
      Previous value: -"Country the submission came from, ISO alpha-2"New value: +"Country the submission came from, ISO alpha-2 (location consistency check)"
    • addedInput schema / properties / ip_region
      Added value: +{
      +  "description": "Region the submission came from (ISO 3166-2, e.g. US-CA or CA)",
      +  "maxLength": 10,
      +  "type": "string"
      +}
    • addedInput schema / properties / signal
      Added 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"
      +}
    • addedInput schema / properties / site
      Added value: +{
      +  "description": "The submitting website's domain (binds the signal token)",
      +  "maxLength": 253,
      +  "type": "string"
      +}
    • addedInput schema / properties / stated_country
      Added value: +{
      +  "description": "Country the submitter stated (same as country)",
      +  "maxLength": 2,
      +  "minLength": 2,
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources