Tools

The Entropy Data MCP server exposes the following 26 tools.


Data Product Discovery

Get Data Product Details fetch

Get a data product by its ID. The data product contains all its output ports and server information. The response includes access status for each output port and inlines any data contracts.

  • Name
    dataProductId
    Type
    string
    Required
    Description

    The data product ID

Find and explore data products in the organization. Parameter:

  • query: Keywords to search for in data product names/descriptions. Optional, use "*" to get all data products. Returns a list of data products with basic information, sorted by certification level (highest first). Includes certification name and rank if certified. You can fetch details later.

Strategy: First use a generic search term like "sales", "customers", "marketing" to find relevant data products. Use a more specific term if the results are too broad.

  • Name
    query
    Type
    string
    Required
    Description

    Keywords to search for in data product names/descriptions


Access Management

Request Data Product Access request_access

Submit an access request for a specific data product's output port. This creates a formal request that may be automatically approved or require manual approval.

Parameters:

  • dataProductId: The ID of the data product to request access to
  • outputPortId: The ID of the output port within the data product
  • purpose: Business justification for accessing the data
  • roles: Optional list of role names to request (e.g., ["analyst", "data_engineer"]). Available roles can be found in the data contract's roles section, if any.

Returns information about the created access request including its ID, status, approval status, and requested roles.

  • Name
    dataProductId
    Type
    string
    Required
    Description

    The ID of the data product

  • Name
    outputPortId
    Type
    string
    Required
    Description

    The ID/name of the output port to request access to

  • Name
    purpose
    Type
    string
    Required
    Description

    Business justification for accessing the data. Use a high-level description that will be used to validate purpose. If there is a data contract, the purpose must be in line with the terms specified in the data contract.

  • Name
    roles
    Type
    array
    Required
    Description

    Optional list of role names to request access for. Available roles are defined in the data contract.


Query Execution

Execute SQL Query execute_query

Execute SQL queries on data product output ports and query results as structured data (limited to 100 rows). Supports: Databricks, PostgreSQL, BigQuery, Snowflake, MySQL, MariaDB, SQL Server (MSSQL), Trino Must have active access to the output port and configured personal datasource connection.

The SQL should follow the datasource dialect. Try to use fully qualified table names when appropriate.

  • Name
    dataProductId
    Type
    string
    Required
    Description

    The ID of the data product

  • Name
    outputPortId
    Type
    string
    Required
    Description

    The ID / name of the output port to query

  • Name
    purpose
    Type
    string
    Required
    Description

    The business purpose for executing this query. Use a high-level description, it will be used to validate purpose. If there is a data contract, the purpose must be in line with the terms specified in the data contract.

  • Name
    query
    Type
    string
    Required
    Description

    The SQL query in the data source dialect to execute. Try to use fully qualified table names when appropriate.


Data Product Management

Save Data Product dataproduct_save

EXPERIMENTAL. Save a data product YAML specification. This will create a new data product or update an existing one. The YAML must be valid Data Product Specification (DPS) or Open Data Product Standard (ODPS) format.

  • Name
    yaml
    Type
    string
    Required
    Description

    The data product YAML

Get Data Product Schema dataproduct_schema

Get the JSON Schema for data products. Returns the latest active schema - either the default schema or a custom organization-specific schema if defined.

Data products can be specified in Data Product Specification (DPS) or Open Data Product Standard (ODPS) format. Pass the optional specificationType parameter ("dps" or "odps") to choose the format; if omitted, the organization's default data product specification type is used.

