Skip to content
Peritus
Reference

MCP tools

The server at /mcp speaks Streamable HTTP and takes the same key as the API. Each tool calls one route and returns its envelope unchanged.

Install

The server is at <base>/mcp (Streamable HTTP). Every tool call needs an API key in the Authorization header; tools/list does not.

Claude Code
claude mcp add --transport http peritus <base>/mcp --header "Authorization: Bearer $PERITUS_API_KEY"
Any client with a JSON configuration
{
  "mcpServers": {
    "peritus": {
      "type": "http",
      "url": "<base>/mcp",
      "headers": { "Authorization": "Bearer <your API key>" }
    }
  }
}

Keep the key out of shared files: most clients read it from an environment variable.

From GET /install.md

Tools

As returned by GET /v1/tools, the same as tools/list. No key needed.

Answer a plain-language question about sanctions status, travel advisory levels, tariffs, or recent changes from stored, cited facts only, with the plan it ran. Use when you have a question in words. Do not use when you already hold entity IDs and fields; call fetch_facts. An abstention is a normal result.

Input schema · AskRequest · read-only
  • questionrequired
  • max_age_seconds
  • mode

Fetch typed facts with evidence for entities and fields, now or as of a valid and known time. Use when you know entity IDs or exact identifiers and the fields you need. Do not use when you only have a name; call resolve_entity first. Each gap is a typed abstention, never an empty answer.

Input schema · FetchRequest · read-only
  • referencesrequired
  • as_of
  • fields
  • max_age_seconds
  • mode

Get the context bundle for one entity: for a country its active advisories, for a listed party its sanctions exposure and identity, each part read from one snapshot. Use when you want everything about an entity you hold. Do not use when you need named fields; call fetch_facts. A missing part makes the bundle partial.

Input schema · EnrichRequest · read-only
  • referencerequired
  • max_age_seconds
  • mode

Ask for a field the catalog lacks, in words. A request the catalog already answers returns the field to use and builds nothing; any other is queued for people to build, with a status. Use when no field fits your need. Do not use when you want data; call fetch_facts or search.

Input schema · FieldRequestCreate
  • requestrequired

report_wrong_fact

POST /v1/reports

Report that an item of one of your responses is wrong: the response ID, the item's fact version, and what is wrong. People review it and the outcome is yours by report ID. Use when a fact you received is wrong. Do not use when a fact is only missing; call request_field.

Input schema · ReportCreate
  • response_idrequired
  • fact_version_idrequired
  • claimrequired

Resolve names, identifiers, or the known names in a headline to entities with ranked, explained candidates, or a negative result naming the lists searched. Use when you need an entity ID for a name or identifier. Do not use when you already hold the entity ID; call fetch_facts. Scores are not probabilities.

Input schema · ResolveRequest · read-only
  • mentionsrequired
  • as_of
  • max_age_seconds
  • mode

compare_response

POST /v1/compare

Compare one of your earlier fetch or ask responses with now: each fact added, removed, or changed, with its cause. Use when you hold a response_id and need what changed since. Do not use when you want the change feed in general; call get_changes.

Input schema · CompareRequest · read-only
  • response_idrequired
  • max_age_seconds
  • mode

get_changes

GET /v1/changes

Read typed change events in commit order after a cursor, filtered by entity, field, or domain, and poll with the returned cursor. Use when you track changes over time. Do not use when you want current values; call fetch_facts.

Input schema · query parameters · read-only
  • cursor
  • domain
  • entity
  • field
  • limit
  • mode

Read an on-demand indexing job that a search queued for days a source had not indexed: its status, its estimated end, and when done the fact versions it wrote. Use when a search returned a PENDING abstention with a job. Do not use when you have no job ID; search again instead.

Input schema · path parameter · read-only
  • job_idrequired