openmetadata-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OM_TOOLS | No | Comma-sep allowlist of categories | |
| OM_DISABLE | No | Comma-sep denylist, ignored when OM_TOOLS set | |
| MCP_HTTP_HOST | No | HTTP bind host | 127.0.0.1 |
| MCP_HTTP_PORT | No | HTTP listen port | 3000 |
| MCP_TRANSPORT | No | http to enable Streamable HTTP transport | stdio |
| MCP_HTTP_TOKEN | No | Bearer token. Required when MCP_TRANSPORT=http | |
| OPENMETADATA_HOST | Yes | OpenMetadata server URL (e.g. http://localhost:8585) | |
| MCP_HTTP_SKIP_AUTH | No | Skip Bearer auth — e.g. behind a reverse proxy that handles it | false |
| OPENMETADATA_TOKEN | Yes | JWT or Bot token | |
| OPENMETADATA_ALLOW_WRITE | No | Set true to enable mutations | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search-metadataB | Search OpenMetadata entities (tables, topics, dashboards, pipelines, glossary terms, etc.) by keyword |
| suggest-metadataB | Get autocomplete suggestions for OpenMetadata entity names |
| semantic-searchB | Natural-language semantic search over OpenMetadata entities using vector embeddings (requires OM 1.12+ with semantic search enabled) |
| list-tablesC | List tables with pagination and optional field expansion |
| get-tableB | Get table details by UUID |
| get-table-by-nameC | Get table details by fully qualified name |
| create-tableB | Create a new table in OpenMetadata |
| update-tableB | Update a table using JSON Patch operations |
| delete-tableB | Delete a table by UUID |
| list-databasesC | List databases with pagination and service filtering |
| get-databaseC | Get database details by UUID |
| get-database-by-nameC | Get database details by fully qualified name |
| create-databaseC | Create a new database in OpenMetadata |
| update-databaseC | Update a database using JSON Patch operations |
| delete-databaseB | Delete a database by UUID |
| list-schemasC | List database schemas with pagination |
| get-schemaC | Get database schema details by UUID |
| get-schema-by-nameC | Get database schema details by fully qualified name |
| create-schemaC | Create a new database schema |
| update-schemaA | Update a database schema using JSON Patch operations |
| delete-schemaC | Delete a database schema by UUID |
| get-lineageA | Get upstream and downstream lineage for an entity by UUID |
| get-lineage-by-nameC | Get upstream and downstream lineage for an entity by FQN |
| add-lineageB | Add or update lineage edge between two entities |
| delete-lineageB | Delete a lineage edge between two entities |
| list-database-servicesC | List database services (connectors) |
| get-database-serviceB | Get database service details by UUID |
| get-database-service-by-nameD | Get database service by name |
| create-database-serviceC | Create a new database service connector |
| update-database-serviceB | Update a database service using JSON Patch |
| delete-database-serviceC | Delete a database service |
| list-dashboard-servicesC | List dashboard services |
| get-dashboard-serviceC | Get dashboard service by name |
| list-messaging-servicesC | List messaging services (Kafka, etc.) |
| get-messaging-serviceC | Get messaging service by name |
| list-pipeline-servicesC | List pipeline services (Airflow, etc.) |
| get-pipeline-serviceC | Get pipeline service by name |
| list-ml-model-servicesC | List ML model services |
| get-ml-model-serviceC | Get ML model service by name |
| list-storage-servicesC | List storage services (S3, GCS, etc.) |
| get-storage-serviceC | Get storage service by name |
| list-glossariesC | List glossaries with pagination |
| get-glossaryC | Get glossary details by UUID |
| get-glossary-by-nameC | Get glossary details by name |
| create-glossaryC | Create a new glossary for business terms |
| update-glossaryB | Update a glossary using JSON Patch operations |
| delete-glossaryC | Delete a glossary by UUID |
| list-glossary-termsB | List glossary terms with pagination and glossary filtering |
| get-glossary-termA | Get glossary term details by UUID |
| get-glossary-term-by-nameB | Get glossary term by fully qualified name |
| create-glossary-termB | Create a new glossary term |
| update-glossary-termB | Update a glossary term using JSON Patch operations |
| delete-glossary-termC | Delete a glossary term by UUID |
| list-dashboardsB | List dashboards with pagination and service filtering |
| get-dashboardC | Get dashboard details by UUID |
| get-dashboard-by-nameB | Get dashboard by fully qualified name |
| create-dashboardC | Create a new dashboard |
| update-dashboardC | Update a dashboard using JSON Patch operations |
| delete-dashboardB | Delete a dashboard by UUID |
| list-pipelinesB | List pipelines with pagination and service filtering |
| get-pipelineB | Get pipeline details by UUID |
| get-pipeline-by-nameC | Get pipeline by fully qualified name |
| create-pipelineC | Create a new pipeline |
| update-pipelineB | Update a pipeline using JSON Patch operations |
| delete-pipelineB | Delete a pipeline by UUID |
| list-topicsC | List topics (Kafka, etc.) with pagination |
| get-topicB | Get topic details by UUID |
| get-topic-by-nameC | Get topic by fully qualified name |
| create-topicC | Create a new topic |
| update-topicA | Update a topic using JSON Patch operations |
| delete-topicB | Delete a topic by UUID |
| list-chartsA | List charts with pagination and service filtering |
| get-chartB | Get chart details by UUID |
| get-chart-by-nameC | Get chart by fully qualified name |
| create-chartD | Create a new chart |
| update-chartC | Update a chart using JSON Patch operations |
| delete-chartB | Delete a chart by UUID |
| list-containersC | List storage containers with pagination |
| get-containerB | Get container details by UUID |
| get-container-by-nameB | Get container by fully qualified name |
| create-containerB | Create a new storage container |
| update-containerB | Update a container using JSON Patch operations |
| delete-containerB | Delete a container by UUID |
| list-ml-modelsB | List ML models with pagination and service filtering |
| get-ml-modelB | Get ML model details by UUID |
| get-ml-model-by-nameC | Get ML model by fully qualified name |
| create-ml-modelC | Create a new ML model |
| update-ml-modelB | Update an ML model using JSON Patch operations |
| delete-ml-modelB | Delete an ML model by UUID |
| list-classificationsC | List tag classifications |
| get-classificationB | Get classification details by name |
| create-classificationB | Create a new tag classification |
| delete-classificationC | Delete a tag classification |
| list-tagsC | List tags with pagination and classification filtering |
| get-tagB | Get tag details by UUID |
| get-tag-by-nameB | Get tag by fully qualified name |
| create-tagB | Create a new tag under a classification |
| update-tagB | Update a tag using JSON Patch operations |
| delete-tagC | Delete a tag by UUID |
| list-domainsC | List domains with pagination |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| lineage-impact-analysis | Walk lineage from an entity to identify downstream/upstream entities at risk and the owners to notify before a breaking change. |
| data-quality-investigation | Inspect a table's data quality test cases, group recent failures by severity, and propose remediation steps per failing test. |
| glossary-term-bootstrap | Scan a table's columns for ambiguous names/descriptions, propose glossary terms (de-duplicated against an existing glossary), and emit ready-to-run create-glossary-term calls. |
| data-contract-bootstrap | Read-only audit that compiles a draft Data Contract for a table — schema rules from columns, quality rules from existing test cases, owners from entity owners, freshness from ingestion stats. Outputs a ready-to-apply JSON spec; the user creates the contract manually since write tools for Data Contracts are not yet exposed. |
| owner-change-propagation | Audit ownership across all assets in a domain and produce a checklist of updates needed to assign a new owner. Read-only audit; the user runs the actual updates. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| lineage-impact-card | Apps SDK UI template rendered with lineage-impact tool output |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/us-all/openmetadata-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server