This schema can be used for validating data product specifications and understanding their structure.

  • Name
    specificationType
    Type
    string
    Required
    Description

    The data product specification type: "dps" or "odps" (optional, defaults to the organization's default)


Data Contract Management

Get Data Contract datacontract_get

Get a data contract by its ID or external ID. Returns the complete data contract specification as originally defined.

The data contract can be in ODCS (Open Data Contract Standard) or DCS format.

  • Name
    dataContractId
    Type
    string
    Required
    Description

    The data contract ID

Save Data Contract datacontract_save

EXPERIMENTAL. Save a data contract YAML specification. This will create a new data contract or update an existing one. The YAML must be valid ODCS (Open Data Contract Standard) or DCS format.

  • Name
    yaml
    Type
    string
    Required
    Description

    The data contract YAML

Get Data Contract Schema datacontract_schema

Get the JSON Schema for Open Data Contract Standard (ODCS). Returns the latest active schema - either the default ODCS schema or a custom organization-specific schema if defined.

This schema can be used for validating data contract specifications and understanding the structure of ODCS documents.

Get Data Contract Test Results datacontract_test_results

Get test results for a data contract. Returns the most recent test run results, optionally filtered by server name. Use the count parameter to retrieve older results (up to 20). Includes check outcomes (passed, failed, warning, error) and log messages.

  • Name
    dataContractId
    Type
    string
    Required
    Description

    The data contract ID (external ID)

  • Name
    server
    Type
    string
    Required
    Description

    The server name to filter by (optional)

  • Name
    count
    Type
    integer
    Required
    Description

    Number of test results to return (1-20, default 1)

Run Data Contract Test datacontract_test

Run a data contract test. Executes the configured data contract test against the specified server and returns the test results including individual check outcomes. Requires that Data Contract Tests are enabled and configured for the organization.

  • Name
    dataContractId
    Type
    string
    Required
    Description

    The data contract ID (external ID)

  • Name
    server
    Type
    string
    Required
    Description

    The server name to test against (optional, required if multiple servers are configured)


Semantic Layer

List Namespaces semantics_list_namespaces

List the semantic namespaces in the organization. Each namespace is an isolated ontology that contains concepts and relationships. Returns the slug, display name, and concept count for each namespace.

List Concepts semantics_list_concepts

Enumerate concepts in a semantic namespace, with optional filters for kind, group, and tag. Returns a shallow payload (externalId, name, kind, group, description) so large namespaces stay readable. Use semantics_get_concept to drill into a single concept.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace.

  • Name
    kind
    Type
    string
    Required
    Description

    Filter by kind: entity, metric, group, shared_property, property. Omit for all.

  • Name
    group
    Type
    string
    Required
    Description

    Filter by group externalId. Returns concepts that are members of this group.

  • Name
    tag
    Type
    string
    Required
    Description

    Filter by tag. Concept must carry this tag.

  • Name
    limit
    Type
    integer
    Required
    Description

    Max results. Default 200.

Search Concepts semantics_search_concepts

Find concepts in a semantic namespace by keyword. Matches against name, description, externalId, and annotation values. Use this before authoring a new concept to check whether something similar already exists, and to find candidate extends parents or relationship targets by topic.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace.

  • Name
    query
    Type
    string
    Required
    Description

    Search query — matched case-insensitively against name, description, externalId, and annotation values.

  • Name
    kind
    Type
    string
    Required
    Description

    Filter by kind: entity, metric, group, shared_property, property. Omit for all.

  • Name
    limit
    Type
    integer
    Required
    Description

    Max results. Default 50.

Get Concept semantics_get_concept

Return the full YAML for a single semantic concept (entity, metric, group, shared_property, or property), including its extends parents, group membership, owner, domain, ai_context, and annotations. The returned YAML round-trips with semantics_save_concept.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace.

  • Name
    externalId
    Type
    string
    Required
    Description

    Concept externalId.

List Relationships semantics_list_relationships

Enumerate relationships in a semantic namespace. Filter by concept (returns edges where the concept is either endpoint), by type (e.g. hasProperty, relatedTo), or by both. Structural relationships (isA, memberOf) are hidden by default — they are managed via the extends and group fields on concepts and cannot be deleted directly.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace.

  • Name
    concept
    Type
    string
    Required
    Description

    Filter by concept externalId. Returns relationships where this concept is from or to.

  • Name
    type
    Type
    string
    Required
    Description

    Filter by relationship type (e.g. hasProperty, relatedTo). Omit for all non-structural types.

  • Name
    includeStructural
    Type
    boolean
    Required
    Description

    Include isA and memberOf relationships. Default false.

  • Name
    limit
    Type
    integer
    Required
    Description

    Max results. Default 200.

Find Data Products For Concept semantics_find_data_products_for_concept

List the data products (and data contracts) that provide data for a given semantic concept. Match is based on the semantic link defined in each resource's authoritativeDefinitions (ODCS / ODPS) pointing at the concept IRI. Accepts either an external id (e.g. "customer") in combination with a namespace, or a concept UUID.

  • Name
    conceptIdOrExternalId
    Type
    string
    Required
    Description

    Concept external id or UUID.

  • Name
    namespace
    Type
    string
    Required
    Description

    Namespace (defaults to 'main' when external id is used).

Concepts For Data Product semantics_concepts_for_data_product

List the semantic concepts referenced by a data product. Reads the data product's YAML specification (ODPS) and the ODCS data contracts linked from its output ports, collects every authoritativeDefinitions entry of type "semantic", then resolves each URL back to the matching semantic concept inside the organization.

  • Name
    dataProductExternalId
    Type
    string
    Required
    Description

    Data product external id.

Nl Query semantics_nl_query

Answer a natural-language question about the organization's semantic graph by generating and optionally executing a SPARQL query. The generator is schema-aware: it retrieves the most relevant concepts via embedding similarity, prepends their metadata to the prompt, and validates the generated SPARQL with Jena. One repair attempt is made if the first query fails to parse or execute.

Typical questions:

  • "which data products describe the Customer entity?"
  • "list all metrics classified as financial"
  • "which concepts belong to the Sales group?"
  • Name
    question
    Type
    string
    Required
    Description

    The natural-language question.

  • Name
    executeQuery
    Type
    boolean
    Required
    Description

    Whether to also execute the generated query. Defaults to true.

Sparql Query semantics_sparql_query

Run a SPARQL 1.1 SELECT, ASK, CONSTRUCT, or DESCRIBE query against the organization's semantic graph.

The graph contains:

  • All semantic concepts (entities, shared properties, metrics, groups) with their metadata (labels, data types, enum values, patterns, etc.)
  • Relationships between concepts (hasProperty, relatedTo, isA, memberOf)
  • Virtual links to data products and data contracts via ed:describes and ed:describedBy, so you can ask questions like "which data products provide data for the 'Customer' entity?".

Custom vocabulary prefix: ed: <https://entropy-data.com/ns/ed#> Standard vocabularies available: rdf, rdfs, owl, skos, dcterms.

SPARQL UPDATE queries are not supported.

  • Name
    query
    Type
    string
    Required
    Description

    SPARQL 1.1 query string (SELECT/ASK/CONSTRUCT/DESCRIBE).

  • Name
    format
    Type
    string
    Required
    Description

    Result format: json, xml, csv, tsv, turtle. Defaults to json.

Get Schema semantics_get_schema

Return the JSON schemas for semantic concepts, relationships, and ontology documents. Call this once before authoring with semantics_save_concept, semantics_save_relationship, or semantics_save_ontology so the YAML you produce conforms to the expected shape.

Pass schema=concept|relationship|ontology to fetch a single schema, or omit for all.

  • Name
    schema
    Type
    string
    Required
    Description

    Schema name: concept, relationship, ontology, or omit for all.

Save Concept semantics_save_concept

Create or update a single semantic concept in the given namespace. The YAML must conform to the concept schema (call semantics_get_schema once to fetch it).

The kind field selects the concept type: entity, metric, group, shared_property, or property. Use extends for inheritance and group for group membership; isA and memberOf relationships are managed via these fields, not via semantics_save_relationship.

Adding a property to an entity is a TWO-STEP operation. Properties are first-class concepts so they can be reused across entities, not nested fields:

  1. Call this tool with kind=property to create the property concept (e.g. email).
  2. Call semantics_save_relationship with type=hasProperty, from=<entity>, to=<property> to attach it to the owning entity (e.g. from=Customer, to=email). Skipping step 2 leaves the property orphaned. Reusable cross-entity attributes use kind=shared_property instead and are linked the same way.

Errors come back as a structured errors list with stable code values (schema_violation, yaml_parse_error, etc.). Reference-resolution issues (missing extends/group target) come back as warnings and do not fail the save.

Requires organization owner role.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace.

  • Name
    yaml
    Type
    string
    Required
    Description

    Concept YAML conforming to semantic-concept-schema.json.

Save Relationship semantics_save_relationship

Create or update a single semantic relationship in the given namespace. The YAML must conform to the relationship schema (call semantics_get_schema for the shape).

Use the relates array to identify endpoints by concept name; pass type for the relationship semantics. Common types:

  • hasProperty: attach a property (kind=property or shared_property) to an entity. from=<entity name>, to=<property name>. This is the second step after creating the property via semantics_save_concept.
  • relatedTo: generic association between two entities. The default when type is omitted.
  • custom: any domain-specific verb you choose (e.g. owns, fulfills, references). The relationship name is required and is slugified into the persisted externalId.

Refuses isA and memberOf types — manage those via semantics_save_concept with extends and group.

Requires organization owner role.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace.

  • Name
    yaml
    Type
    string
    Required
    Description

    Relationship YAML conforming to semantic-relationship-schema.json.

Save Ontology semantics_save_ontology

Bulk create or update concepts and relationships from a SemanticDocument YAML. Use this for drafting an entire namespace in one shot — e.g. when bootstrapping a domain model. The document is processed in dependency order (groups, then shared properties, then entities/metrics, then concept properties, then relationships) so cross-references inside the document resolve.

Schema violations come back in errors and abort the save. Reference-resolution issues (missing extends/group/relates targets) come back in warnings and the save proceeds.

Requires organization owner role.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace. All concepts and relationships are written under this namespace.

  • Name
    yaml
    Type
    string
    Required
    Description

    SemanticDocument YAML conforming to semantic-ontology-schema.json.

Delete Concept semantics_delete_concept

Delete a single semantic concept by externalId. By default refuses to delete a concept that is still referenced by other relationships; pass cascade=true to delete the concept and drop the referencing edges. Returns success=true with deleted=false when the concept does not exist (idempotent).

Requires organization owner role.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace.

  • Name
    externalId
    Type
    string
    Required
    Description

    Concept externalId.

  • Name
    cascade
    Type
    boolean
    Required
    Description

    If true, also delete relationships that reference this concept. Default false.

Delete Relationship semantics_delete_relationship

Delete a single semantic relationship by externalId. Refuses isA and memberOf — those are managed by re-saving the source concept with updated extends or group. Returns success=true with deleted=false when the relationship does not exist (idempotent).

Requires organization owner role.

  • Name
    namespace
    Type
    string
    Required
    Description

    Ontology namespace.

  • Name
    externalId
    Type
    string
    Required
    Description

    Relationship externalId (returned by semantics_save_relationship or semantics_list_relationships).