mcpField
M
mcp-server-openmetadata

mcp-server-openmetadata

Local
github.com/tpavelekDatabases0Updated 77w ago

About mcp-server-openmetadata

mcp-server-openmetadata wraps the OpenMetadata REST API as an MCP server for clients that need to work with metadata. Its currently implemented operations cover listing, retrieving, creating, updating, and deleting tables; many other API areas are listed but not implemented.

Key features

  1. 01List tables
  2. 02Retrieve tables by ID or name
  3. 03Create and update tables
  4. 04Delete tables
  5. 05Authenticate with JWT token or basic credentials

Use cases

  1. 01Inspect tables in an OpenMetadata instance
  2. 02Create or modify table metadata through an MCP client
  3. 03Remove table records from OpenMetadata

MCP support

The server exposes implemented OpenMetadata REST API operations to MCP clients, currently covering table listing, retrieval, creation, updates, and deletion.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

mcp-server-openmetadata

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.

Server for OpenMetadata MCP server

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:

Token Authentication (Recommended)
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:

Token Authentication (Recommended)
{
  "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:

Token Authentication (Recommended)
{
  "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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.