OpenMetadata MCP Tools Reference
All OpenMetadata MCP tools, with parameters and examples.Available Tools
| Category | Tools |
|---|---|
| Discover | search_metadata, semantic_search |
| Inspect | get_entity_details |
| Lineage & Impact | get_entity_lineage, create_lineage, root_cause_analysis |
| Knowledge | create_glossary, create_glossary_term |
| Govern & Classify | create_classification, create_tag, create_domain, create_data_product, patch_entity |
| Data Quality | get_test_definitions, create_test_case |
| Metrics | create_metric |
Discover
Search and find data assets across your catalog using keyword, semantic, or natural language queries.search_metadata
Description: Find data assets and business terms by keyword. Use when you know specific names, owners, tags, tiers, services, or column names. Use Cases:- Discover tables containing specific data
- Find dashboards related to business areas
- Search for glossary terms
- Locate pipelines by name or description
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | No | Keywords to search for |
entityType | string | No | Filter by entity type (see list below) |
size | integer | No | Max results to return (default: 10, max: 50) |
from | integer | No | Offset for pagination (default: 0) |
fields | string | No | Comma-separated additional fields to include |
queryFilter | string | No | Advanced: direct OpenSearch DSL JSON query |
includeDeleted | boolean | No | Include deleted entities (default: false) |
includeAggregations | boolean | No | Include aggregation/facet data (default: false) |
maxAggregationBuckets | integer | No | Max buckets per aggregation (default: 10, max: 50) |
- Service Entities:
databaseService,messagingService,apiService,dashboardService,pipelineService,storageService,mlmodelService,metadataService,searchService - Data Asset Entities:
apiCollection,apiEndpoint,table,storedProcedure,database,databaseSchema,dashboard,dashboardDataModel,pipeline,chart,topic,searchIndex,mlmodel,container - User Entities:
user,team - Domain Entities:
domain,dataProduct - Governance Entities:
metric,glossary,glossaryTerm
semantic_search
Description: Find data assets by meaning using vector search (setup guide). Use for exploratory queries where you don’t know exact names. Returns conceptually related assets even when no keywords match. Use Cases:- Explore data when you don’t know exact table names
- Find assets related to a concept (e.g., “customer spending behavior”)
- Discover hidden relationships across services
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Natural language description of what you’re looking for |
filters | object | No | Optional filters: entityType, service, tags (each an array of strings) |
size | integer | No | Number of results to return (default: 10, max: 50) |
k | integer | No | KNN neighbor count for tuning result quality (default: 100) |
threshold | number | No | Minimum similarity score 0.0–1.0 (default: 0.0) |
Inspect
Retrieve detailed information about specific entities and company knowledge pills.get_entity_details
Description: Retrieve full details for a specific entity by fully qualified name (FQN). Pass the exactfullyQualifiedName value from search results — do not construct FQNs manually.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
entityType | string | Yes | Type of entity (e.g., table, dashboard, topic, pipeline) |
fqn | string | Yes | Fully qualified name — use the exact value from search_metadata or semantic_search results |
Lineage & Impact
Explore data dependencies, trace upstream sources, and analyze downstream impact.get_entity_lineage
Description: Retrieve upstream and downstream lineage for any entity to understand data dependencies and perform impact analysis. Pass the exactfullyQualifiedName from search results.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
entityType | string | Yes | Type of entity |
fqn | string | Yes | Fully qualified name of the entity |
upstreamDepth | integer | No | Hops to traverse upstream (default: 3, max: 10) |
downstreamDepth | integer | No | Hops to traverse downstream (default: 3, max: 10) |
includeColumnLineage | boolean | No | Include column-level lineage mappings. Default is false (table-level only) |
create_lineage
Description: Create a lineage relationship between two entities. Requires theid (UUID) and type of both the source and destination entities.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
fromEntity | object | Yes | Source entity with type (string) and id (UUID string) |
toEntity | object | Yes | Destination entity with type (string) and id (UUID string) |
Tip: Retrieve entity UUIDs fromget_entity_detailsresults before callingcreate_lineage.
root_cause_analysis
Description: Trace a data quality failure back to its origin by traversing data quality lineage across pipeline hops. Parameters| Parameter | Type | Required | Description |
|---|---|---|---|
fqn | string | Yes | FQN of the entity where failure was detected |
entityType | string | Yes | Entity type to analyze (for example, table) |
upstreamDepth | integer | No | Hops to traverse upstream (default: 3, max: 10) |
downstreamDepth | integer | No | Hops to traverse downstream (default: 3, max: 10) |
queryFilter | string | No | Optional OpenSearch DSL filter JSON |
includeDeleted | boolean | No | Include deleted entities in traversal (default: false) |
Knowledge
Create and manage glossaries, terms, and reusable context memories.create_glossary
Description: Create a new glossary to organize business terms. SetmutuallyExclusive: true to restrict entities to a single term from the glossary at a time.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the glossary |
description | string | Yes | Description of the glossary’s purpose |
mutuallyExclusive | boolean | Yes | If true, only one term from this glossary can tag an entity at a time |
owners | array | No | List of owner usernames or emails |
reviewers | array | No | List of reviewer usernames or emails |
create_glossary_term
Description: Create a new term within an existing glossary. Supports hierarchical parent–child relationships between terms. Parameters| Parameter | Type | Required | Description |
|---|---|---|---|
glossary | string | Yes | FQN of the parent glossary |
name | string | Yes | Name of the term |
description | string | Yes | Definition of the term |
parentTerm | string | No | FQN of the parent term (for nested/hierarchical terms) |
owners | array | No | List of owner usernames or emails |
reviewers | array | No | List of reviewer usernames or emails |
Govern & Classify
Define and apply classifications, tags, domains, data products, and entity updates.create_classification
Description: Create a new Classification in OpenMetadata. A Classification is a top-level container that groups related Tags (e.g.,PII, Tier). The name becomes the root segment of every tag FQN under it. The mutuallyExclusive flag is immutable once the classification exists.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the classification. Becomes the root segment of tag FQNs (e.g., PII → PII.Sensitive). Must be unique. |
description | string | Yes | Description of the classification in Markdown format. |
displayName | string | No | Human-readable display name. |
mutuallyExclusive | boolean | No | If true, an entity can only carry one tag from this classification at a time. Immutable after creation. |
owners | array | No | OpenMetadata usernames or team names to set as owners. Each must already exist. |
reviewers | array | No | OpenMetadata usernames or team names to set as reviewers. Each must already exist. |
domains | array | No | FQNs of domains this classification belongs to. Each domain must already exist. |
create_tag
Description: Create a new Tag inside a Classification in OpenMetadata. The tag FQN isClassification.TagName (e.g., PII.Sensitive). At least one of classification or parent must be provided.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the tag (the leaf segment, e.g., Sensitive). Must be unique within its parent. |
description | string | Yes | Description of the tag in Markdown format. |
classification | string | No | Name of the classification this tag belongs to (e.g., PII). Must already exist. Optional if parent is provided. |
parent | string | No | FQN of the parent tag for a nested tag (e.g., PII.PersonalData). Must already exist. Omit for a top-level tag. |
displayName | string | No | Human-readable display name. |
mutuallyExclusive | boolean | No | If true, child tags under this tag are mutually exclusive on an entity. |
owners | array | No | OpenMetadata usernames or team names to set as owners. Each must already exist. |
reviewers | array | No | OpenMetadata usernames or team names to set as reviewers. Each must already exist. |
domains | array | No | FQNs of domains this tag belongs to. Each domain must already exist. |
create_domain
Description: Create a new Domain in OpenMetadata. A Domain is a top-level governance grouping of data assets. To create a child domain, setparent to the FQN of an existing parent domain. domainType defaults to Aggregate if omitted.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the domain. Must be unique. |
description | string | Yes | Description of the domain in Markdown format. |
domainType | string | No | Type of domain: Source-aligned, Consumer-aligned, or Aggregate (default). |
parent | string | No | FQN of an existing parent domain when creating a child domain. Omit for a top-level domain. |
displayName | string | No | Human-readable display name. |
experts | array | No | OpenMetadata login names of domain experts (e.g., john.doe). Each must already exist. |
owners | array | No | OpenMetadata usernames or team names to set as owners. Each must already exist. |
tags | array | No | Tag FQNs to apply to this domain (e.g., Tier.Tier1). |
create_data_product
Description: Create a new Data Product in OpenMetadata. A Data Product groups data assets that deliver business value and must belong to at least one Domain. All referenced domain FQNs must already exist. Parameters| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the data product. Must be unique. |
description | string | Yes | Description of the data product in Markdown format. |
domains | array | Yes | FQNs of the domains this data product belongs to (e.g., Finance). At least one required; each must already exist. |
displayName | string | No | Human-readable display name. |
experts | array | No | OpenMetadata login names of data product experts (e.g., john.doe). Each must already exist. |
owners | array | No | OpenMetadata usernames or team names to set as owners. Each must already exist. |
reviewers | array | No | OpenMetadata usernames or team names to set as reviewers. Each must already exist. |
tags | array | No | Tag FQNs to apply to this data product (e.g., Tier.Tier1, PII.Sensitive). |
patch_entity
Description: Update an existing entity’s properties using JSON Patch (RFC 6902). Useget_entity_details first to retrieve the current state before constructing a patch.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
entityType | string | Yes | Type of entity to patch (e.g., table, glossaryTerm) |
fqn | string | Yes | Fully qualified name of the entity to patch |
patch | string | Yes | JSON Patch operations array as a JSON string. Each operation has op (add/remove/replace), path, and value |
Data Quality
Access test definitions and create test cases to validate your data assets.get_test_definitions
Description: List test definitions available in OpenMetadata for tables or columns. Call this beforecreate_test_case to identify valid test types and their required parameters.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
entityType | string | Yes | TABLE for table-level tests or COLUMN for column-level tests |
limit | integer | No | Max results to return (default: 10) |
after | string | No | Pagination cursor — use nextCursor from the previous response |
testPlatform | string | No | Filter by platform: OpenMetadata, GreatExpectations, DBT, Deequ, Soda, Other (default: OpenMetadata) |
create_test_case
Description: Create a data quality test case for a table or column. For column tests, ensure the column’s data type is listed in the test definition’ssupportedDataTypes.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the test case |
fqn | string | Yes | FQN of the target entity (typically the table FQN) |
testDefinitionName | string | Yes | Name of the test definition returned by get_test_definitions |
parameterValues | array | Yes | List of test parameter objects (name + value) required by the test definition |
columnName | string | No | Column name for column-level test cases |
entityType | string | No | Target OpenMetadata entity type (default: table). For column-level tests, keep entityType as table and set columnName. |
description | string | No | Optional description of the test case |
Metrics
Define and track measurable business and technical KPIs.create_metric
Description: Create a new metric entity in OpenMetadata to track and standardize business KPIs. Parameters| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the metric |
description | string | No | Description of the metric in Markdown format |
displayName | string | No | Human-readable display name for the metric |
metricExpressionLanguage | string | Yes | Expression language used for the metric (for example, SQL) |
metricExpressionCode | string | Yes | Metric formula/expression in the selected language |
metricType | string | No | Metric type such as COUNT, SUM, AVERAGE, RATIO, or OTHER |
granularity | string | No | Time granularity such as DAY, WEEK, MONTH, QUARTER, or YEAR |
unitOfMeasurement | string | No | Unit of measurement such as COUNT, DOLLARS, PERCENTAGE, or OTHER |
customUnitOfMeasurement | string | No | Custom unit string, required when unitOfMeasurement is OTHER |
owners | array | No | List of owner usernames or emails |
reviewers | array | No | List of reviewer usernames or emails |
relatedMetrics | array | No | List of related metric FQNs |
tags | array | No | List of tags to apply |
domains | array | No | List of domains to associate |