OpenMetadata MCP Tools Reference
All OpenMetadata MCP tools, with parameters and examples.Available Tools
| Tool | Category | Description |
|---|---|---|
search_metadata | Discovery | Keyword-based search for data assets and business terms |
semantic_search | Discovery | Meaning-based search using vector embeddings |
get_entity_details | Discovery | Retrieve full details for a specific entity by FQN |
patch_entity | Governance | Update an existing entity using JSON Patch |
create_glossary | Governance | Create a new glossary to organize business terms |
create_glossary_term | Governance | Add a term to an existing glossary |
create_metric | Governance | Create a new metric entity |
get_entity_lineage | Lineage | Explore upstream/downstream dependencies |
create_lineage | Lineage | Create a lineage relationship between two entities |
get_test_definitions | Data Quality | List available test definitions for tables or columns |
create_test_case | Data Quality | Create a data quality test for a table or column |
root_cause_analysis | Data Quality | Perform root cause analysis via data quality lineage |
Discovery & Search Tools
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
Parameters
| 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) |
Entity Types
- 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
Examples
Basic Search: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
Parameters
| 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) |
Examples
Conceptual Search: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 |
Examples
Get Table Details:Governance Tools
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.
Example
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 |
Examples
Create a Business Glossary: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 |
Examples
Create a Root-Level Term: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 |
Example
Lineage Tools
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) |
Examples
Get Full Lineage: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) |
Example
Tip: Retrieve entity UUIDs fromget_entity_detailsresults before callingcreate_lineage.
Data Quality Tools
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) |
Example
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 |
Example
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) |