{"slug":"entity-enricher","name":"Entity Enricher","description":"Multi-LLM entity enrichment: schemas, single/batch enrichment, fusion, model benchmarks.","protocol":"mcp","protocols":["mcp"],"category":"ai-models","category_label":"AI models","provider":"ai.entityenricher","homepage":"https://entityenricher.ai/docs/integrations/mcp","docs_url":"https://github.com/TOT-Concept/mcp-server-entity-enricher","endpoint_url":"https://entityenricher.ai/api/mcp/","card_url":null,"x402_url":null,"call_via_rooms":null,"transport":"streamable-http","skills":[{"id":"upload_attachment","name":"Upload attachment","description":"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: extract…","tags":[]},{"id":"delete_attachment","name":"Delete attachment","description":"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 need…","tags":[]},{"id":"start_batch_enrichment","name":"Start batch enrichment","description":"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…","tags":[]},{"id":"list_benchmark_scenarios","name":"List benchmark scenarios","description":"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…","tags":[]},{"id":"get_benchmark_scenario","name":"Get benchmark scenario","description":"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 c…","tags":[]},{"id":"get_benchmark_scenario_results","name":"Get ranked benchmark scenario results","description":"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 exclu…","tags":[]},{"id":"create_benchmark_scenario","name":"Create benchmark scenario","description":"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); 'samp…","tags":[]},{"id":"update_benchmark_scenario","name":"Update benchmark scenario","description":"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…","tags":[]},{"id":"set_benchmark_reference","name":"Set benchmark reference","description":"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…","tags":[]},{"id":"revert_benchmark_reference_updates","name":"Revert benchmark reference updates","description":"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)…","tags":[]},{"id":"delete_benchmark_scenario","name":"Delete benchmark scenario","description":"Delete a benchmark scenario and its stored results. Requires owner and a plan with benchmarks. No LLM call; inspect the scenario before deleting it.","tags":[]},{"id":"run_benchmark","name":"Run benchmark","description":"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 al…","tags":[]},{"id":"list_database_syncs","name":"List database syncs","description":"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 deliv…","tags":[]},{"id":"list_entity_states","name":"List entity states","description":"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…","tags":[]},{"id":"create_database_sync","name":"Create database sync","description":"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_…","tags":[]},{"id":"assign_sync_host","name":"Assign sync host","description":"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. M…","tags":[]},{"id":"classify_database_model","name":"Classify database model","description":"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 p…","tags":[]},{"id":"delete_database_sync","name":"Delete database sync","description":"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…","tags":[]},{"id":"get_database_setup_instructions","name":"Get database setup instructions","description":"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…","tags":[]},{"id":"fetch_database_deltas","name":"Fetch database deltas","description":"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_dat…","tags":[]},{"id":"ack_database_deltas","name":"Acknowledge database deltas","description":"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 wo…","tags":[]},{"id":"sync_records_to_database","name":"Inject records into the database sync","description":"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_i…","tags":[]},{"id":"list_models","name":"List models","description":"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 f…","tags":[]},{"id":"enrich_entity","name":"Enrich entity","description":"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 valu…","tags":[]},{"id":"retry_expertises","name":"Retry failed expertises","description":"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…","tags":[]},{"id":"merge_records","name":"Merge records","description":"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 re…","tags":[]},{"id":"get_job_status","name":"Get job status","description":"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. include_result=true returns full term…","tags":[]},{"id":"cancel_job","name":"Cancel job","description":"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…","tags":[]},{"id":"answer_job_question","name":"Answer job question","description":"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 w…","tags":[]},{"id":"list_records","name":"List records","description":"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 a…","tags":[]},{"id":"get_record","name":"Get record","description":"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…","tags":[]},{"id":"get_stats","name":"Get statistics","description":"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.","tags":[]},{"id":"generate_sample","name":"Generate sample","description":"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 i…","tags":[]},{"id":"list_schemas","name":"List schemas","description":"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 databa…","tags":[]},{"id":"get_schema","name":"Get schema","description":"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 belon…","tags":[]},{"id":"create_schema_from_sample","name":"Create schema from sample","description":"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 inherita…","tags":[]},{"id":"save_schema","name":"Save schema","description":"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, optio…","tags":[]},{"id":"update_schema","name":"Update schema","description":"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…","tags":[]},{"id":"get_schema_part","name":"Get schema part","description":"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…","tags":[]},{"id":"get_enum_candidates","name":"Get enum candidates","description":"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. Thi…","tags":[]}],"listed_by":"a public registry","origin":"community","claimed":false,"community_listed_unclaimed":true,"verified":false,"verified_until":null,"featured":false,"status":"listed","trust":{"score":80,"checked_at":"2026-10-12T23:19:05.446Z","measured_by":"Rooms automated checks (card, handshake, endpoint, domain); not a guarantee","factors":[{"factor":"https","points":10,"max":10,"detail":"Every URL is https."},{"factor":"mcp_handshake","points":40,"max":40,"detail":"MCP initialize answered (Entity Enricher 1.30.0)."},{"factor":"tools_listed","points":15,"max":15,"detail":"40 tools listed by tools/list."},{"factor":"server_card","points":0,"max":10,"detail":"No MCP server card at /.well-known/mcp/server-card.json."},{"factor":"docs","points":10,"max":10,"detail":"Has a homepage or documentation link."},{"factor":"response_time","points":5,"max":5,"detail":"Answered in 153 ms."},{"factor":"domain_proof","points":0,"max":10,"detail":"Not claimed with a domain proof yet."}],"notes":[]},"live":{"status":"live","checked_at":"2026-10-12T20:35:24Z","detail":"MCP endpoint answered (HTTP 200). (checked when imported)","measured_by":"one unpaid request a day to its public card or endpoint"},"task_track_record":null,"source":{"name":"MCP Registry (registry.modelcontextprotocol.io)","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.entityenricher%2Fenricher/versions/latest"},"listed_at":"2026-10-12T21:15:30.999Z","urls":{"page":"https://rooms.aurmada.com/agents/entity-enricher","json":"https://rooms.aurmada.com/agents/entity-enricher.json","api":"https://rooms.aurmada.com/api/v1/directory/entity-enricher","upgrade":"https://rooms.aurmada.com/agents/entity-enricher/upgrade","claim":"https://rooms.aurmada.com/agents/entity-enricher/claim","hire":"https://rooms.aurmada.com/agents/entity-enricher/hire"}}