Servidor MCP

Entity Enricher

ai.entityenricher/enricher
Datos y analítica Público y accesible MCP 2025-11-25

Qué hace este MCP

Enriches entities using configurable schemas, batch processing, multiple language models, and model benchmarking.

ack_database_deltas
Acknowledge 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. Apply/ack workflow: enricher://docs/database-sync.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'ack_database_deltasArguments', 'required': ['database_id', 'up_to_id'], 'properties': {'up_to_id': {'type': 'integer', 'title': 'Up To Id', 'minimum': 1, 'description': 'Acknowledge every delta with id <= this value.'}, 'database_id': {'type': 'string', 'title': 'Database Id', 'description': 'Database sync UUID.'}}}
Esquema de salida
{'type': 'object', 'title': 'ack_database_deltasDictOutput', 'additionalProperties': True}
add_schema_property
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 same validation and working-copy/publication rules as update_schema_property apply. Read the container with get_schema_part first. Property format: enricher://docs/schema-reference.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'add_schema_propertyArguments', 'required': ['schema_id', 'name', 'definition'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'description': 'New property name (letters, digits, underscores).'}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}, 'definition': {'type': 'object', 'title': 'Definition', 'description': "{type|ref, description?, examples?, nullable?, flags?, properties?} â\x80\x94 'properties' nests the same shape per child for an inline object.", 'additionalProperties': True}, 'parent_path': {'type': 'string', 'title': 'Parent Path', 'default': '', 'description': "'' = root, or an object path / '$defs.X'."}}}
Esquema de salida
{'type': 'object', 'title': 'add_schema_propertyDictOutput', 'additionalProperties': True}
add_semantic_concept
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. embedding_model selects a new type's space only. Returns concept details and link; manage existing aliases with update_concept_alias. See enricher://docs/semantic-ids.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'add_semantic_conceptArguments', 'required': ['text', 'concept_type'], 'properties': {'text': {'type': 'string', 'title': 'Text', 'description': 'The identity text to add.'}, 'alias_of': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Alias Of', 'default': None, 'description': 'semantic_id of the concept this text is a surface form of; omit to add a standalone concept.'}, 'judge_floor': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Judge Floor', 'default': None, 'description': 'Similarity at or above which a candidate is put to the identity judge. Omit to use the organization default (Settings â\x86\x92 Organization).'}, 'concept_type': {'type': 'string', 'title': 'Concept Type', 'description': 'Concept type the text belongs to.'}, 'embedding_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Embedding Model', 'default': None, 'description': 'Composite key (provider::model) to embed a NEW concept type under.'}}}
Esquema de salida
{'type': 'object', 'title': 'add_semantic_conceptDictOutput', 'additionalProperties': True}
analyze_sample
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 facts with facts about its parent relationship. Names are judged in their parent context, including missing units, periods or ranges. Apply only approved corrections before create_schema_from_sample. Optional: generate_sample already checks its initial sample. How to interpret findings: enricher://docs/schema-from-sample.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'analyze_sampleArguments', 'required': ['sample_json'], 'properties': {'model': {'type': 'string', 'title': 'Model', 'default': 'auto', 'description': "Model composite key. 'auto' (default) lets the server pick the org's default schema-generation model."}, 'sample_json': {'type': 'object', 'title': 'Sample Json', 'description': 'The sample entity object to analyze.', 'additionalProperties': True}, 'protected_fields': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Protected Fields', 'default': None, 'description': 'Leaf names you own (still flagged, but no rename is proposed for them).'}}}
Esquema de salida
{'type': 'object', 'title': 'analyze_sampleDictOutput', 'additionalProperties': True}
analyze_schema
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; it does not apply suggested structural changes. Fails with ambiguity_check_disabled if the feature is off. Use update_schema_property for approved descriptions or renames; review structural changes and publish them when linked. Interpretation and modeling guidance: enricher://docs/schema-reference.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'analyze_schemaArguments', 'required': ['schema_id'], 'properties': {'force': {'type': 'boolean', 'title': 'Force', 'default': False, 'description': 'Re-analyze every property, not just unannotated ones.'}, 'model': {'type': 'string', 'title': 'Model', 'default': 'auto', 'description': "Model composite key. 'auto' (default) lets the server pick the org's default schema-generation model."}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}}}
Esquema de salida
{'type': 'object', 'title': 'analyze_schemaDictOutput', 'additionalProperties': True}
answer_job_question
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 work. Returns the next pause, terminal result or running status after wait_seconds; poll get_job_status if still running. Works with generate_sample clarification in both knowledge and source modes. See enricher://docs/documents.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'answer_job_questionArguments', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'title': 'Job Id', 'description': 'Paused job ID.'}, 'answers': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Answers', 'default': None, 'description': "Map of question id -> {option_ids: list[str], text: str | null}. Omit to resume with the planner's defaults."}, 'wait_seconds': {'type': 'integer', 'title': 'Wait Seconds', 'default': 120, 'maximum': 600, 'minimum': 0, 'description': "How long to wait for the job's next pause or completion before returning (0 = return immediately after resuming)."}}}
Esquema de salida
{'type': 'object', 'title': 'answer_job_questionDictOutput', 'additionalProperties': True}
assign_sync_host
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 existing manual pairing is not evicted. Candidates come from create_database_sync or list_database_syncs. No LLM call. Managed and manual setup: enricher://docs/database-sync.
Destructivo Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'assign_sync_hostArguments', 'required': ['database_id'], 'properties': {'host': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Host', 'default': None, 'description': 'Sync host id or name; null clears the assignment.'}, 'database_id': {'type': 'string', 'title': 'Database Id', 'description': 'Database sync UUID (from list_database_syncs).'}}}
Esquema de salida
{'type': 'object', 'title': 'assign_sync_hostDictOutput', 'additionalProperties': True}
cancel_job
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 call is started by this tool.
Idempotente
Esquema de entrada
{'type': 'object', 'title': 'cancel_jobArguments', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'title': 'Job Id', 'description': 'Job ID to cancel.'}}}
Esquema de salida
{'type': 'object', 'title': 'cancel_jobDictOutput', 'additionalProperties': True}
classify_database_model
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 scope does not rerun unchanged fields. Returns job_id: poll get_job_status and inspect get_schema's working copy. Correct proposals with property tools, then publish_schema to ship changes. Entity-level indexes and ownership choices: enricher://docs/database-sync.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'classify_database_modelArguments', 'required': ['schema_id'], 'properties': {'model': {'type': 'string', 'title': 'Model', 'default': 'auto', 'description': "Model composite key. 'auto' (default) lets the server pick the org's default schema-generation model, falling back to the model that generated the schema."}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'Saved schema UUID to classify.'}}}
Esquema de salida
{'type': 'object', 'title': 'classify_database_modelDictOutput', 'additionalProperties': True}
create_benchmark_scenario
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' needs entity_samples (1..20 samples of one entity type). Enrichment and schema generation need a verified gold reference via set_benchmark_reference before running. Sample generation is rubric-scored and takes no reference. Requires owner and a plan with benchmarks; creating the scenario does not run the models. Returns the scenario and link. Next call run_benchmark when its reference requirements are satisfied. See enricher://docs/model-benchmark.
Esquema de entrada
{'type': 'object', 'title': 'create_benchmark_scenarioArguments', 'required': ['name', 'scoring_judge_model_key'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 255, 'minLength': 1}, 'language': {'type': 'string', 'title': 'Language', 'default': 'en', 'description': 'sample_generation: output language for names + values.'}, 'strategy': {'type': 'string', 'title': 'Strategy', 'default': 'single_pass', 'description': "Enrichment: pinned strategy (no 'auto'): single_pass | expert_domains | multi_expertise"}, 'languages': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Languages', 'default': None, 'description': "Enrichment: defaults to ['en']."}, 'schema_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Schema Id', 'default': None, 'description': 'UUID of the saved schema to enrich against (enrichment only, required there).'}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}], 'title': 'Description', 'default': None, 'description': 'Free-text note shown in the Benchmarks tab; no model ever reads it. The entity to enrich goes in entity_data, never here.'}, 'entity_data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Entity Data', 'default': None, 'description': 'Enrichment (required there): the fixed entity input every model enriches â\x80\x94 the same JSON enrich_entity takes. Read get_schema.input_contract first: identifying fields, preserve paths and keys for supplied array items. Refused when it carries no value.'}, 'repetitions': {'type': 'integer', 'title': 'Repetitions', 'default': 2, 'maximum': 3, 'minimum': 1, 'description': 'Run each model N times per run; keeps mean + consistency spread.'}, 'scenario_type': {'type': 'string', 'title': 'Scenario Type', 'default': 'enrichment', 'description': 'enrichment | sample_generation | schema_generation (immutable).'}, 'attachment_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Attachment Ids', 'default': None, 'description': 'Attachment UUIDs included in every run.'}, 'entity_samples': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Entity Samples', 'default': None, 'description': 'schema_generation: the 1..20 fixed input samples (JSON objects of one entity type) every model converts to a schema. Several samples let the scoring read evidence the reference cannot state alone (nullable, types, identity).'}, 'sample_request': {'anyOf': [{'type': 'string', 'maxLength': 4000}, {'type': 'null'}], 'title': 'Sample Request', 'default': None, 'description': "sample_generation: the free-text sample request every model answers â\x80\x94 the kind of entity, what the sample must contain, any budget or structural preference (same contract as generate_sample's request)."}, 'typical_object': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Typical Object', 'default': None, 'description': "sample_generation: a specific instance to model (e.g. 'Serena Williams')."}, 'enable_web_search': {'type': 'boolean', 'title': 'Enable Web Search', 'default': False, 'description': "sample_generation: ground values with the model's web search."}, 'naming_convention': {'type': 'string', 'title': 'Naming Convention', 'default': 'auto', 'description': 'sample_generation: auto | snake_case | camelCase.'}, 'generate_semantic_ids': {'type': 'boolean', 'title': 'Generate Semantic Ids', 'default': False, 'description': 'schema_generation: add semantic_id properties to keyed objects.'}, 'scoring_judge_model_key': {'type': 'string', 'title': 'Scoring Judge Model Key', 'description': 'LLM judge composite key used to score results (required).'}}}
Esquema de salida
{'type': 'object', 'title': 'create_benchmark_scenarioDictOutput', 'additionalProperties': True}
create_database_sync
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 signing secret stays outside the MCP response and can be managed in the web app. The schema is initially unpublished: wait for classification, review keys/options/notices, then publish_schema before any data can sync. pk_strategy locks once the physical model ships. Owned child arrays replace previous membership, so omitted children are deleted on re-enrichment. purge_entity_state transfers custody to replicas; relay custody_warning. A connected host may provision automatically; otherwise get_database_setup_instructions starts browser-confirmed client pairing. Modeling, publication and delivery: enricher://docs/database-sync.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'create_database_syncArguments', 'required': ['schema_id', 'name'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 255, 'minLength': 1, 'description': "Name of the physical database (existing on the user's server, or created by `ee-database run --create-missing`); shared by every schema linked to this database sync. Also used (snake-cased) as the conventional replica database name by the ee-database CLI."}, 'dialect': {'type': 'string', 'title': 'Dialect', 'default': 'postgres', 'description': 'SQL dialect the deltas are rendered in: postgres | mysql | sqlite.'}, 'on_gaps': {'type': 'string', 'title': 'On Gaps', 'default': 'skip_children', 'description': "Admission gate â\x80\x94 what is written when an enrichment has gaps (non-nullable fields unfilled). 'reject_entity': nothing â\x80\x94 one gap anywhere refuses the whole enrichment. 'skip_children' (default): the entity without its incomplete children â\x80\x94 an array item is dropped, a shared 1-1 reference is detached (child not written, parent's foreign key NULL); gaps with no such child above them still reject. 'accept_partial': everything â\x80\x94 gaps land as NULLs, and under last-write-wins a later partial run erases what an earlier one filled."}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'Saved schema UUID to connect the database to.'}, 'pk_strategy': {'type': 'string', 'title': 'Pk Strategy', 'default': 'surrogate', 'description': 'surrogate (default): physical surrogate IDs with unique schema keys; natural: use schema keys as physical primary keys and restrict later re-keying. Locks once the physical model ships; decide before publication. See enricher://docs/database-sync.'}, 'target_host': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target Host', 'default': None, 'description': "Sync host (id or name) that should provision and sync this registration automatically (managed ee-database mode). Omitted: auto-assigned when exactly one eligible host is connected; otherwise the response's connected_hosts lists the candidates â\x80\x94 relay the choice to the user and call assign_sync_host, or fall back to get_database_setup_instructions for browser-confirmed manual pairing."}, 'key_language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Key Language', 'default': None, 'description': 'Language of multilingual identity tokens (ISO 639-1), shared by all schemas of this database. Usually defaults to schema language when needed; publication may request it after classification. Locked once chosen for the database.'}, 'purge_on_ack': {'type': 'boolean', 'title': 'Purge On Ack', 'default': False, 'description': 'Delete delivered delta copies once acknowledged.'}, 'index_scalars': {'type': 'string', 'title': 'Index Scalars', 'default': 'filterable', 'description': 'none: identity/feed indexes; keys: add natural keys and relation access paths; filterable (default): add dates, search intent, spatial/range roles and entity query indexes; all: every scalar. Later changes queue index migrations.'}, 'notify_debounce_s': {'type': 'integer', 'title': 'Notify Debounce S', 'default': 5, 'maximum': 600, 'minimum': 0, 'description': 'Quiet period (seconds) before a delta-available notification fires: each new delta resets the timer, so a burst is announced once. Default 5 for MCP callers (agent workflows expect near-immediate reaction); the web app defaults to 30 to coalesce human-scale editing bursts.'}, 'propagate_not_null': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Propagate Not Null', 'default': None, 'description': 'Mirror required schema fields as SQL NOT NULL. Omitted: on for strict gap policies, off for accept_partial. True with accept_partial is refused. Later tightening requires validating existing replica rows; violations can quarantine the migration.'}, 'purge_entity_state': {'type': 'boolean', 'title': 'Purge Entity State', 'default': False, 'description': 'Delete fully delivered entity state after every linked database acknowledges it. Transfers custody to replicas, makes server snapshots incomplete and limits duplicate checks. Relay custody_warning and obtain agreement before enabling. Default false.'}, 'purge_on_ack_delay_days': {'anyOf': [{'type': 'integer', 'maximum': 365, 'minimum': 1}, {'type': 'null'}], 'title': 'Purge On Ack Delay Days', 'default': None, 'description': "Grace period for purge_on_ack: keep acknowledged delta copies this many days (from acknowledgement) before the hourly purge deletes them. Omit to delete them at acknowledgement. Bounded by the plan's delta retention ceiling."}, 'pattern_index_localized_keys': {'type': 'boolean', 'title': 'Pattern Index Localized Keys', 'default': False, 'description': 'Add per-language pattern-match indexes on indexed localized keys/labels (default false). Useful for prefix autocomplete; increases write/index cost. Concrete SQL depends on the selected dialect.'}, 'purge_entity_state_delay_days': {'anyOf': [{'type': 'integer', 'maximum': 365, 'minimum': 1}, {'type': 'null'}], 'title': 'Purge Entity State Delay Days', 'default': None, 'description': 'Grace period for purge_entity_state: a fully-delivered entity row is kept until it has gone this many days without an update, then the hourly purge deletes it. Omit to delete it as soon as every database of the schema acknowledged it.'}}}
Esquema de salida
{'type': 'object', 'title': 'create_database_syncDictOutput', 'additionalProperties': True}
create_schema_from_sample
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 one language. Generation combines their fields and annotates relationships; it does not redesign the approved structure. Resolve consequential modeling choices and whether to generate semantic IDs before calling; semantic IDs need an organization embedding model and add cost. Requires editor; synchronous and billed. Review returned suggestions before applying edits with property tools. Sample review and canonicalizations: enricher://docs/schema-from-sample; schema format: enricher://docs/schema-reference.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'create_schema_from_sampleArguments', 'properties': {'model': {'type': 'string', 'title': 'Model', 'default': 'auto', 'description': 'Model composite key, or auto (default) for the organization task selection. Explicit keys are discovered through list_models.'}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Language', 'default': None, 'description': 'Language of schema type names/descriptions and annotations; defaults to the sample-key language. Sample property names are not translated. Separate from enrichment output languages.'}, 'samples_csv': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Samples Csv', 'default': None, 'description': "Samples as CSV text instead of entity_samples (never both): the first row is ALWAYS the header, each data row one sample. Delimiter ',', ';' or tab; headers become identifier keys ('Author Name' -> author_name); each column gets one type (integer, number, boolean or text; empty cell = null; decimal commas read in ';'/tab text). Over 20 rows, 20 are kept, covering every column. Read the result's csv_import and relay the kept rows and renamed headers."}, 'attachment_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Attachment Ids', 'default': None, 'description': 'UUIDs used as source context and persisted for regeneration. With sample_record_id, omit to inherit its linked attachments; pass [] to deliberately use none, or a non-empty list to override.'}, 'entity_samples': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'maxItems': 20}, {'type': 'null'}], 'title': 'Entity Samples', 'default': None, 'description': '1..20 reviewed instances of one entity type. Required without sample_record_id. Explicit samples override stored JSON while keeping attachment inheritance. Fields are unioned; missing/null observations become nullable. Use consistent names across samples and array items. Single-language data only; set multilingual flags after generation with update_schema_property.'}, 'timeout_seconds': {'type': 'integer', 'title': 'Timeout Seconds', 'default': 300, 'maximum': 900, 'minimum': 10, 'description': 'Wall-clock cap; returns a timeout error past this.'}, 'sample_record_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sample Record Id', 'default': None, 'description': 'UUID of a successful sample_generation record. Its stored sample(s) are used when entity_samples is omitted, and its linked attachments are inherited when attachment_ids is omitted.'}, 'generate_semantic_ids': {'type': 'boolean', 'title': 'Generate Semantic Ids', 'default': False, 'description': 'Add semantic IDs to eligible keyed objects. Requires an organization embedding model and adds resolution cost. Recommend for reusable identities without stable machine keys; obtain agreement before enabling unless already authorized. Defaults false. Modeling guidance: enricher://docs/schema-from-sample.'}}}
Esquema de salida
{'type': 'object', 'title': 'create_schema_from_sampleDictOutput', 'additionalProperties': True}
delete_attachment
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 deleted ID and filename.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', 'title': 'delete_attachmentArguments', 'required': ['attachment_id'], 'properties': {'attachment_id': {'type': 'string', 'title': 'Attachment Id', 'description': 'UUID of the attachment to delete.'}}}
Esquema de salida
{'type': 'object', 'title': 'delete_attachmentDictOutput', 'additionalProperties': True}
delete_benchmark_scenario
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.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', 'title': 'delete_benchmark_scenarioArguments', 'required': ['scenario_id'], 'properties': {'scenario_id': {'type': 'string', 'title': 'Scenario Id', 'description': 'UUID of the scenario to delete.'}}}
Esquema de salida
{'type': 'object', 'title': 'delete_benchmark_scenarioDictOutput', 'additionalProperties': True}
delete_database_sync
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/model settings from schemas left with no registration. Obtain approval for those irreversible teardown options. See enricher://docs/database-sync.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'delete_database_syncArguments', 'required': ['database_id'], 'properties': {'database_id': {'type': 'string', 'title': 'Database Id', 'description': 'Database sync UUID (from list_database_syncs).'}, 'delete_entity_state': {'type': 'boolean', 'title': 'Delete Entity State', 'default': False, 'description': 'Also hard-delete the stored entity state of the schemas left with no database (nothing writes to it anymore). Enrichment records are untouched. Irreversible.'}, 'clear_database_model': {'type': 'boolean', 'title': 'Clear Database Model', 'default': False, 'description': 'Also clear the database model those schemas carry (database_key, db_type, index, unique_group, shared, ordered, db_name/db_name_absolute, the classification ledger and the key-language lock), returning them to plain enrichment schemas. Implies delete_entity_state. Irreversible â\x80\x94 a later re-link re-classifies from scratch.'}}}
Esquema de salida
{'type': 'object', 'title': 'delete_database_syncDictOutput', 'additionalProperties': True}
delete_schema
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.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', 'title': 'delete_schemaArguments', 'required': ['schema_id'], 'properties': {'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the schema to delete.'}}}
Esquema de salida
{'type': 'object', 'title': 'delete_schemaDictOutput', 'additionalProperties': True}
delete_semantic_concepts
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; future resolution may mint new IDs. An unused-only deletion still removes that vocabulary. No LLM call. Returns impact counts or deletion results. See enricher://docs/semantic-ids.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'delete_semantic_conceptsArguments', 'properties': {'ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Ids', 'default': None, 'description': 'Explicit concept semantic_ids to delete.'}, 'impact_only': {'type': 'boolean', 'title': 'Impact Only', 'default': True, 'description': 'True = report the blast radius only; False = delete.'}, 'unused_only': {'type': 'boolean', 'title': 'Unused Only', 'default': False, 'description': 'Only concepts no record references (usage 0).'}, 'concept_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Concept Types', 'default': None, 'description': 'Scope to these concept types; without ids and unused_only this clears the whole types (owner role).'}}}
Esquema de salida
{'type': 'object', 'title': 'delete_semantic_conceptsDictOutput', 'additionalProperties': True}
enrich_entity
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 billed. Two or more models fuse only when all succeed: check failed_models before reporting success. A failed leg prevents automatic fusion and database admission. classification_warning returns success=false, error_code and classification; bypass only after user confirmation. Database sync defaults on: report database.status and database_warning, including partial writes or overwrites; admission is not proof of replica delivery. Recovery and fusion: enricher://docs/enrichment-and-fusion. This tool does not expose web-search activation.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'enrich_entityArguments', 'required': ['entity_data'], 'properties': {'models': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Models', 'default': None, 'description': "Model composite keys. Omit or pass ['auto'] for one automatically selected model; auto alone never fuses. Use list_models for explicit choices and model-count limits."}, 'strategy': {'type': 'string', 'title': 'Strategy', 'default': 'auto', 'description': 'auto (default â\x80\x94 server picks from the schema) | single_pass (simple schemas, 1 LLM call) | expert_domains (medium schemas with clear domains) | multi_expertise (large multi-domain schemas, parallel per-expertise calls â\x80\x94 best quality, higher cost)'}, 'languages': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Languages', 'default': None, 'description': "ISO 639-1 codes; defaults to ['en'] server-side. The first language is the primary one used for all non-multilingual string fields; multilingual fields get one value per language."}, 'schema_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Schema Id', 'default': None, 'description': 'UUID of a saved schema. Mutually exclusive with target_schema.'}, 'entity_data': {'type': 'object', 'title': 'Entity Data', 'description': 'Entity identifiers and supplied values. Read get_schema.input_contract first: preserve paths and keys for supplied array items are required. Identifying field names are guidance; arbitrary names are accepted.', 'additionalProperties': True}, 'database_sync': {'type': 'boolean', 'title': 'Database Sync', 'default': True, 'description': "Whether this run feeds the schema's entity layer and linked databases. Leave true for normal enrichments. Set false for the one-model recovery leg of a failed fusion run (see the recovery ladder above): the merge_records call that follows is what should write, so the intermediate single-model write is skipped. The record itself is still saved either way."}, 'target_schema': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Target Schema', 'default': None, 'description': 'Inline JSON Schema document in the supported Entity Enricher dialect; prefer schema_id. Format: enricher://docs/schema-reference.'}, 'attachment_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Attachment Ids', 'default': None, 'description': 'UUIDs of attachments (from upload_attachment) to provide as source material for this enrichment.'}, 'timeout_seconds': {'type': 'integer', 'title': 'Timeout Seconds', 'default': 300, 'maximum': 900, 'minimum': 10, 'description': 'Wall-clock cap. Past it the call returns `enrichment_timeout` with the job_id and the job is cancelled â\x80\x94 a leg still in flight may finish and persist a partial record, reachable via list_records(job_id=...) and recoverable with retry_expertises. Multi-model fusion runs and reasoning models routinely need more than the default; raise it or use start_batch_enrichment (async).'}, 'arbitration_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Arbitration Model', 'default': None, 'description': 'Optional LLM model key used to resolve fusion conflicts when 2+ models are selected. Without this, conflicts are resolved by deterministic voting.'}, 'classification_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Classification Model', 'default': None, 'description': 'Optional pre-flight classifier model key. When set, the entity is type-checked before enrichment to catch mismatches.'}, 'force_after_classification_warning': {'type': 'boolean', 'title': 'Force After Classification Warning', 'default': False, 'description': 'Set to true to bypass a previous classification warning. Use only after explicit user confirmation.'}}}
Esquema de salida
{'type': 'object', 'title': 'enrich_entityDictOutput', 'additionalProperties': True}
fetch_database_deltas
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 page_limit. snapshot_required pauses delivery until the replica reapplies its snapshot. No LLM call. Leasing, cursors, quarantine and snapshot handling: enricher://docs/database-sync.
Esquema de entrada
{'type': 'object', 'title': 'fetch_database_deltasArguments', 'required': ['database_id'], 'properties': {'claim': {'type': 'boolean', 'title': 'Claim', 'default': False, 'description': 'Lease the window (requires ack).'}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 50, 'maximum': 500, 'minimum': 1}, 'since': {'type': 'integer', 'title': 'Since', 'default': 0, 'minimum': 0, 'description': 'Cursor: return deltas with id > since.'}, 'database_id': {'type': 'string', 'title': 'Database Id', 'description': 'Database sync UUID (from list_database_syncs).'}}}
Esquema de salida
{'type': 'object', 'title': 'fetch_database_deltasDictOutput', 'additionalProperties': True}
generate_sample
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 from request. Attachments force one sample. Requires editor; generation is billed. Returns a job_id and may already be paused or complete: relay pause questions through answer_job_question, otherwise poll get_job_status. Review returned samples and warnings before create_schema_from_sample; do not silently change facts or structure. For relationship modeling, multiple documents or hybrid extraction plus research, read enricher://docs/schema-from-sample and enricher://docs/documents.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'generate_sampleArguments', 'properties': {'model': {'type': 'string', 'title': 'Model', 'default': 'auto', 'description': 'Auto (default) chooses the organization task model with attachment/search capabilities. Explicit provider::model bypasses this capability matching; provider combinations or quota may still fail.'}, 'request': {'type': 'string', 'title': 'Request', 'default': '', 'maxLength': 4000, 'description': 'Entity type, desired fields, scope and size/depth budget. Required without attachments; optional source-mode instructions otherwise. Put the number of instances in sample_count, not in this text.'}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Language', 'default': None, 'description': "Output language code for the generated field names AND values (e.g. 'en', 'fr'); an explicit code applies even when attachments are in another language. Omitted (default) â\x86\x92 the generator follows the language the request is written in (its text and any typical object), else the attachment's, else English."}, 'auto_answer': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Auto Answer', 'default': None, 'description': 'Omit or false to pause for clarification; true authorizes standard interpretations and planner defaults without asking, in either mode.'}, 'sample_count': {'type': 'integer', 'title': 'Sample Count', 'default': 1, 'maximum': 20, 'minimum': 1, 'description': 'Number of same-type instances (1..20), default 1. Consider 3 varied instances when designing a schema. Attachments force 1. Inspect samples_note for under-delivery or the cap.'}, 'wait_seconds': {'type': 'integer', 'title': 'Wait Seconds', 'default': 120, 'maximum': 600, 'minimum': 0, 'description': 'How long to wait for the first pause or completion before returning (0 = return the job_id immediately).'}, 'attachment_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Attachment Ids', 'default': None, 'description': 'UUIDs from upload_attachment. Providing any attachment switches the call into source mode: transcribe the document or describe visible photo attributes only, with an interactive planner.'}, 'typical_objects': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20}, {'type': 'null'}], 'title': 'Typical Objects', 'default': None, 'description': "Up to sample_count concrete instances to anchor knowledge mode (e.g. ['Sanofi', 'Pfizer']), one per generated sample in order â\x80\x94 slots beyond len(typical_objects) are named by the model's own instance roster. In source mode the attachment remains authoritative and this is ignored."}, 'enable_web_search': {'type': 'boolean', 'title': 'Enable Web Search', 'default': False, 'description': 'Use builtin search in knowledge mode (default false). Source mode remains source-only. With an explicit unsupported model this option is ignored. Hybrid tasks: enricher://docs/documents.'}, 'naming_convention': {'type': 'string', 'title': 'Naming Convention', 'default': 'auto', 'description': 'auto | snake_case | camelCase'}}}
Esquema de salida
{'type': 'object', 'title': 'generate_sampleDictOutput', 'additionalProperties': True}
get_benchmark_scenario
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. Read after run_benchmark completes.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_benchmark_scenarioArguments', 'required': ['scenario_id'], 'properties': {'scenario_id': {'type': 'string', 'title': 'Scenario Id', 'description': 'UUID of the scenario.'}, 'include_reference': {'type': 'boolean', 'title': 'Include Reference', 'default': False, 'description': 'Include reference_output + entity_data (can be large).'}}}
Esquema de salida
{'type': 'object', 'title': 'get_benchmark_scenarioDictOutput', 'additionalProperties': True}
get_benchmark_scenario_results
Get ranked 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 last in either direction. See enricher://docs/model-benchmark for interpretation.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_benchmark_scenario_resultsArguments', 'required': ['scenario_id'], 'properties': {'limit': {'anyOf': [{'type': 'integer', 'maximum': 200, 'minimum': 1}, {'type': 'null'}], 'title': 'Limit', 'default': None, 'description': 'Keep only the top N after sorting (None = all).'}, 'status': {'anyOf': [{'type': 'array', 'items': {'enum': ['success', 'failed', 'stale', 'stale_score', 'unscored'], 'type': 'string'}}, {'type': 'null'}], 'title': 'Status', 'default': None, 'description': 'Keep results carrying ANY of these tags: success | failed | stale (config_hash changed since this run, re-run it) | stale_score (reference/scoring config changed since scored, rescore it) | unscored (ran fine, never scored). Empty/None = every status.'}, 'sort_by': {'enum': ['overall', 'quality', 'cost', 'speed', 'last_run'], 'type': 'string', 'title': 'Sort By', 'default': 'overall', 'description': 'Metric to sort by.'}, 'providers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Providers', 'default': None, 'description': 'Keep only these provider names (empty/None = every provider).'}, 'model_keys': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Model Keys', 'default': None, 'description': 'Keep only these model composite keys (empty/None = every model).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'title': 'Sort Order', 'default': 'desc', 'description': 'Sort direction.'}, 'scenario_id': {'type': 'string', 'title': 'Scenario Id', 'description': 'UUID of the scenario.'}}}
Esquema de salida
{'type': 'object', 'title': 'get_benchmark_scenario_resultsDictOutput', 'additionalProperties': True}
get_database_setup_instructions
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 user chooses the database and confirms, and the credential travels directly to the polling CLI. Its DSN stays on that host. Use manual pairing only when managed host provisioning is not already handling the registration. Setup: enricher://docs/database-sync.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_database_setup_instructionsArguments', 'required': ['database_id'], 'properties': {'database_id': {'type': 'string', 'title': 'Database Id', 'description': 'Database sync UUID (from list_database_syncs).'}}}
Esquema de salida
{'type': 'object', 'title': 'get_database_setup_instructionsDictOutput', 'additionalProperties': True}
get_enum_candidates
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 values; a closed one constrains output to its members. Named enums can be read with get_schema_part and changed through update_schema. See enricher://docs/schema-reference.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_enum_candidatesArguments', 'required': ['schema_id'], 'properties': {'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}}}
Esquema de salida
{'type': 'object', 'title': 'get_enum_candidatesDictOutput', 'additionalProperties': True}
get_job_status
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. include_result=true returns full terminal details; batch summaries count entities and database outcomes. A failed job is not usable output; inspect individual records for partial recovery. Unknown IDs may be invalid, expired or lost after restart: look for persisted outputs with list_records(job_id=...), without assuming success. events_after=<seq> adds the job's event log past that cursor (per-model completions, scoring progress, pauses) — the poll equivalent of the SSE stream; pass the returned last_seq next time. No LLM call. Polling, failure and recovery guidance: enricher://docs/enrichment-and-fusion.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_job_statusArguments', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'title': 'Job Id', 'description': 'Job ID returned by a start tool.'}, 'events_after': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Events After', 'default': None, 'description': "Event-log cursor: 0 returns the job's events from the start, a previous call's last_seq returns only the newer ones (at most 100 per call; events_has_more says when to call again). Omit to skip the log."}, 'include_result': {'type': 'boolean', 'title': 'Include Result', 'default': False, 'description': 'Include the full terminal result payload (can be large). Default returns a compact scalar summary per model.'}}}
Esquema de salida
{'type': 'object', 'title': 'get_job_statusDictOutput', 'additionalProperties': True}
get_record
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 and arbitration method. database_sync, when present, reports admission and per-replica delivery state. Returns record_url and the related schema link. No LLM call. Interpretation and recovery: enricher://docs/enrichment-and-fusion.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_recordArguments', 'required': ['record_id'], 'properties': {'record_id': {'type': 'string', 'title': 'Record Id', 'description': 'UUID of the record.'}}}
Esquema de salida
{'type': 'object', 'title': 'get_recordDictOutput', 'additionalProperties': True}
get_schema
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 must carry its array_item_keys. Never invent caller-owned values. The response includes version, publish_state and schema_url. A requested published contract that does not exist returns not_found. For a small edit prefer get_schema_part. No LLM call. Contract details: enricher://docs/schema-reference.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_schemaArguments', 'required': ['schema_id'], 'properties': {'version': {'type': 'string', 'title': 'Version', 'default': 'working', 'description': "'working' (default) â\x80\x94 the editable copy updates/edits apply to; 'published' â\x80\x94 the contract enrichment and database sync use (only meaningful for schemas linked to a database sync)."}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}}}
Esquema de salida
{'type': 'object', 'title': 'get_schemaDictOutput', 'additionalProperties': True}
get_schema_part
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 definition usage, identity participation, database flags and whether entity state or linked databases exist. Editing a $defs property affects every usage site. Reads the working copy; no LLM call. Path examples: enricher://docs/schema-reference.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_schema_partArguments', 'required': ['schema_id'], 'properties': {'path': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Path', 'default': None, 'description': "Omit for the index; else a property/object path or '$defs.X'/'$enums.X'."}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}}}
Esquema de salida
{'type': 'object', 'title': 'get_schema_partDictOutput', 'additionalProperties': True}
get_semantic_concept
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 proposed merge. No LLM call. Never compare similarities across embedding spaces or concept types. See enricher://docs/semantic-ids.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_semantic_conceptArguments', 'required': ['concept_id'], 'properties': {'concept_id': {'type': 'string', 'title': 'Concept Id', 'description': "The concept's semantic_id (UUID)."}, 'neighbors_limit': {'type': 'integer', 'title': 'Neighbors Limit', 'default': 50, 'maximum': 200, 'minimum': 0}}}
Esquema de salida
{'type': 'object', 'title': 'get_semantic_conceptDictOutput', 'additionalProperties': True}
get_stats
Get statistics
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.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'get_statsArguments', 'properties': {}}
Esquema de salida
{'type': 'object', 'title': 'get_statsDictOutput', 'additionalProperties': True}
import_semantic_concepts
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 authorizing creation. A new type may be initialized with embedding_model; existing types cannot switch spaces through import. Returns per-text outcomes. See enricher://docs/semantic-ids.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'import_semantic_conceptsArguments', 'required': ['texts', 'concept_type'], 'properties': {'mint': {'type': 'boolean', 'title': 'Mint', 'default': False, 'description': 'False = report only; True = create the unmatched rows (owner role).'}, 'texts': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Texts', 'description': 'Identity texts to resolve (1..1000).'}, 'judge_floor': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Judge Floor', 'default': None, 'description': 'Similarity at or above which a candidate is put to the identity judge. Omit to use the organization default (Settings â\x86\x92 Organization).'}, 'concept_type': {'type': 'string', 'title': 'Concept Type', 'description': 'Concept type (slice) to resolve against.'}, 'embedding_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Embedding Model', 'default': None, 'description': "Composite key (provider::model) seeding a NEW concept type's slice â\x80\x94 an import may open the type it resolves into. Refused when that type's vocabulary already lives in another model."}}}
Esquema de salida
{'type': 'object', 'title': 'import_semantic_conceptsDictOutput', 'additionalProperties': True}
list_benchmark_scenarios
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.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'list_benchmark_scenariosArguments', 'properties': {}}
Esquema de salida
{'type': 'object', 'title': 'list_benchmark_scenariosDictOutput', 'additionalProperties': True}
list_database_syncs
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_states for server-side rows and get_record for per-record delivery state. PostgreSQL, MySQL and SQLite delivery is performed by the user's sync client. See enricher://docs/database-sync.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'list_database_syncsArguments', 'required': ['schema_id'], 'properties': {'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'Saved schema UUID.'}}}
Esquema de salida
{'type': 'object', 'title': 'list_database_syncsDictOutput', 'additionalProperties': True}
list_entity_states
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 not prove the external replica has applied its deltas. Use get_record and list_database_syncs for delivery and rejection diagnostics. See enricher://docs/database-sync.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'list_entity_statesArguments', 'required': ['schema_id'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'maximum': 200, 'minimum': 1}, 'offset': {'type': 'integer', 'title': 'Offset', 'default': 0, 'minimum': 0}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'Saved schema UUID.'}, 'entity_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Entity Type', 'default': None, 'description': 'Filter to one entity type (the response lists the types present).'}, 'include_payload': {'type': 'boolean', 'title': 'Include Payload', 'default': True, 'description': "Include each entity's current merged payload. Set false for a compact identity-only listing (keys, revision, last_record_id)."}}}
Esquema de salida
{'type': 'object', 'title': 'list_entity_statesDictOutput', 'additionalProperties': True}
list_models
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 attachment capabilities. is_available means a usable provider key exists, not that provider quota or every combination of tools and media will work. Missing capability flags mean unsupported on this discovery surface. default_models_web_search is a search-only preview, not attachment-specific. No LLM call. Model selection and costs: enricher://docs/enrichment-and-fusion.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'list_modelsArguments', 'properties': {}}
Esquema de salida
{'type': 'object', 'title': 'list_modelsDictOutput', 'additionalProperties': True}
list_records
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 for full output and failures; use list_entity_states for current merged entity state instead of run history. No LLM call. Fetch every page when a job produces more than one page of records.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'list_recordsArguments', 'properties': {'page': {'type': 'integer', 'title': 'Page', 'default': 1, 'minimum': 1}, 'model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Model', 'default': None, 'description': "Filter by model composite key (e.g. 'anthropic::claude-sonnet-4-6')."}, 'job_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Job Id', 'default': None, 'description': 'Filter to a single job (every model + expertise in one batch shares one job_id).'}, 'search': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Search', 'default': None, 'description': "Substring match against the entity's `name` field in the output."}, 'success': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Success', 'default': None, 'description': 'True = only successful records; False = only failed.'}, 'page_size': {'type': 'integer', 'title': 'Page Size', 'default': 20, 'maximum': 100, 'minimum': 1}, 'record_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Record Type', 'default': None, 'description': 'Filter by type: enrichment | classification | arbitration | sample_generation | schema_generation | schema_edit | schema_annotation | ambiguity_analysis | db_classification | benchmark_scoring | playground'}}}
Esquema de salida
{'type': 'object', 'title': 'list_recordsDictOutput', 'additionalProperties': True}
list_schemas
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 working copy may contain unpublished changes.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'list_schemasArguments', 'properties': {}}
Esquema de salida
{'type': 'object', 'title': 'list_schemasDictOutput', 'additionalProperties': True}
list_semantic_concepts
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/embedding_model slice. No LLM call. Vocabulary review and curation: enricher://docs/semantic-ids.
Solo lectura
Esquema de entrada
{'type': 'object', 'title': 'list_semantic_conceptsArguments', 'properties': {'view': {'enum': ['concepts', 'review'], 'type': 'string', 'title': 'View', 'default': 'concepts', 'description': "'concepts' = filtered concept page; 'review' = pairs the identity judge left for a person: escalated (unsure), found duplicated while answering another question, or separated at a similarity high enough to double-check."}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 50, 'maximum': 200, 'minimum': 1}, 'offset': {'type': 'integer', 'title': 'Offset', 'default': 0, 'minimum': 0}, 'search': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Search', 'default': None, 'description': 'Substring match against concept texts.'}, 'sort_by': {'type': 'string', 'title': 'Sort By', 'default': 'ref_count', 'description': 'ref_count | text | concept_type | created_at'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'title': 'Sort Order', 'default': 'desc'}, 'concept_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Concept Types', 'default': None, 'description': 'Restrict to these concept types (empty/None = every type).'}, 'min_ref_count': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Min Ref Count', 'default': None, 'description': 'Only concepts used by at least this many records.'}}}
Esquema de salida
{'type': 'object', 'title': 'list_semantic_conceptsDictOutput', 'additionalProperties': True}
merge_records
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 overwrite current entity values. Inspect database warnings and the actual fusion method; an arbiter failure can fall back to rules. Use this after separately recovered model runs, not to merge different entities. See enricher://docs/enrichment-and-fusion.
Destructivo Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'merge_recordsArguments', 'required': ['result_ids'], 'properties': {'result_ids': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Result Ids', 'minItems': 2, 'description': 'UUIDs of the enrichment records to merge (minimum 2).'}, 'attachment_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Attachment Ids', 'default': None, 'description': 'Attachments passed to the arbitration LLM (ignored for rule-based merges).'}, 'arbitration_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Arbitration Model', 'default': None, 'description': 'Model composite key for LLM arbitration (None = rule-based).'}}}
Esquema de salida
{'type': 'object', 'title': 'merge_recordsDictOutput', 'additionalProperties': True}
merge_semantic_concepts
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. Similarity alone does not establish identity; inspect get_semantic_concept and the judge review evidence first. Returns impact or merge results. See enricher://docs/semantic-ids.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'merge_semantic_conceptsArguments', 'required': ['winner_id', 'loser_id'], 'properties': {'loser_id': {'type': 'string', 'title': 'Loser Id', 'description': 'semantic_id of the concept folded into the winner.'}, 'winner_id': {'type': 'string', 'title': 'Winner Id', 'description': 'semantic_id of the concept that survives.'}, 'impact_only': {'type': 'boolean', 'title': 'Impact Only', 'default': True, 'description': "True = report the merge's blast radius only; False = merge (owner role)."}}}
Esquema de salida
{'type': 'object', 'title': 'merge_semantic_conceptsDictOutput', 'additionalProperties': True}
migrate_semantic_embeddings
Migrate semantic embedding model
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_types scope the move. Starting launches billed background re-embedding while enrichment continues, then switches the selected slices after coverage is complete. Cancel marks the transition cancelled; it does not guarantee interruption or rollback of in-flight work. Returns migration status or preview. See enricher://docs/semantic-ids.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'migrate_semantic_embeddingsArguments', 'required': ['action'], 'properties': {'action': {'enum': ['status', 'preview', 'start', 'cancel'], 'type': 'string', 'title': 'Action', 'description': 'status | preview | start | cancel'}, 'source_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Model', 'default': None, 'description': "Embedding space to move; omitted = the org's current default."}, 'target_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Target Model', 'default': None, 'description': 'Composite key (provider::model) to move to. Required for preview/start.'}, 'concept_types': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Concept Types', 'default': None, 'description': 'Restrict the move to these concept types; empty = the whole space.'}}}
Esquema de salida
{'type': 'object', 'title': 'migrate_semantic_embeddingsDictOutput', 'additionalProperties': True}
move_schema_property
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 closure (identity_rebound reports it); the move is refused when it would take the key out of that closure or leave a semantic ID with no identity material, and on collisions or recursive containment. Read source and destination with get_schema_part first. Structural changes on database-linked schemas require publish_schema. Paths and migration guidance: enricher://docs/schema-reference.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'move_schema_propertyArguments', 'required': ['schema_id', 'path'], 'properties': {'path': {'type': 'string', 'title': 'Path', 'description': "Property path, e.g. 'ceremonies[].ceremony_type'."}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}, 'new_parent_path': {'type': 'string', 'title': 'New Parent Path', 'default': '', 'description': "'' = root, or an object path / '$defs.X'."}}}
Esquema de salida
{'type': 'object', 'title': 'move_schema_propertyDictOutput', 'additionalProperties': True}
nest_schema_region
Materialize entity 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 moved names shed the region's tokens (product_name → name) unless strip_prefix=false. Compact scalar occurrences (e.g. manufacturer_name or each therapeutic_classes[] item) are all converted to references to one shared $defs entity; host_path and strip_prefix do not apply to that form. host_path is '' for the root, an object path, 'path[]' for an array's items, or '$defs.X'. Defaults to dry_run=true: inspect the returned schema_content and notes, then persist with dry_run=false only after approval of the change. Requires editor; no LLM call. Database-linked structural edits still require publish_schema. Modeling consequences: enricher://docs/schema-reference.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'nest_schema_regionArguments', 'required': ['schema_id', 'region_id'], 'properties': {'dry_run': {'type': 'boolean', 'title': 'Dry Run', 'default': True, 'description': 'Report the rewrite without persisting it (the default).'}, 'host_path': {'type': 'string', 'title': 'Host Path', 'default': '', 'description': "Container holding the flat members ('' = root, object path, 'path[]', '$defs.X')."}, 'region_id': {'type': 'string', 'title': 'Region Id', 'description': 'Entity region id from x-entityMap.regions (get_schema).'}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}, 'strip_prefix': {'type': 'boolean', 'title': 'Strip Prefix', 'default': True, 'description': "Drop the region's name tokens from the moved field names."}}}
Esquema de salida
{'type': 'object', 'title': 'nest_schema_regionDictOutput', 'additionalProperties': True}
probe_semantic_concept
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 intended entity. embedding_model can select the space for a new concept type, not change an existing type's space. Inspect judge evidence as well as similarity. See enricher://docs/semantic-ids.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'title': 'probe_semantic_conceptArguments', 'required': ['text', 'concept_type'], 'properties': {'text': {'type': 'string', 'title': 'Text', 'description': 'The identity text to resolve.'}, 'neighbors': {'type': 'integer', 'title': 'Neighbors', 'default': 10, 'maximum': 200, 'minimum': 1}, 'judge_floor': {'anyOf': [{'type': 'number', 'maximum': 1.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'Judge Floor', 'default': None, 'description': 'Similarity at or above which a candidate is put to the identity judge. Omit to use the organization default (Settings â\x86\x92 Organization).'}, 'concept_type': {'type': 'string', 'title': 'Concept Type', 'description': 'Concept type (slice) to resolve against.'}, 'embedding_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Embedding Model', 'default': None, 'description': 'Composite key (provider::model) to embed a NEW concept type under.'}}}
Esquema de salida
{'type': 'object', 'title': 'probe_semantic_conceptDictOutput', 'additionalProperties': True}
publish_schema
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-database migration_sql. Transform migrations require user-approved confirm_transforms=true; cross-schema conflicts remain blockers. key_language may be required if classification revealed a multilingual key. Returns publication state; queued migrations apply asynchronously on replicas. See enricher://docs/database-sync for the review and delivery workflow.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'publish_schemaArguments', 'required': ['schema_id'], 'properties': {'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the schema to publish.'}, 'key_language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Key Language', 'default': None, 'description': 'ISO 639-1 language for multilingual identity tokens. Normally adopted from the database lock. Supply when key_language_required requests a choice; review the suggested language with the user. Shared by all schemas of that database.'}, 'validate_only': {'type': 'boolean', 'title': 'Validate Only', 'default': False, 'description': 'Dry-run: return the diff + blockers without publishing.'}, 'confirm_transforms': {'type': 'boolean', 'title': 'Confirm Transforms', 'default': False, 'description': "Acknowledge a transform migration (re-key, type change, or a column/table rename) run against the replicas' own data. Required when the preview says requires_confirm â\x80\x94 ALWAYS show the transforms to the user and get their explicit approval before passing true."}}}
Esquema de salida
{'type': 'object', 'title': 'publish_schemaDictOutput', 'additionalProperties': True}
resolve_unify_proposal
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 sites separate. Defaults to dry_run=true: inspect the returned schema_content and notes, then persist with dry_run=false only after approval of the change. Requires editor; no LLM call. Database-linked structural edits still require publish_schema. Modeling consequences: enricher://docs/schema-reference.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'resolve_unify_proposalArguments', 'required': ['schema_id', 'proposal_id', 'action'], 'properties': {'action': {'type': 'string', 'title': 'Action', 'description': "'accept' or 'dismiss'."}, 'dry_run': {'type': 'boolean', 'title': 'Dry Run', 'default': True, 'description': 'Report the rewrite without persisting it (the default).'}, 'field_map': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Field Map', 'default': None, 'description': 'accept only: override of the loserâ\x86\x92winner field correspondence.'}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}, 'proposal_id': {'type': 'string', 'title': 'Proposal Id', 'description': 'Proposal id from x-entityMap.proposals (get_schema).'}}}
Esquema de salida
{'type': 'object', 'title': 'resolve_unify_proposalDictOutput', 'additionalProperties': True}
retry_expertises
Retry failed 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 entity_input_data and saved_schema_id; model optionally substitutes the failed model. Returns job_id: poll get_job_status, then re-read get_record. When the failed leg left no record, use a one-model enrich_entity with database_sync=false followed by merge_records instead. Recovery decisions: enricher://docs/enrichment-and-fusion.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'retry_expertisesArguments', 'required': ['record_id', 'entity_data'], 'properties': {'model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Model', 'default': None, 'description': "Model to retry with (provider::model from list_models). Defaults to the record's own model â\x80\x94 pass a stronger one when a domain fails repeatedly on it (retrying the same model that just failed usually fails again). Only the failed domains are re-run and re-billed; the record stays attributed to its original model."}, 'languages': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Languages', 'default': None, 'description': "ISO 639-1 codes; defaults to ['en']."}, 'record_id': {'type': 'string', 'title': 'Record Id', 'description': 'Enrichment record with failed expertises.'}, 'schema_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Schema Id', 'default': None, 'description': 'Saved schema UUID (get_record -> saved_schema_id). Or pass target_schema.'}, 'entity_data': {'type': 'object', 'title': 'Entity Data', 'description': "The record's original entity input (get_record -> entity_input_data).", 'additionalProperties': True}, 'target_schema': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Target Schema', 'default': None, 'description': 'Raw schema dict when no saved schema exists.'}}}
Esquema de salida
{'type': 'object', 'title': 'retry_expertisesDictOutput', 'additionalProperties': True}
revert_benchmark_reference_updates
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 made is only replaced by stronger evidence (samples, a wrong verdict, more agreeing models), never by one more model's better verdict; the log is reference_meta.auto_applied on get_benchmark_scenario, each entry with its inverse patch. Pass the revision ids to undo: the inverse is applied, the entry is marked reverted and its (path, attribute) is pinned so no later pass re-applies it (a manual set_benchmark_reference lifts every pin). Scores never go stale from this. Requires owner and a plan with benchmarks. No LLM call.
Idempotente
Esquema de entrada
{'type': 'object', 'title': 'revert_benchmark_reference_updatesArguments', 'required': ['scenario_id', 'revision_ids'], 'properties': {'scenario_id': {'type': 'string', 'title': 'Scenario Id', 'description': 'UUID of the scenario.'}, 'revision_ids': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Revision Ids', 'description': 'Ids of the reference_meta.auto_applied entries to undo (1..200).'}}}
Esquema de salida
{'type': 'object', 'title': 'revert_benchmark_reference_updatesDictOutput', 'additionalProperties': True}
run_benchmark
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 judging increase cost. Returns job_id and total_models: poll get_job_status, then read get_benchmark_scenario_results. Re-running replaces each selected model's previous result. An organization's benchmark runs and scoring passes execute one at a time: a launch while another is in flight is queued (queue_position, status 'pending'), and a launch on a scenario whose run is still queued folds its models into that run (merged=true, job_id names the queued run). Reference setup and score interpretation: enricher://docs/model-benchmark.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'run_benchmarkArguments', 'required': ['scenario_id'], 'properties': {'providers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Providers', 'default': None, 'description': "Provider names (e.g. ['anthropic', 'mistral']) â\x80\x94 runs every active model of those providers that has a valid key."}, 'model_keys': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Model Keys', 'default': None, 'description': 'Explicit model composite keys. Overrides `providers`.'}, 'scenario_id': {'type': 'string', 'title': 'Scenario Id', 'description': 'UUID of the scenario to run.'}}}
Esquema de salida
{'type': 'object', 'title': 'run_benchmarkDictOutput', 'additionalProperties': True}
save_schema
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 and makes colliding names unique. Entity definitions, enum vocabularies and localized fields have different projection rules. Unknown keywords are dropped, not rejected: read ignored_keywords (path, keyword, hint) and applied_repairs in the result — a property flag such as semantic_id placed on a $defs entity object lands there, with the level it is read at. Use create_schema_from_sample to derive a schema from data, or update_schema for an existing schema. A minimal valid example and supported annotations are in enricher://docs/schema-reference.
Esquema de entrada
{'type': 'object', 'title': 'save_schemaArguments', 'required': ['name', 'schema_content'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 255, 'minLength': 1}, 'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Tags', 'default': None, 'description': 'Optional tags.'}, 'is_pinned': {'type': 'boolean', 'title': 'Is Pinned', 'default': False, 'description': 'Pin it to the top of listings.'}, 'schema_content': {'type': 'object', 'title': 'Schema Content', 'description': 'Full schema document: title, type=object, properties and optional $defs/x-* sections. See enricher://docs/schema-reference for a minimal example.', 'additionalProperties': True}}}
Esquema de salida
{'type': 'object', 'title': 'save_schemaDictOutput', 'additionalProperties': True}
set_benchmark_reference
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. 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.
Esquema de entrada
{'type': 'object', 'title': 'set_benchmark_referenceArguments', 'required': ['scenario_id', 'reference_output'], 'properties': {'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source', 'default': None, 'description': "Provenance: generated | pasted | record (default 'pasted')."}, 'scenario_id': {'type': 'string', 'title': 'Scenario Id', 'description': 'UUID of the scenario.'}, 'reference_output': {'type': 'object', 'title': 'Reference Output', 'description': 'Expected entity JSON for enrichment, or a schema document for schema_generation. Sample-generation scenarios do not accept a reference.', 'additionalProperties': True}, 'source_record_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Record Id', 'default': None, 'description': "Record UUID the reference was copied from (when source='record')."}, 'reference_verified': {'type': 'boolean', 'title': 'Reference Verified', 'default': False, 'description': 'Explicit sign-off that the reference is correct (required to run).'}}}
Esquema de salida
{'type': 'object', 'title': 'set_benchmark_referenceDictOutput', 'additionalProperties': True}
start_batch_enrichment
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 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.
Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'start_batch_enrichmentArguments', 'required': ['entities'], 'properties': {'models': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Models', 'default': None, 'description': "Model composite keys (call list_models to discover them). Optional: omit (or pass ['auto']) to let the server pick the org's default model â\x80\x94 pinned per-task default if set, else the best blended benchmark score."}, 'entities': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Entities', 'minItems': 1, 'description': "Entities to enrich (each a free-form dict naming the entity â\x80\x94 the schema's identifying fields ideally, but any field names work)."}, 'strategy': {'type': 'string', 'title': 'Strategy', 'default': 'auto', 'description': 'auto (default) | single_pass | expert_domains | multi_expertise'}, 'languages': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Languages', 'default': None, 'description': "ISO 639-1 codes; defaults to ['en']."}, 'schema_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Schema Id', 'default': None, 'description': 'UUID of a saved schema. Mutually exclusive with target_schema.'}, 'target_schema': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Target Schema', 'default': None, 'description': 'Inline schema document in the supported Entity Enricher dialect. Prefer schema_id to link records. See enricher://docs/schema-reference.'}, 'attachment_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Attachment Ids', 'default': None, 'description': 'Attachment UUIDs applied as source material to every entity.'}, 'arbitration_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Arbitration Model', 'default': None, 'description': 'Optional LLM for auto-fusion conflict resolution (None = rule-based).'}, 'classification_model': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Classification Model', 'default': None, 'description': 'Optional classifier key. Confident mismatches skip that entity; softer verdicts become prompt context. Batch classification never pauses.'}}}
Esquema de salida
{'type': 'object', 'title': 'start_batch_enrichmentDictOutput', 'additionalProperties': True}
sync_records_to_database
Inject records into the database sync
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.
Destructivo Acceso externo
Esquema de entrada
{'type': 'object', 'title': 'sync_records_to_databaseArguments', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'Items', 'maxItems': 100, 'minItems': 1, 'description': 'Entities to inject. Each item: {record_id?, structured_output?, saved_schema_id?} â\x80\x94 at least one of record_id / structured_output, and saved_schema_id required when there is no record_id.'}}}
Esquema de salida
{'type': 'object', 'title': 'sync_records_to_databaseDictOutput', 'additionalProperties': True}
update_benchmark_scenario
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. Changed test definitions make previous results stale. Re-run affected models to refresh their scores. See enricher://docs/model-benchmark.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'update_benchmark_scenarioArguments', 'required': ['scenario_id'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None}, 'strategy': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Strategy', 'default': None}, 'languages': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Languages', 'default': None}, 'schema_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Schema Id', 'default': None, 'description': 'New saved-schema UUID.'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description', 'default': None, 'description': 'Free-text note shown in the Benchmarks tab; no model ever reads it.'}, 'entity_data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Entity Data', 'default': None, 'description': "Enrichment: replacement fixed entity input (same contract as enrich_entity's entity_data; refused when it carries no value)."}, 'repetitions': {'anyOf': [{'type': 'integer', 'maximum': 3, 'minimum': 1}, {'type': 'null'}], 'title': 'Repetitions', 'default': None}, 'scenario_id': {'type': 'string', 'title': 'Scenario Id', 'description': 'UUID of the scenario.'}, 'sample_params': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Sample Params', 'default': None, 'description': 'sample_generation: full replacement task params object {request, typical_object, naming_convention, language, enable_web_search}.'}, 'entity_samples': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Entity Samples', 'default': None, 'description': 'schema_generation: replacement input samples (1..20, whole list).'}, 'scoring_source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Scoring Source', 'default': None, 'description': "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 using it."}, 'schema_gen_params': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Schema Gen Params', 'default': None, 'description': 'schema_generation: full replacement task params object {generate_semantic_ids}.'}, 'scoring_judge_model_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Scoring Judge Model Key', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'update_benchmark_scenarioDictOutput', 'additionalProperties': True}
update_concept_alias
Update concept surface form
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.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'update_concept_aliasArguments', 'required': ['concept_id', 'alias_id', 'action'], 'properties': {'action': {'enum': ['remove', 'set_canonical'], 'type': 'string', 'title': 'Action', 'description': "'remove' prunes the surface form; 'set_canonical' promotes it."}, 'alias_id': {'type': 'string', 'title': 'Alias Id', 'description': "The surface-form row's own id (UUID)."}, 'concept_id': {'type': 'string', 'title': 'Concept Id', 'description': "The concept's semantic_id (UUID)."}}}
Esquema de salida
{'type': 'object', 'title': 'update_concept_aliasDictOutput', 'additionalProperties': True}
update_schema
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, 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.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'update_schemaArguments', 'required': ['schema_id'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name', 'default': None, 'description': 'New name (must be unique).'}, 'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Tags', 'default': None, 'description': 'Replacement tag list.'}, 'is_pinned': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Is Pinned', 'default': None, 'description': 'Pin or unpin.'}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the schema to update.'}, 'key_language': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Key Language', 'default': None, 'description': '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.'}, 'schema_content': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Schema Content', 'default': None, 'description': 'Full replacement schema document, following get_schema.schema_content. See enricher://docs/schema-reference.'}, 'ambiguity_check_enabled': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Ambiguity Check Enabled', 'default': None, 'description': 'Enable/disable the ambiguity check for this schema â\x80\x94 the pass that flags properties whose name admits more than one meaning (gates analyze_schema and the generation post-pass).'}}}
Esquema de salida
{'type': 'object', 'title': 'update_schemaDictOutput', 'additionalProperties': True}
update_schema_property
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. 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.
Destructivo
Esquema de entrada
{'type': 'object', 'title': 'update_schema_propertyArguments', 'required': ['schema_id', 'path'], 'properties': {'ref': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Ref', 'default': None, 'description': "'#/$defs/X' or '#/$enums/X'; clears type."}, 'path': {'type': 'string', 'title': 'Path', 'description': "Property path, e.g. 'ceremonies[].ceremony_type'."}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Type', 'default': None, 'description': 'New JSON type (string/number/integer/boolean/array/object); clears $ref.'}, 'flags': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Flags', 'default': None, 'description': 'Flag updates (null clears): expertise, preserve, multilingual, language_discriminator, identifying, nullable, format, pattern, semantic_id, judge_floor, semantic_concept_type, semantic_embedding_model, database_key, db_type, db_type_length, index, unique_group, shared, ordered, db_name, db_name_absolute.'}, 'remove': {'type': 'boolean', 'title': 'Remove', 'default': False, 'description': 'Delete the property instead.'}, 'examples': {'anyOf': [{'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'boolean'}]}}, {'type': 'null'}], 'title': 'Examples', 'default': None}, 'new_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'New Name', 'default': None, 'description': 'Rename the property.'}, 'schema_id': {'type': 'string', 'title': 'Schema Id', 'description': 'UUID of the saved schema.'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Description', 'default': None}}}
Esquema de salida
{'type': 'object', 'title': 'update_schema_propertyDictOutput', 'additionalProperties': True}
upload_attachment
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 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.
Esquema de entrada
{'type': 'object', 'title': 'upload_attachmentArguments', 'required': ['filename', 'content_base64'], 'properties': {'filename': {'type': 'string', 'title': 'Filename', 'minLength': 1, 'description': "Original filename including extension (e.g. 'report.pdf')."}, 'media_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Media Type', 'default': None, 'description': 'Optional MIME hint; the server still sniffs the magic bytes.'}, 'content_base64': {'type': 'string', 'title': 'Content Base64', 'description': "The file's bytes, base64-encoded (no data: prefix)."}}}
Esquema de salida
{'type': 'object', 'title': 'upload_attachmentDictOutput', 'additionalProperties': True}
Modificado
create_schema_from_sample
1 de October de 2026 a las 02:41
Añadido
migrate_semantic_embeddings
29 de September de 2026 a las 02:44
Añadido
delete_semantic_concepts
29 de September de 2026 a las 02:44
Añadido
merge_semantic_concepts
29 de September de 2026 a las 02:44
Añadido
import_semantic_concepts
29 de September de 2026 a las 02:44
Añadido
update_concept_alias
29 de September de 2026 a las 02:44
Añadido
add_semantic_concept
29 de September de 2026 a las 02:44
Añadido
probe_semantic_concept
29 de September de 2026 a las 02:44
Añadido
get_semantic_concept
29 de September de 2026 a las 02:44
Añadido
list_semantic_concepts
29 de September de 2026 a las 02:44
Añadido
analyze_schema
29 de September de 2026 a las 02:44
Añadido
analyze_sample
29 de September de 2026 a las 02:44
Añadido
delete_schema
29 de September de 2026 a las 02:44
Añadido
publish_schema
29 de September de 2026 a las 02:44
Añadido
nest_schema_region
29 de September de 2026 a las 02:44
Añadido
resolve_unify_proposal
29 de September de 2026 a las 02:44
Añadido
move_schema_property
29 de September de 2026 a las 02:44
Añadido
add_schema_property
29 de September de 2026 a las 02:44
Añadido
update_schema_property
29 de September de 2026 a las 02:44
Añadido
get_enum_candidates
29 de September de 2026 a las 02:44
Añadido
get_schema_part
29 de September de 2026 a las 02:44
Añadido
update_schema
29 de September de 2026 a las 02:44
Añadido
save_schema
29 de September de 2026 a las 02:44
Añadido
create_schema_from_sample
29 de September de 2026 a las 02:44
Añadido
get_schema
29 de September de 2026 a las 02:44
Añadido
list_schemas
29 de September de 2026 a las 02:44
Añadido
generate_sample
29 de September de 2026 a las 02:44
Añadido
get_stats
29 de September de 2026 a las 02:44
Añadido
get_record
29 de September de 2026 a las 02:44
Añadido
list_records
29 de September de 2026 a las 02:44