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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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-searchA | Natural-language semantic search over OpenMetadata entities using vector embeddings (requires OM 1.12+ with semantic search enabled) |
| list-tablesA | List tables with pagination and optional field expansion |
| get-tableC | Get table details by UUID |
| get-table-by-nameC | Get table details by fully qualified name |
| create-tableC | Create a new table in OpenMetadata |
| update-tableB | Update a table using JSON Patch operations |
| delete-tableC | 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-databaseA | Update a database using JSON Patch operations |
| delete-databaseC | 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-schemaB | Update a database schema using JSON Patch operations |
| delete-schemaC | Delete a database schema by UUID |
| get-lineageC | 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-serviceC | Get database service details by UUID |
| get-database-service-by-nameC | 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-servicesD | 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-glossaryC | Update a glossary using JSON Patch operations |
| delete-glossaryC | Delete a glossary by UUID |
| list-glossary-termsC | List glossary terms with pagination and glossary filtering |
| get-glossary-termB | Get glossary term details by UUID |
| get-glossary-term-by-nameB | Get glossary term by fully qualified name |
| create-glossary-termC | Create a new glossary term |
| update-glossary-termC | 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-dashboardB | Get dashboard details by UUID |
| get-dashboard-by-nameC | Get dashboard by fully qualified name |
| create-dashboardC | Create a new dashboard |
| update-dashboardB | Update a dashboard using JSON Patch operations |
| delete-dashboardB | Delete a dashboard by UUID |
| list-pipelinesB | List pipelines with pagination and service filtering |
| get-pipelineC | Get pipeline details by UUID |
| get-pipeline-by-nameB | 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-topicB | Update a topic using JSON Patch operations |
| delete-topicB | Delete a topic by UUID |
| list-chartsA | List charts with pagination and service filtering |
| get-chartC | Get chart details by UUID |
| get-chart-by-nameC | Get chart by fully qualified name |
| create-chartC | Create a new chart |
| update-chartB | Update a chart using JSON Patch operations |
| delete-chartC | Delete a chart by UUID |
| list-containersB | List storage containers with pagination |
| get-containerB | Get container details by UUID |
| get-container-by-nameB | Get container by fully qualified name |
| create-containerC | Create a new storage container |
| update-containerB | Update a container using JSON Patch operations |
| delete-containerC | 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-nameB | 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-classificationC | Get classification details by name |
| create-classificationC | Create a new tag classification |
| delete-classificationB | Delete a tag classification |
| list-tagsC | List tags with pagination and classification filtering |
| get-tagB | Get tag details by UUID |
| get-tag-by-nameC | Get tag by fully qualified name |
| create-tagB | Create a new tag under a classification |
| update-tagA | Update a tag using JSON Patch operations |
| delete-tagB | 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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