Skip to main content

OpenMetadata MCP Tools Reference

All OpenMetadata MCP tools, with parameters and examples.

Available Tools

Tools are labeled Read (retrieve data only) or Write (create or modify data).

Which Tool to Call First

If you already have a fully qualified name (from a prior result, a user-supplied FQN, or a UI deep link), start with get_entity_details. Add include: ["context", "lineage", "quality"] as needed. This resolves most questions about a known asset in a single call. If you don’t have a fully qualified name yet, start with search_metadata (exact names, owners, tags, tiers) or semantic_search (vague or conceptual queries), then pass the fullyQualifiedName from a result into get_entity_details. Starting broad with search_metadata when you already know the FQN adds unnecessary round trips (re-searching, re-confirming the match) that calling the lookup tool directly avoids.

Fully Qualified Name (FQN) Format

An entity’s FQN is a dot-separated path built from the entity and its ancestors. The number of segments depends on entity type: Consult the entity’s API Reference page for entity types not listed here. Special Characters: If a name segment contains a period (.) or a double quote ("), wrap that segment in double quotes, escaping any internal " by doubling it. For example, a schema literally named sales.eu inside database prod becomes service.prod."sales.eu".table.

Discover

Search and find data assets across your catalog using keyword, semantic, or natural language queries.

search_metadata

Type: Read 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
Three rules are easy to get silently wrong with this tool:
  • queryFilter value: Omit it entirely rather than sending an empty string, "null", or "{}". A degenerate value is not treated as “no filter”: it currently produces a 400 JSON parsing failed error instead of falling through to a normal keyword search.
  • Batch-reading known entities: To hydrate several already-known entities in one call instead of one get_entity_details call per entity, use a terms clause on fullyQualifiedName in queryFilter together with fields.
  • Finding a table’s data-quality tests: Match on originEntityFQN, not entityFQN. A column-level test stores the column’s FQN in entityFQN, so filtering on the table’s FQN there silently returns only table-level tests, with a clean but wrong total.
fullyQualifiedName, entityFQN, and originEntityFQN are indexed with a lowercase normalizer. Values passed in a term/terms clause must be lowercased, or the clause silently matches zero rows.
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
  • Data Quality Entities: testCase, testSuite, testCaseResult
Examples Basic Search:
Search for a Specific Entity Type:
Search with Additional Fields:
Sample Response:
Results include a similarityScore field for each entity whenever the search backend returns a relevance score for that hit. This is the backend’s raw, opaque score (not a value normalized to a 0.0–1.0 range), so absolute values vary by query and are not comparable across searches — only relative ordering within the same result set is meaningful. Higher scores indicate stronger relevance.
Type: Read 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 Examples Conceptual Search:
Search with Filters and Threshold:

company_context

Type: Read Description: Read Company Context knowledge pills, the question/answer notes extracted from files in the Context Center. Pass query to find pills that answer a question, or fqn to read one you already have the name of; exactly one of the two. Each result carries the pill’s title, question, answer, summary, and source file, so a search result is usually enough on its own and needs no follow-up read. query needs vector embeddings configured on the server; fqn does not.
This tool replaces the earlier separate search_company_context and get_company_context tools, which no longer exist as of this release.
Parameters Example

Inspect

Retrieve detailed information about a specific entity, with optional business context, lineage, and data-quality sections folded in.

get_entity_details

Type: Read Description: Retrieve full details for a specific entity by fully qualified name (FQN), with optional extra sections folded into the same call. If you already have the exact FQN (from a prior search result, or built from known segments using the documented FQN format), pass it directly. If you’re not certain of the exact segment values (service, database, schema, or table names as stored in OpenMetadata may differ from source-system names), use search_metadata or semantic_search first and pass through the fullyQualifiedName from the result to avoid a failed lookup. The response includes an extension field containing any custom properties defined for the entity type. Pass entities instead of entityType/fqn to read up to 10 entities in one call.
get_asset_context and get_knowledge_content are no longer separate tools as of this release. Use include: ["context"] in place of get_asset_context, and include: ["content"] in place of get_knowledge_content.
Parameters Examples Get Table Details:
Get Dashboard Details:
Get Table Details with Business Context, Lineage, and Data Quality:
Sample Response:

Context

Retrieve context knowledge associated with the current user, a persona, or a business question. Context tools are all Read operations. For an asset’s own business and structural context, use get_entity_details with include: ["context"] instead.

get_user_context

Type: Read Description: Returns context about the currently authenticated user — identity (ID, name, display name, email, admin/bot flags), team memberships, roles (direct and team-inherited), domains, active persona, and lightweight summaries of entities the user owns and follows. Use this to answer identity questions such as “what is my role?” or “what do I own?” before asking the user for details. The user is resolved from the authenticated request — there is no parameter to look up another user. Parameters Example
Sample Response

get_persona_context

Type: Read Description: Returns the shared AI context document curated for a persona — preferences, use cases, and runbook entries scoped to that persona’s role. With no personaName, returns context for the caller’s active persona. The document can span multiple parts. Call again with an incremented part while the response’s hasMore is true. Access is limited to persona members, admins, and bots. Parameters Example

find_context

Type: Read Description: For a business question where no specific asset has been chosen yet, semantically searches the company-knowledge layer — glossary term definitions, metric definitions, and Context Center articles — and returns the matching definitions plus the candidate data assets each concept points to (glossary terms → the tables tagged with them, metrics → the assets they apply to, and articles → the assets they’re about). Use this to bootstrap a data question from business concepts into candidate tables, then call get_entity_details with include: ["context"] on those FQNs. This is a semantic search over company knowledge, not a keyword search over asset or persona memories. Parameters Example

Lineage & Impact

Explore data dependencies, trace upstream sources, and analyze downstream impact.

get_entity_lineage

Type: Read Description: Retrieve upstream and downstream lineage for any entity to understand data dependencies and perform impact analysis. Pass the exact fullyQualifiedName from search results. Parameters Examples Get Full Lineage:
Downstream-Focused Impact Analysis:

create_lineage

Type: Write Description: Create a lineage relationship between two entities. Identify each entity by fqn (the fully qualified name a search result already returns) or by id (UUID) and type. fqn is preferred, since it skips the extra lookup an id would need. Parameters Example
Tip: search_metadata and get_entity_details results already carry each entity’s fqn — pass it straight through to create_lineage instead of resolving an id first.

root_cause_analysis

Type: Read Description: Trace a data quality failure back to its origin by traversing data quality lineage across pipeline hops. Parameters Example

Create & Modify

Create new entities of any registered type, discover what an entity type requires before creating it, and update existing entities.
create_glossary, create_glossary_term, create_context_memory, create_classification, create_tag, create_domain, create_data_product, and create_metric are no longer separate tools as of this release. Use create_entity with the corresponding entityType for all of them.

create_entity

Type: Write Description: Create a new entity through the repository registered for its entity type. This tool never modifies an existing entity; a name that is already taken fails. Use patch_entity for every edit. Fields every type shares are top-level parameters; fields specific to the entity go in attributes. Call describe_entity_type first when the requirements aren’t already known. Reference-valued attributes take an object naming the target, such as {"type": "glossary", "fullyQualifiedName": "Finance"}; an id may be given instead of the name. Unknown entity types and attributes are rejected before anything is written. Entity types whose resource endpoint performs required authentication, scheduling, specialized authorization, or secret-handling work are rejected with the dedicated API to use instead (users, bots, apps, event subscriptions, ingestion pipelines, test cases, services, and automation workflows). To create a test case use create_test_case; for lineage use create_lineage. A Context Center article is entityType: "page" with attributes: {"pageType": "Article", "page": {}}, its markdown body in description, the assets it documents in attributes.relatedEntities, and an optional attributes.parent page to nest it under. Writes take effect immediately, so confirm the target with the user before calling. Parameters Examples Create a Glossary (replaces the former create_glossary tool):
Create a Domain (replaces the former create_domain tool):
Create a Context Center Article (replaces the former create_context_memory tool):

describe_entity_type

Type: Read Description: Return the attributes that create_entity accepts for one entity type: each field’s name, type, whether it’s required, and its allowed values. Call this before create_entity when the type’s requirements aren’t already known, rather than guessing attribute names. Parameters Example

patch_entity

Type: Write Description: Update an existing entity’s properties using JSON Patch (RFC 6902). Use get_entity_details first to retrieve the current state before constructing a patch. Parameters Example

Data Quality

Access test definitions and create test cases to validate your data assets.

get_test_definitions

Type: Read Description: List test definitions available in OpenMetadata for tables or columns. Call this before create_test_case to identify valid test types and their required parameters. Parameters Example

create_test_case

Type: Write 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’s supportedDataTypes. Parameters Example