Dedupe and merge

These pages describe checker version VeronikAI/0.1+attestations.1 (signing.py). A2A card checks use suite veronikai-a2a-get-card version 1. MCP checks use suite veronikai-mcp-conformance version 2. If the code changes, the version string on a signed result should change too.

What is checked

The same agent can appear in more than one public list — for example the official MCP Registry and Hugging Face Spaces. If we counted every listing as a new agent, the directory would look bigger than it is, and the same shop would get many report cards.

Dedupe asks: are these listings the same public endpoint (or the same official MCP name), and should they share one history?

This step does not knock on the agent. It only rearranges records we already fetched from allowed registries (dedupe.py).

How it works

Each listing gets a key:

Listings from different registries that share that key are merged into one agents row. If a non-official listing publishes an MCP server name that already exists in the official MCP Registry, it is folded into that official entry's endpoint key (a "name alias").

When several listings remain after the merge, we pick display fields in a fixed source order: mcp-registry, then a2a-registry, then hf-spaces, then neuronto, then smithery, then allagents. The first non-empty name, description, endpoint, and card URL win. The agent remembers every source that still lists it.

We usually regroup only keys that changed in the current run. A full regroup happens if VERONIKAI_FULL_DEDUPE=1, or the first time effective keys have never been filled in.

If every listing for a key disappears, the agent is marked inactive. Its history stays, unless the listings were removed because of a policy exclusion (for example an upstream we are not allowed to use). Policy exclusions also delete the public agent row so we do not keep serving those details.

What pass and fail mean

Dedupe is not a grade.

Limits

Checker version

Dedupe is part of building the directory, not part of a signed per-check suite. Signed checks still name VeronikAI/0.1+attestations.1. The merge rules above are the ones in dedupe.py as of Nov 9, 2026.