Skip to Content
MCP ServersCommunitymcp-server-openmetadata

mcp-server-openmetadata

View original on GitHub 

A Model Context Protocol (MCP) server implementation for OpenMetadata, enabling seamless integration with MCP clients. This project provides a standardized way to interact with OpenMetadata through the Model Context Protocol.

About

This project implements a Model Context Protocol  server that wraps OpenMetadata’s REST API, allowing MCP clients to interact with OpenMetadata in a standardized way.

Feature Implementation Status

FeatureAPI PathStatus
Data Assets
List Databases/api/v1/databases❌
Get Database/api/v1/databases/{id}❌
Get Database by Name/api/v1/databases/name/{fqn}❌
Export Database/api/v1/databases/name/{name}/export❌
Import Database/api/v1/databases/name/{name}/import❌
List Tables/api/v1/tablesβœ…
Get Table/api/v1/tables/{id}βœ…
Get Table by Name/api/v1/tables/name/{fqn}βœ…
Create Table/api/v1/tablesβœ…
Update Table/api/v1/tables/{id}βœ…
Delete Table/api/v1/tables/{id}βœ…
Export Table/api/v1/tables/name/{name}/export❌
Import Table/api/v1/tables/name/{name}/import❌
List Metrics/api/v1/metrics❌
Get Metric/api/v1/metrics/{id}❌
List Dashboards/api/v1/dashboards❌
Get Dashboard/api/v1/dashboards/{id}❌
Get Dashboard by Name/api/v1/dashboards/name/{fqn}❌
List Reports/api/v1/reports❌
Get Report/api/v1/reports/{id}❌
List Pipelines/api/v1/pipelines❌
Get Pipeline/api/v1/pipelines/{id}❌
Get Pipeline by Name/api/v1/pipelines/name/{fqn}❌
List Topics/api/v1/topics❌
Get Topic/api/v1/topics/{id}❌
Services
List Database Services/api/v1/services/databaseServices❌
Get Database Service/api/v1/services/databaseServices/{id}❌
Get Database Service by Name/api/v1/services/databaseServices/name/{fqn}❌
Export Database Service/api/v1/services/databaseServices/name/{name}/export❌
Import Database Service/api/v1/services/databaseServices/name/{name}/import❌
List Dashboard Services/api/v1/services/dashboardServices❌
Get Dashboard Service/api/v1/services/dashboardServices/{id}❌
Get Dashboard Service by Name/api/v1/services/dashboardServices/name/{fqn}❌
Teams & Users
List Teams/api/v1/teams❌
Get Team/api/v1/teams/{id}❌
Get Team by Name/api/v1/teams/name/{fqn}❌
Export Team/api/v1/teams/name/{name}/export❌
Import Team/api/v1/teams/name/{name}/import❌
List Users/api/v1/users❌
Get User/api/v1/users/{id}❌
Get User by Name/api/v1/users/name/{name}❌
User Login/api/v1/users/login❌
User Logout/api/v1/users/logout❌
User Signup/api/v1/users/signup❌
Change Password/api/v1/users/changePassword❌
Search
Search Query/api/v1/search/query❌
Search Suggest/api/v1/search/suggest❌
Search Aggregate/api/v1/search/aggregate❌
Field Query/api/v1/search/fieldQuery❌
Get Document/api/v1/search/get/{index}/doc/{id}❌
Tags & Classifications
List Tags/api/v1/tags❌
Get Tag/api/v1/tags/{id}❌
Get Tag by Name/api/v1/tags/name/{fqn}❌
Lineage
Get Lineage/api/v1/lineage/getLineage❌
Export Lineage/api/v1/lineage/export❌
Get Entity Lineage by Name/api/v1/lineage/{entity}/name/{fqn}❌
Get Entity Lineage by ID/api/v1/lineage/{entity}/{id}❌
Get Lineage Edge/api/v1/lineage/getLineageEdge/{fromId}/{toId}❌
Add/Update Lineage/api/v1/lineage❌
Add/Update Lineage by FQN/api/v1/lineage/{fromEntity}/name/{fromFQN}/{toEntity}/name/{toFQN}❌
Add/Update Lineage by ID/api/v1/lineage/{fromEntity}/{fromId}/{toEntity}/{toId}❌
Glossaries
List Glossaries/api/v1/glossaries❌
Get Glossary/api/v1/glossaries/{id}❌
Get Glossary by Name/api/v1/glossaries/name/{fqn}❌
Export Glossary/api/v1/glossaries/name/{name}/export❌
Import Glossary/api/v1/glossaries/name/{name}/import❌
List Glossary Terms/api/v1/glossaryTerms❌
Get Glossary Term/api/v1/glossaryTerms/{id}❌
Get Glossary Term by Name/api/v1/glossaryTerms/name/{fqn}❌
Add Assets to Term/api/v1/glossaryTerms/{id}/assets/add❌
Remove Assets from Term/api/v1/glossaryTerms/{id}/assets/remove❌
Validate Term Tags/api/v1/glossaryTerms/{id}/tags/validate❌
Usage
Get Entity Usage by Name/api/v1/usage/{entity}/name/{fqn}❌
Get Entity Usage by ID/api/v1/usage/{entity}/{id}❌

Setup

Environment Variables

Set one of the following authentication methods:

OPENMETADATA_HOST=<your-openmetadata-host> OPENMETADATA_JWT_TOKEN=<your-jwt-token>

Basic Authentication

OPENMETADATA_HOST=<your-openmetadata-host> OPENMETADATA_USERNAME=<your-username> OPENMETADATA_PASSWORD=<your-password>

Usage with Claude Desktop

Add to your claude_desktop_config.json using one of the following authentication methods:

{ "mcpServers": { "mcp-server-openmetadata": { "command": "uvx", "args": ["mcp-server-openmetadata"], "env": { "OPENMETADATA_HOST": "https://your-openmetadata-host", "OPENMETADATA_JWT_TOKEN": "your-jwt-token" } } } }

Basic Authentication

{ "mcpServers": { "mcp-server-openmetadata": { "command": "uvx", "args": ["mcp-server-openmetadata"], "env": { "OPENMETADATA_HOST": "https://your-openmetadata-host", "OPENMETADATA_USERNAME": "your-username", "OPENMETADATA_PASSWORD": "your-password" } } } }

Alternative configuration using uv:

{ "mcpServers": { "mcp-server-openmetadata": { "command": "uv", "args": [ "--directory", "/path/to/mcp-server-openmetadata", "run", "mcp-server-openmetadata" ], "env": { "OPENMETADATA_HOST": "https://your-openmetadata-host", "OPENMETADATA_JWT_TOKEN": "your-jwt-token" } } } }

Basic Authentication

{ "mcpServers": { "mcp-server-openmetadata": { "command": "uv", "args": [ "--directory", "/path/to/mcp-server-openmetadata", "run", "mcp-server-openmetadata" ], "env": { "OPENMETADATA_HOST": "https://your-openmetadata-host", "OPENMETADATA_USERNAME": "your-username", "OPENMETADATA_PASSWORD": "your-password" } } } }

Replace /path/to/mcp-server-openmetadata with the actual path where you’ve cloned the repository.

Manual Execution

You can also run the server manually:

python src/server.py

Options:

  • --port: Port to listen on for SSE (default: 8000)
  • --transport: Transport type (stdio/sse, default: stdio)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License

Last updated on