Skip to main content

Model Context Protocol (MCP) server for OpenMetadata

Project description

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

Feature API Path Status
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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mseep_mcp_server_openmetadata-0.1.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mseep_mcp_server_openmetadata-0.1.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file mseep_mcp_server_openmetadata-0.1.1.tar.gz.

File metadata

File hashes

Hashes for mseep_mcp_server_openmetadata-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b48648b78da1da55be7beb7f7a87d05cfc3a48a272dd2c33469a3f82f2e9fd7c
MD5 4439a997ca596a4b5d0ef8174eb10b8c
BLAKE2b-256 fc115bfa8e2efccd44758f9a67ae0560ac8ca31c1cb1f902af0017eb822973c7

See more details on using hashes here.

File details

Details for the file mseep_mcp_server_openmetadata-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mseep_mcp_server_openmetadata-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 233afe9d7e9ee35cedc98abe0f444cc807a359d67707d80fb0d286f474ddf341
MD5 cb04678c11453e9f466370ce261677ed
BLAKE2b-256 6bc031de8d9eb833f889953f3ed105b149e6f2440b1c8da965b59f51727d4f2a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page