Entity Enricher
REMOTE · ENTITYENRICHER.AI · SCANNED SEP 25
Multi-LLM entity enrichment: schemas, single/batch enrichment, fusion, model benchmarks.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (delete_attachment). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability79
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 13498 tokens (~201/item across 67 items; 58 tools + 9 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 92% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 60 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
How do I install the Entity Enricher MCP server?
Entity Enricher is a hosted endpoint at https://entityenricher.ai/api/mcp/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · entityenricher.ai
claude mcp add --transport http ai-entityenricher-enricher 'https://entityenricher.ai/api/mcp/'
{
"mcpServers": {
"ai-entityenricher-enricher": {
"url": "https://entityenricher.ai/api/mcp/"
}
}
} {
"servers": {
"ai-entityenricher-enricher": {
"type": "http",
"url": "https://entityenricher.ai/api/mcp/"
}
}
} [mcp_servers.ai-entityenricher-enricher] url = "https://entityenricher.ai/api/mcp/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-entityenricher-enricher": {
"type": "remote",
"url": "https://entityenricher.ai/api/mcp/",
"enabled": true
}
}
} openclaw mcp add ai-entityenricher-enricher --url 'https://entityenricher.ai/api/mcp/' --transport streamable-http
mcp_servers:
ai-entityenricher-enricher:
url: "https://entityenricher.ai/api/mcp/" {
"McpServers": {
"ai-entityenricher-enricher": {
"Transport": "http",
"Url": "https://entityenricher.ai/api/mcp/"
}
}
} assistant mcp add ai-entityenricher-enricher -t streamable-http -u 'https://entityenricher.ai/api/mcp/'
{
"mcpServers": {
"ai-entityenricher-enricher": {
"type": "http",
"url": "https://entityenricher.ai/api/mcp/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 +29
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Jul 26 0
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Sept 2026 · Probed https://entityenricher.ai/api/mcp/
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=entityenricher.ai | CN=YE2,O=Let's Encrypt,C=US | 16 Aug 2026 | 14 Nov 2026 | ECDSA 256 | ECDSA-SHA384 | 6641a054f043018dc0bc594e24494ccf6e6 |
| SANs: *.entityenricher.ai, entityenricher.ai | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of entityenricher.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| entityenricher.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://entityenricher.ai/api/mcp/ | Verified | 200 | |
| http (plaintext) | http://entityenricher.ai/api/mcp/ | HTTPS enforced | 301 | https://entityenricher.ai/api/mcp/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
set_benchmark_reference Set benchmark reference ~199
Save the gold reference for an enrichment or schema-generation benchmark. Only set reference_verified=true after checking its values against trusted evidence or obtaining human sign-off; a generated answer alone is not verification. Schema-generation references must be GeneratedJsonSchema objects. Sample-generation scenarios reject references because they are rubric-scored. Requires owner and a plan with benchmarks; no LLM call. A verified reference enables run_benchmark. See enricher://docs/model-benchmark.
| Name | Type | Req | Description |
|---|---|---|---|
| reference_output | object | yes | Expected entity JSON for enrichment, or a schema document for schema_generation. Sample-generation scenarios do not accept a reference. |
| reference_verified | boolean | – | Explicit sign-off that the reference is correct (required to run). |
| scenario_id | string | yes | UUID of the scenario. |
| source | – | – | Provenance: generated | pasted | record (default 'pasted'). |
| source_record_id | – | – | Record UUID the reference was copied from (when source='record'). |
Structured output declared, but exposes no named fields.
No examples provided.
start_batch_enrichment Start batch enrichment ~372
Start billed asynchronous enrichment of an entity list against exactly one of schema_id or target_schema. Returns job_id and total. No fixed entity-count cap; live prompt quotas and credits can stop remaining work. Each entity follows the enrichment/fusion pipeline; every model must succeed for its automatic fusion and database admission. A confident classification mismatch skips that entity without enrichment, never pauses the batch. Poll get_job_status, then list_records(job_id=...). Attachments apply to every entity. Unlike enrich_entity, this tool exposes neither database_sync=false nor web-search activation. Input contracts, partial results and recovery: enricher://docs/batch-enrichment.
| Name | Type | Req | Description |
|---|---|---|---|
| arbitration_model | – | – | Optional LLM for auto-fusion conflict resolution (None = rule-based). |
| attachment_ids | – | – | Attachment UUIDs applied as source material to every entity. |
| classification_model | – | – | Optional classifier key. Confident mismatches skip that entity; softer verdicts become prompt context. Batch classification never pauses. |
| entities | array | yes | Entities to enrich (each a free-form dict naming the entity — the schema's identifying fields ideally, but any field names work). |
| languages | – | – | ISO 639-1 codes; defaults to ['en']. |
| models | – | – | Model composite keys (call list_models to discover them). Optional: omit (or pass ['auto']) to let the server pick the org's default model — pinned per-task default if set, else the best blended benc… |
| schema_id | – | – | UUID of a saved schema. Mutually exclusive with target_schema. |
| strategy | string | – | auto (default) | single_pass | expert_domains | multi_expertise |
| target_schema | – | – | Inline schema document in the supported Entity Enricher dialect. Prefer schema_id to link records. See enricher://docs/schema-reference. |
Structured output declared, but exposes no named fields.
No examples provided.
sync_records_to_database Inject records into the database sync ~177
Validate and inject stored or supplied enrichment output into the entity layer and linked syncs. May incur semantic-resolution cost. record_id alone reuses its output; adding structured_output creates a new derived record. Without record_id, supply structured_output and saved_schema_id. Each item uses the current published contract and admission gate. Only enrichment/arbitration records qualify; base records whose fusion is in the same request are skipped. Inspect each outcome for rejected or partial writes. Use after fixing a rejected output or an enrich_entity run with database_sync=false. See enricher://docs/enrichment-and-fusion.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | Entities to inject. Each item: {record_id?, structured_output?, saved_schema_id?} — at least one of record_id / structured_output, and saved_schema_id required when there is no record_id. |
Structured output declared, but exposes no named fields.
No examples provided.
update_benchmark_scenario Update benchmark scenario ~313
Edit a benchmark's test definition or scoring configuration. Requires owner and a plan with benchmarks; no model run. Only supplied fields change, but sample_params and schema_gen_params replace their parameter objects wholesale. The judge may be replaced, not cleared; scenario_type is immutable. Changed test definitions make previous results stale. Re-run affected models to refresh their scores. See enricher://docs/model-benchmark.
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | Free-text note shown in the Benchmarks tab; no model ever reads it. |
| entity_data | – | – | Enrichment: replacement fixed entity input (same contract as enrich_entity's entity_data; refused when it carries no value). |
| entity_samples | – | – | schema_generation: replacement input samples (1..20, whole list). |
| languages | – | – | – |
| name | – | – | – |
| repetitions | – | – | – |
| sample_params | – | – | sample_generation: full replacement task params object {request, typical_object, naming_convention, language, enable_web_search}. |
| scenario_id | string | yes | UUID of the scenario. |
| schema_gen_params | – | – | schema_generation: full replacement task params object {generate_semantic_ids}. |
| schema_id | – | – | New saved-schema UUID. |
| scoring_judge_model_key | – | – | – |
| scoring_source | – | – | Feed this scenario's results into the live per-model scores of the options API: 'organization' (owner+), 'global' (system admin only, fallback for orgs without their own source), or 'off' to stop usi… |
| strategy | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
update_concept_alias Update concept surface form ~148
Remove or promote a concept alias using alias IDs from get_semantic_concept. Requires editor; no LLM call. action='remove' stops that surface form resolving to this concept; removing the last alias is refused. action='set_canonical' changes its displayed form. To add an alias use add_semantic_concept(alias_of=...). Returns the outcome. See enricher://docs/semantic-ids.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | 'remove' prunes the surface form; 'set_canonical' promotes it. |
| alias_id | string | yes | The surface-form row's own id (UUID). |
| concept_id | string | yes | The concept's semantic_id (UUID). |
Structured output declared, but exposes no named fields.
No examples provided.
update_schema Update schema ~270
Edit a saved schema's metadata or replace its full schema_content without an LLM call. Requires editor. Only supplied values change. For one property, prefer update_schema_property, add_schema_property or move_schema_property. Replacements must use GeneratedJsonSchema; unknown keywords are dropped, not rejected, and reported in ignored_keywords / applied_repairs. On database-linked schemas this edits the working copy: neutral edits propagate automatically; structural edits take effect after publish_schema. Returns the updated schema and link. Contract and edit workflow: enricher://docs/schema-reference.
| Name | Type | Req | Description |
|---|---|---|---|
| ambiguity_check_enabled | – | – | Enable/disable the ambiguity check for this schema — the pass that flags properties whose name admits more than one meaning (gates analyze_schema and the generation post-pass). |
| is_pinned | – | – | Pin or unpin. |
| key_language | – | – | Pre-set the key language for multilingual database keys ahead of a database link (ISO 639-1). Settable only while the schema has no linked database and no entity state; locked afterwards. |
| name | – | – | New name (must be unique). |
| schema_content | – | – | Full replacement schema document, following get_schema.schema_content. See enricher://docs/schema-reference. |
| schema_id | string | yes | UUID of the schema to update. |
| tags | – | – | Replacement tag list. |
Structured output declared, but exposes no named fields.
No examples provided.
update_schema_property Update schema property ~306
Edit or remove one property by path without replacing the full schema. Requires editor; no LLM call. Only supplied fields change; null clears an entry in flags. Server validation rejects or normalizes invalid combinations and reports applied_repairs. Editing inside $defs affects every usage site. Removing an identity-source member is refused until its identity is recomposed. Renames preserve identity references and record migration intent. Database-linked schemas remain working-copy edits until publish_schema; inspect migration_grade. For additions or relocation use add_schema_property or move_schema_property. Paths, flags and rename rules: enricher://docs/schema-reference.
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | – |
| examples | – | – | – |
| flags | – | – | Flag updates (null clears): expertise, preserve, multilingual, language_discriminator, identifying, nullable, format, pattern, semantic_id, judge_floor, semantic_concept_type, semantic_embedding_mode… |
| new_name | – | – | Rename the property. |
| path | string | yes | Property path, e.g. 'ceremonies[].ceremony_type'. |
| ref | – | – | '#/$defs/X' or '#/$enums/X'; clears type. |
| remove | boolean | – | Delete the property instead. |
| schema_id | string | yes | UUID of the saved schema. |
| type | – | – | New JSON type (string/number/integer/boolean/array/object); clears $ref. |
Structured output declared, but exposes no named fields.
No examples provided.
upload_attachment Upload attachment ~169
Upload base64 file bytes as reusable source material; returns id and requires_capability. Pass the ID in attachment_ids to sample/schema generation, enrichment or benchmarks. Supported format handling depends on server MIME policy: extracted text or model-readable binary. Prefer auto model selection for attachment capabilities. Uploading does not itself run an LLM. A generated sample with attachments is source-only; see enricher://docs/documents for formats, multiple-file behavior and research workflows. Retain attachments needed for later runs or regeneration.
| Name | Type | Req | Description |
|---|---|---|---|
| content_base64 | string | yes | The file's bytes, base64-encoded (no data: prefix). |
| filename | string | yes | Original filename including extension (e.g. 'report.pdf'). |
| media_type | – | – | Optional MIME hint; the server still sniffs the magic bytes. |
Structured output declared, but exposes no named fields.
No examples provided.
What is the Entity Enricher MCP server?
Entity Enricher is an MCP server listed in the public MCP registry as ai.entityenricher/enricher. Multi-LLM entity enrichment: schemas, single/batch enrichment, fusion, model benchmarks. This page covers its hosted endpoint (https://entityenricher.ai/api/mcp/).
Is the Entity Enricher MCP server safe to use?
Entity Enricher scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Entity Enricher MCP server expose?
Entity Enricher exposes 58 tools: upload_attachment, delete_attachment, start_batch_enrichment, list_benchmark_scenarios, get_benchmark_scenario, and 53 more. Their descriptions and schemas cost roughly 12,760 tokens of context every time the server is loaded.
Does the Entity Enricher MCP server require authentication?
No. We connected to Entity Enricher without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Entity Enricher MCP server still maintained?
Entity Enricher is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.