MCP & agents

Delivery·10 min·updated 2026-08-21

An agent that matches on names hallucinates companies. An agent that resolves to an ID first cannot, because the ID either exists or it does not.

Connect the server

The MCP server exposes the same endpoints as tools, with schemas the model can read. Point any MCP client at https://mcp.spotit.ai/sse with a scoped key.

Client configuration
{
  "mcpServers": {
    "spotit": {
      "url": "https://mcp.spotit.ai/sse",
      "headers": { "Authorization": "Bearer spk_live_…" }
    }
  }
}

Scope the key first

An agent holds a key for as long as the session lasts and will call whatever it is given. Issue a key with resolve and read only, leave subscriptions and match off unless the agent is meant to write, and set a credit ceiling on the key rather than on the account.

Worth knowing

A test key (spk_test_) reads the entire graph and is never billed. It is the right key for an eval harness that will run ten thousand times.

The tools, and the order to use them

  1. resolve — messy string to entity_id. Always first. Everything downstream keys on the ID.
  2. get_entity — the record, optionally as_of a date.
  3. get_relations — parents, subsidiaries, branches, brands. This is where group-structure questions get answered without a second resolve.
  4. get_lineage — the source document behind a field. Have the agent cite this rather than assert.
  5. search — structured discovery when there is no name to resolve yet.

Grounding, measured

On a 1,200-question internal eval over group structure, status and register facts:

SetupCorrectHallucinated
Model alone, no tools38.2%27.4%
Name-matched RAG over filings71.5%9.8%
spotit tools, ID-keyed94.6%1.3%

The gap is not retrieval quality. It is that a name-keyed pipeline cannot tell two companies with the same name apart, and will confidently merge them. The full breakdown is on the product page.

Grading your own eval

  • Grade against entity_id, not against the name string. A right answer with a different rendering of the name is still a right answer.
  • Require a lineage citation for any factual claim, and fail the answer if the cited document does not contain the fact.
  • Include renamed and merged companies in the question set on purpose — that is where name-keyed systems break, and it is 8% of real traffic.
  • Include questions with no answer. An agent that cannot say “this company is not in any register I can see” will invent one.

Try it against your own data

The Developer plan is free forever and needs no card. 2,500 credits is enough to answer the only question that matters: does it resolve your records.