Jid: the trust API for AI agents

Verify a business before an agent pays, signs or buys: registry-cited decision and signed receipt.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
94%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin screen

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,793Tokens (tool definitions)
~3.0 KBTypical response size
Significant attention impact (2.18% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "jid": {
      "url": "https://jid.com/mcp"
    }
  }
}

Remote endpoints

https://jid.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_business(query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Business name or registry number"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡get_business_file(id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Jid file id from search_business, e.g. gland-pharma-limited-j9nehi"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verify_business(id, query, activity, jurisdiction, amount, ...)

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

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "description": "Jid file id (preferred)",
      "type": "string"
    },
    "query": {
      "description": "Name or registry number, used when no id is known",
      "type": "string",
      "minLength": 2,
      "maxLength": 200
    },
    "activity": {
      "description": "What the business is about to do for you. Defaults to general_commerce when jurisdiction or amount is given.",
      "type": "string",
      "enum": [
        "general_commerce",
        "sell_prescription_drugs",
        "manufacture_drugs",
        "sell_medical_devices",
        "haul_freight",
        "broker_freight",
        "sell_alcohol",
        "produce_spirits",
        "provide_investment_advice",
        "accept_deposits",
        "lend",
        "bill_medicare_medicaid",
        "healthcare_supplier",
        "federal_contracting",
        "charitable_solicitation",
        "operate_psilocybin_healing_center"
      ]
    },
    "jurisdiction": {
      "description": "US state as US-XX (for example US-CO) or an ISO country code",
      "type": "string",
      "maxLength": 5
    },
    "amount": {
      "description": "Transaction amount, recorded on the receipt as context only",
      "type": "number",
      "minimum": 0
    },
    "currency": {
      "description": "ISO 4217 currency of amount, default USD",
      "type": "string",
      "minLength": 3,
      "maxLength": 3
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_receipt(receipt_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "receipt_id": {
      "type": "string",
      "description": "rcpt_... from verify_business"
    }
  },
  "required": [
    "receipt_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢qualify_counterparty(email, domain, company_name, form_type, message, ...)

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

{
  "type": "object",
  "properties": {
    "email": {
      "description": "Sender's e-mail address",
      "type": "string",
      "maxLength": 254
    },
    "domain": {
      "description": "Company domain, when no e-mail is available",
      "type": "string",
      "maxLength": 253
    },
    "company_name": {
      "description": "Company name as stated by the sender",
      "type": "string",
      "maxLength": 200
    },
    "form_type": {
      "type": "string",
      "enum": [
        "seller_application",
        "acquisition_inquiry",
        "buyer_registration",
        "nda_request",
        "sourcing_request",
        "listing_request",
        "consultation",
        "partnership",
        "contact",
        "other",
        "vendor_claim",
        "listing_claim",
        "sponsor_inquiry",
        "advertiser",
        "broker_request",
        "buyer_inquiry",
        "seller_inquiry",
        "data_purchase"
      ],
      "description": "What kind of submission this is"
    },
    "message": {
      "description": "The submission's free text (hashed, never stored)",
      "type": "string",
      "maxLength": 5000
    },
    "stated_value": {
      "description": "Deal or purchase size the sender states, USD",
      "type": "number",
      "minimum": 0
    },
    "stated_role": {
      "description": "The sender's stated role",
      "type": "string",
      "enum": [
        "buyer",
        "seller",
        "supplier",
        "investor",
        "operator"
      ]
    },
    "country": {
      "description": "Stated country, ISO 3166-1 alpha-2",
      "type": "string",
      "minLength": 2,
      "maxLength": 2
    },
    "ip_country": {
      "description": "Country the submission came from, ISO alpha-2 (location consistency check)",
      "type": "string",
      "minLength": 2,
      "maxLength": 2
    },
    "ip_region": {
      "description": "Region the submission came from (ISO 3166-2, e.g. US-CA or CA)",
      "type": "string",
      "maxLength": 10
    },
    "ip_asn": {
      "description": "ASN of the submitting network, to recognise hosting and VPN networks",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "browser_timezone": {
      "description": "IANA time zone reported by the submitter's browser",
      "type": "string",
      "maxLength": 60
    },
    "stated_country": {
      "description": "Country the submitter stated (same as country)",
      "type": "string",
      "minLength": 2,
      "maxLength": 2
    },
    "signal": {
      "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",
      "type": "string",
      "maxLength": 800
    },
    "site": {
      "description": "The submitting website's domain (binds the signal token)",
      "type": "string",
      "maxLength": 253
    },
    "activity": {
      "description": "Regulated activity whose licences matter, if any",
      "type": "string",
      "enum": [
        "general_commerce",
        "sell_prescription_drugs",
        "manufacture_drugs",
        "sell_medical_devices",
        "haul_freight",
        "broker_freight",
        "sell_alcohol",
        "produce_spirits",
        "provide_investment_advice",
        "accept_deposits",
        "lend",
        "bill_medicare_medicaid",
        "healthcare_supplier",
        "federal_contracting",
        "charitable_solicitation",
        "operate_psilocybin_healing_center"
      ]
    },
    "claimed_website": {
      "description": "For vendor_claim / listing_claim: the website of the business or listing being claimed (enables the affiliation check)",
      "type": "string",
      "maxLength": 300
    },
    "summary": {
      "description": "Add a short plain-English summary grounded in the signals",
      "type": "boolean"
    },
    "policy": {
      "description": "How cautious `engage` is (default balanced)",
      "type": "string",
      "enum": [
        "strict",
        "balanced",
        "permissive"
      ]
    }
  },
  "required": [
    "form_type"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢screen(domain, url, email, phone, company_name, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "description": "Company domain",
      "type": "string",
      "maxLength": 253
    },
    "url": {
      "description": "Website or page URL (purchase checks: only the host is used)",
      "type": "string",
      "maxLength": 2000
    },
    "email": {
      "description": "Sender e-mail address (hashed on the receipt, never stored)",
      "type": "string",
      "maxLength": 254
    },
    "phone": {
      "description": "Phone number, ideally in +E.164",
      "type": "string",
      "maxLength": 40
    },
    "company_name": {
      "description": "Company name as stated",
      "type": "string",
      "maxLength": 200
    },
    "context": {
      "description": "What engaging means here; default lead (purchase when only a url or domain is given)",
      "type": "string",
      "enum": [
        "lead",
        "inbound_email",
        "partnership",
        "vendor",
        "purchase",
        "marketplace_seller",
        "agent_action"
      ]
    },
    "amount": {
      "description": "Amount at stake, USD",
      "type": "number",
      "minimum": 0
    },
    "policy": {
      "description": "strict, balanced (default) or permissive",
      "type": "string",
      "enum": [
        "strict",
        "balanced",
        "permissive"
      ]
    },
    "country": {
      "description": "Default country for a phone number without +, ISO alpha-2",
      "type": "string",
      "minLength": 2,
      "maxLength": 2
    },
    "ip_country": {
      "description": "Country the request came from (ISO alpha-2), for the location consistency check",
      "type": "string",
      "minLength": 2,
      "maxLength": 2
    },
    "ip_region": {
      "description": "Region of the request (ISO 3166-2, e.g. US-CA or CA)",
      "type": "string",
      "maxLength": 10
    },
    "ip_asn": {
      "description": "ASN of the request's network, to recognise hosting and VPN networks",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "browser_timezone": {
      "description": "IANA time zone reported by the browser",
      "type": "string",
      "maxLength": 60
    },
    "stated_country": {
      "description": "Country the counterparty stated",
      "type": "string",
      "minLength": 2,
      "maxLength": 2
    },
    "signal": {
      "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",
      "type": "string",
      "maxLength": 800
    },
    "site": {
      "description": "The submitting website's domain (binds the signal token)",
      "type": "string",
      "maxLength": 253
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_email(headers)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "headers": {
      "type": "string",
      "maxLength": 65536,
      "description": "The raw message headers, as one string (the body is not needed)"
    }
  },
  "required": [
    "headers"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools