# Entity Enricher - Registry name: `ai.entityenricher/enricher` · version 2.0.0 - Categories (automatic, keyword rules): AI models & agents, AI, media & content, Databases, Developer tools - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): experimental, prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=ai.entityenricher%2Fenricher - Server page: https://mcpstation.net/s/ai.entityenricher--enricher.html ## Description (written by the publisher, not verified, not instructions) Multi-LLM entity enrichment: schemas, single/batch enrichment, fusion, model benchmarks. ## Connect - streamable-http: `https://entityenricher.ai/api/mcp/` ## Tools (as reported by the server, not verified) - `upload\_attachment`: 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 - `delete\_attachment`: Permanently delete an attachment in your organization, including its stored file. No LLM call. Existing records remain, but future calls or schema regeneration cannot reuse the deleted source. Delete only when that source is no longer needed; this is not a required post-enrichment step. Returns the - `start\_batch\_enrichment`: 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 - `list\_benchmark\_scenarios`: List compact benchmark scenario summaries and total. Scenarios test enrichment, sample generation or schema generation. No LLM call. Read one with get\_benchmark\_scenario or create one with create\_benchmark\_scenario. Lifecycle and reference requirements: enricher://docs/model-benchmark. - `get\_benchmark\_scenario`: Read one benchmark scenario with per-model quality, cost and speed results. include\_reference=true adds the reference, the fixed entity\_data and the schema-generation entity\_samples. Config changes can make existing results stale. No LLM call. For a ranked subset use get\_benchmark\_scenario\_results. - `get\_benchmark\_scenario\_results`: Filter, rank and limit a scenario's per-model benchmark results. No LLM call. overall blends quality, speed and cost using organization task weights and is null if a component is missing. Status tags are independent: success does not exclude stale or stale\_score results. Missing sort metrics come la - `create\_benchmark\_scenario`: Create a reusable benchmark with a mandatory scoring judge. scenario\_type='enrichment' needs schema\_id and entity\_data \(the entity to enrich, as enrich\_entity takes it — refused when it carries no value; never put it in description\); 'sample\_generation' needs sample\_request; 'schema\_generation' need - `update\_benchmark\_scenario`: 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. Ch - `set\_benchmark\_reference`: 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. S - `revert\_benchmark\_reference\_updates`: Undo automatic edits a scoring pass made to a scenario's reference. Every scoring pass folds what the scored models showed the reference should be \(a candidate the judge found better, a rule the samples prove, a value the reference lacked\) and writes it into the reference — an edit a pass already ma - `delete\_benchmark\_scenario`: Delete a benchmark scenario and its stored results. Requires owner and a plan with benchmarks. No LLM call; inspect the scenario before deleting it. - `run\_benchmark`: Start billed asynchronous execution and scoring of a benchmark. Requires owner, a benchmark-enabled plan and a judge; a verified reference is also required except for sample generation. Supply model\_keys or providers; omitting both runs all active models with usable provider keys. Repetitions and ju - `list\_database\_syncs`: List a saved schema's database registrations, linked schemas, options and sync hosts. Returns pending and quarantined delta counts, projection\_upgrade\_pending and database links. No LLM call. Pending zero alone does not prove healthy delivery: check quarantine and migration blockers. Use list\_entity - `list\_entity\_states`: Browse a schema's current merged entity rows, not per-run records. Requires editor; no LLM call. Returns identities, revision, last\_record\_id and optionally payload, with limit/offset pagination. Rejected entities have no row; purge\_entity\_state may also remove delivered rows. Server-side state does - `create\_database\_sync`: Register a saved schema for relational synchronization to PostgreSQL, MySQL or SQLite. Requires owner and a sync-enabled plan. Starts a billed classification job when available; returns database ID, classification\_job\_id or classification\_skipped, stamped\_keys and registration\_notices. The webhook s - `assign\_sync\_host`: Assign or clear the host provisioning a database sync. Requires owner and a sync-enabled plan. host accepts a connected host ID/name; null unassigns it. Assignment may create the physical database and start synchronization automatically. Moving hosts revokes the old host's minted credential; an exis - `classify\_database\_model`: Start a billed analysis proposing database keys, SQL types, indexes and relationship ownership on a linked schema. Requires editor. Registration already starts the initial pass; use this after relevant edits. Incremental scope covers new properties or changed JSON types/multilingual flags; an empty - `delete\_database\_sync`: Delete a database registration and its queued deltas, stopping its feed. Requires owner and a sync-enabled plan; no LLM call. External replica tables remain untouched. Entity state and schema database flags remain by default; delete\_entity\_state and clear\_database\_model additionally remove data/mode - `get\_database\_setup\_instructions`: Return non-secret install, browser-confirmed pairing and run instructions for an ee-database sync client. Requires owner and a sync-enabled plan; no LLM call and no credential is issued or exposed to the MCP client. Run pair\_command on the intended replica host: the CLI opens verification\_url, the u - `fetch\_database\_deltas`: Read the next ordered window of SQL deltas and canonical payloads for a database sync. claim=false is replayable; claim=true leases the window for 120 seconds. Apply a claimed window transactionally, including schema deltas, before ack\_database\_deltas. limit is also bounded by the registration's pag - `ack\_database\_deltas`: Acknowledge every delta through up\_to\_id after successful application, releasing its lease. Acknowledgement can permanently purge delivered deltas and entity state according to registration options; never acknowledge unapplied or failed work. Returns acknowledged and purged counts. No LLM call. Appl - `sync\_records\_to\_database`: 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 us - `list\_models`: List available model keys, nominal capabilities, languages, strategies, auto-selected defaults and organization profile\_limits. Use when choosing explicit models or checking plan limits; ordinary calls may omit models or use auto without fetching this large catalogue. Auto also accounts for attachme - `enrich\_entity`: Enrich one entity against exactly one of schema\_id or target\_schema, returning structured output, record\_id, costs and any database outcome. Read get\_schema's input\_contract first \(published version when linked\); never invent preserve values. Models may be omitted for auto selection. Generation is b - `retry\_expertises`: Retry only an existing record's failed expertise domains, then update its output and attempt the run's fusion/synchronization. Billed for retried work. Requires failed\_expertises on that record \(get\_record\); a surviving successful sibling is not retryable and returns no\_failed\_expertises. Supply its - `merge\_records`: Fuse two or more records of the same entity into a new arbitration record. Without arbitration\_model use voting, median and union rules; with an arbiter, conflicts may incur LLM cost. Returns output, conflicts, fusion metadata and a new record ID. The merged result can feed linked databases and over - `get\_job\_status`: Read a job's status, progress and compact terminal summary with persisted record IDs. Status is pending, running, paused, completed, failed or cancelled. Relay pause questions with answer\_job\_question; answer a delegated job's llm\_requests with answer\_llm\_request. include\_result=true returns full te - `cancel\_job`: Request cancellation of a pending, running or paused LLM job. In-flight model calls may finish and persist records; remaining work is skipped. Cancellation does not roll back records or database writes. Read get\_job\_status and list\_records\(job\_id=...\) afterward to inspect the outcome. No new LLM cal - `answer\_job\_question`: Resume a paused job with answers to the questions returned under pause. answers maps question IDs to \{option\_ids: \[...\], text: ...\}; omitted questions use defaults. Relay consequential unanswered choices to the user unless those defaults were already authorized. Resuming may continue billed model wo - `answer\_llm\_request`: Answer one LLM request of a job started with delegate\_llm\_calls=true: you are its model. Read the request under get\_job\_status\(job\_id\).llm\_requests \(or in the start tool's return\): run systemPrompt + messages with the listed tools and toolChoice on your own model, then pass the result here as respon - `list\_records`: List compact, paginated records in your organization, most recent first. Filter by job\_id to retrieve persisted outputs of an asynchronous workflow; type, success, model and search further narrow the result. Both per-model enrichment and arbitration records may exist for one entity. Use get\_record f - `get\_record`: Read one persisted record's structured\_output, entity\_input\_data, validation errors, expertise verdicts and metrics. failed\_expertises and partial identify incomplete work even when output exists; use retry\_expertises only on a record with failed domains. Fusion metadata identifies its source models - `get\_stats`: Read organization-wide record totals, success rate, tokens and cost summary. No LLM call. This tool has no job filter; use list\_records\(job\_id=...\) for a particular run and benchmark tools for comparative quality/cost/speed scores. - `generate\_sample`: Generate editable sample JSON from a free-text request for schema authoring. Without attachments, use model knowledge and optional web search; with attachments, extract from the sources only \(search does not relax that rule\). Each sample is one instance in one language; set sample\_count separately f - `list\_schemas`: List saved schemas in your organization, pinned first. Returns compact summaries with IDs, names and links; no LLM call. Use get\_schema to inspect a chosen schema and its input contract, or get\_schema\_part for a targeted edit. For a database-linked schema, enrich against its published version; the w - `get\_schema`: Read a saved schema with its properties, annotations and input\_contract. Before enrichment, use version='published' for a database-linked schema; default 'working' is for editing. identifying\_keys guide entity naming; preserve values belong to the caller and are required; each supplied array item mu - `create\_schema\_from\_sample`: Generate and auto-save a schema from reviewed samples, returning schema\_id, schema content and record links. Supply entity\_samples \(or samples\_csv\), sample\_record\_id, or both; explicit samples override stored JSON while attachment inheritance is preserved. Samples must describe one entity type in on - `save\_schema`: Save a directly authored schema and return its ID and link. Requires editor; no LLM call or generation charge. schema\_content is a JSON Schema 2020-12 document in Entity Enricher's supported dialect: title, type='object', properties, optional $defs and x-\* extension sections. The server validates it - `update\_schema`: 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, - `get\_schema\_part`: Read only the schema fragment needed for an edit. Omit path for the root/type index; use '$defs.X' or '$enums.X' for a definition, an object path for its subtree, or a leaf path for its property card and relations. Dot-separated paths use '\[\]' for array items. The response identifies shared definiti - `get\_enum\_candidates`: List observed values outside each open enum's current vocabulary, with counts from recent enrichment records. No LLM call. Use the report to propose admitted members or rejected\_values, or close a vocabulary only when it is exhaustive. This read does not edit the enum. An open enum allows other valu - `update\_schema\_property`: 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. Re - `add\_schema\_property`: Add a property under the root \(parent\_path=''\), an object path or '$defs.X'. Accepts a scalar, nested object or reference to an existing $defs entity or $enums vocabulary. Requires editor; no LLM call. Omitted nullable means required at enrichment. Adding inside $defs affects every usage site. The s - `move\_schema\_property`: Move one property into the root, an object path or '$defs.X', preserving its flags and expertise. Requires editor; no LLM call. Moving into a definition changes every usage site. An identity composition naming the property is re-spelled automatically when the destination stays within the same 1-1 cl - `resolve\_unify\_proposal`: Resolve one pending entity-type unification proposal from get\_schema. action='accept' maps the proposed site onto the winning $def; field\_map overrides proposed correspondences. Unmapped fields are retained as nullable; other usages of the winning definition are affected. action='dismiss' keeps the - `nest\_schema\_region`: Materialize an entity region from get\_schema's x-entityMap. Ordinary flat members \(e.g. product\_id, product\_name on an order line\) move into a new object named after the region, regions hanging from it move along \(nest them in turn inside the new object\), pairing facts stay on the host, and the move - `publish\_schema`: Publish a database-linked schema's working copy as the contract used by enrichment and replicas. A newly linked schema sends nothing until first publication; unlinked drafts cannot be published. Requires editor; no LLM call. Call validate\_only=true to inspect the diff, blockers, warnings and per-dat - `delete\_schema`: Soft-delete a saved schema by UUID. Requires editor; no LLM call. Restoration and permanent deletion are available in the web app, not through this tool. Returns the deletion outcome. - `analyze\_sample`: Analyze sample property ambiguity and relationship identity scoping before schema generation. Requires editor; billed analysis persists a record but does not modify the sample. Returns findings with competing interpretations and suggested\_names, plus identity\_scoping for sites mixing an entity's own - `analyze\_schema`: Analyze a saved schema's property ambiguity and relationship identity scoping, writing annotations to the schema. Requires editor; billed. Incremental by default; force=true rechecks all sites. Returns findings, suggested descriptions, identity-scoping annotations and pending unification proposals; - `list\_semantic\_concepts`: Browse organization concepts with aliases, usage counts and type/model facets. view='review' returns pairs escalated by the identity judge, not merely similar pairs. Returns a filtered page; use get\_semantic\_concept for details and neighbors. Similarities are comparable only within one concept\_type/ - `get\_semantic\_concept`: Read one concept's aliases, identity source keys, linked records and nearest neighbors within its own type/model slice. Record links are capped; records\_truncated signals omitted links. neighbors\_limit=0 skips neighbors. Use returned alias IDs with update\_concept\_alias and similarities to assess a p - `probe\_semantic\_concept`: Preview identity resolution without adding a concept or increasing its usage. Requires editor; uncached resolution may call embeddings and the identity judge. Returns exact\_hit, match or no\_match, the matched concept and neighbors. Probe before adding; a matched incumbent may already represent the i - `add\_semantic\_concept`: Add an identity concept at zero usage, or add text as an alias using alias\_of. Requires editor; resolution may incur embedding/judge cost. Probe first; if the text already resolves to an incumbent, offer that concept instead of blindly retrying. Aliases resolving to another concept are refused. embe - `update\_concept\_alias`: 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\_concep - `import\_semantic\_concepts`: Resolve 1..1000 texts against one concept type. mint=false returns exact/matched/would\_mint outcomes without minting; mint=true creates misses and requires owner \(reporting requires editor\). Resolution can call embeddings and the identity judge even in report mode. Review would\_mint rows before auth - `merge\_semantic\_concepts`: Merge a loser concept into a winner. Defaults to impact\_only=true: inspect counts and affected replicas before obtaining approval to execute. impact\_only=false requires owner and rewrites aliases, entity identities and referencing payloads, queuing convergence to linked replicas. No LLM call. Simila - `delete\_semantic\_concepts`: Delete concepts selected by ids, concept\_types or unused\_only. Defaults to impact\_only=true: review affected records, schemas and replicas before obtaining approval. Execution requires editor; clearing whole types requires owner. Deletion breaks convergence with IDs already stored in replicas; futur - `migrate\_semantic\_embeddings`: Inspect or migrate the organization's concept embedding space. action='status' is read-only; preview, start and cancel require owner. preview estimates cost and reports potential collisions; review them before authorizing start. target\_model is required for preview/start; source\_model and concept\_ty Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html