Skip to main content

Model Context Protocol (MCP) server for OpenMetadata

Project description

MseeP.ai Security Assessment Badge

mcp-server-openmetadata

smithery badge

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

Core Data Entities (table, database, databaseschema)

Feature API Path Status
Tables
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}
Databases
List Databases /api/v1/databases
Get Database /api/v1/databases/{id}
Get Database by Name /api/v1/databases/name/{fqn}
Create Database /api/v1/databases
Update Database /api/v1/databases/{id}
Delete Database /api/v1/databases/{id}
Database Schemas
List Database Schemas /api/v1/databaseSchemas
Get Database Schema /api/v1/databaseSchemas/{id}
Get Database Schema by Name /api/v1/databaseSchemas/name/{fqn}
Create Database Schema /api/v1/databaseSchemas
Update Database Schema /api/v1/databaseSchemas/{id}
Delete Database Schema /api/v1/databaseSchemas/{id}

Data Assets (dashboard, chart, pipeline, topic, metric, container, report, mlmodel)

Feature API Path Status
Dashboards
List Dashboards /api/v1/dashboards
Get Dashboard /api/v1/dashboards/{id}
Get Dashboard by Name /api/v1/dashboards/name/{fqn}
Create Dashboard /api/v1/dashboards
Update Dashboard /api/v1/dashboards/{id}
Delete Dashboard /api/v1/dashboards/{id}
Charts
List Charts /api/v1/charts
Get Chart /api/v1/charts/{id}
Get Chart by Name /api/v1/charts/name/{fqn}
Create Chart /api/v1/charts
Update Chart /api/v1/charts/{id}
Delete Chart /api/v1/charts/{id}
Pipelines
List Pipelines /api/v1/pipelines
Get Pipeline /api/v1/pipelines/{id}
Get Pipeline by Name /api/v1/pipelines/name/{fqn}
Create Pipeline /api/v1/pipelines
Update Pipeline /api/v1/pipelines/{id}
Delete Pipeline /api/v1/pipelines/{id}
Topics
List Topics /api/v1/topics
Get Topic /api/v1/topics/{id}
Get Topic by Name /api/v1/topics/name/{fqn}
Create Topic /api/v1/topics
Update Topic /api/v1/topics/{id}
Delete Topic /api/v1/topics/{id}
Metrics
List Metrics /api/v1/metrics
Get Metric /api/v1/metrics/{id}
Get Metric by Name /api/v1/metrics/name/{fqn}
Create Metric /api/v1/metrics
Update Metric /api/v1/metrics/{id}
Delete Metric /api/v1/metrics/{id}
Containers
List Containers /api/v1/containers
Get Container /api/v1/containers/{id}
Get Container by Name /api/v1/containers/name/{fqn}
Create Container /api/v1/containers
Update Container /api/v1/containers/{id}
Delete Container /api/v1/containers/{id}
Reports
List Reports /api/v1/reports
Get Report /api/v1/reports/{id}
Get Report by Name /api/v1/reports/name/{fqn}
Create Report /api/v1/reports
Update Report /api/v1/reports/{id}
Delete Report /api/v1/reports/{id}
ML Models
List ML Models /api/v1/mlmodels
Get ML Model /api/v1/mlmodels/{id}
Get ML Model by Name /api/v1/mlmodels/name/{fqn}
Create ML Model /api/v1/mlmodels
Update ML Model /api/v1/mlmodels/{id}
Delete ML Model /api/v1/mlmodels/{id}

Users & Teams (user, team)

Feature API Path Status
Teams
List Teams /api/v1/teams
Get Team /api/v1/teams/{id}
Get Team by Name /api/v1/teams/name/{name}
Create Team /api/v1/teams
Update Team /api/v1/teams/{id}
Delete Team /api/v1/teams/{id}
Users
List Users /api/v1/users
Get User /api/v1/users/{id}
Get User by Name /api/v1/users/name/{name}
Create User /api/v1/users
Update User /api/v1/users/{id}
Delete User /api/v1/users/{id}

Governance & Classification (classification, glossary, tag)

Feature API Path Status
Classifications
List Classifications /api/v1/classifications
Get Classification /api/v1/classifications/{id}
Get Classification by Name /api/v1/classifications/name/{name}
Create Classification /api/v1/classifications
Update Classification /api/v1/classifications/{id}
Delete Classification /api/v1/classifications/{id}
Glossaries
List Glossaries /api/v1/glossaries
Get Glossary /api/v1/glossaries/{id}
Get Glossary by Name /api/v1/glossaries/name/{name}
Create Glossary /api/v1/glossaries
Update Glossary /api/v1/glossaries/{id}
Delete Glossary /api/v1/glossaries/{id}
List Glossary Terms /api/v1/glossaryTerms
Get Glossary Term /api/v1/glossaryTerms/{id}
Tags
List Tags /api/v1/tags
Get Tag /api/v1/tags/{id}
Get Tag by Name /api/v1/tags/name/{name}
Create Tag /api/v1/tags
Update Tag /api/v1/tags/{id}
Delete Tag /api/v1/tags/{id}

System & Operations (bot, services, event)

Feature API Path Status
Bots
List Bots /api/v1/bots
Get Bot /api/v1/bots/{id}
Get Bot by Name /api/v1/bots/name/{name}
Create Bot /api/v1/bots
Update Bot /api/v1/bots/{id}
Delete Bot /api/v1/bots/{id}
Services
List Services /api/v1/services
Database Services /api/v1/services/databaseServices
Dashboard Services /api/v1/services/dashboardServices
Messaging Services /api/v1/services/messagingServices
Test Connection /api/v1/services/testConnection
Events
List Events /api/v1/events
List Event Subscriptions /api/v1/events/subscriptions
Get Event Subscription /api/v1/events/subscriptions/{id}
Create Event Subscription /api/v1/events/subscriptions
Update Event Subscription /api/v1/events/subscriptions/{id}
Delete Event Subscription /api/v1/events/subscriptions/{id}
Test Destination /api/v1/events/subscriptions/testDestination

Analytics & Monitoring (lineage, usage, search)

Feature API Path Status
Lineage
Get Lineage by Entity ID /api/v1/lineage/{entity}/{id}
Get Lineage by Entity Name /api/v1/lineage/{entity}/name/{fqn}
Add/Update Lineage /api/v1/lineage
Delete Lineage /api/v1/lineage
Usage
Get Entity Usage /api/v1/usage/{entity}/{id}
Add Usage Data /api/v1/usage
Get Usage Summary /api/v1/usage/summary
Search & Discovery
Search Query /api/v1/search/query
Search Suggest /api/v1/search/suggest
Search Aggregate /api/v1/search/aggregate
Search Field Query /api/v1/search/fieldQuery

Data Quality (test_case, test_suite)

Feature API Path Status
Test Cases
List Test Cases /api/v1/dataQuality/testCases
Get Test Case /api/v1/dataQuality/testCases/{id}
Get Test Case by Name /api/v1/dataQuality/testCases/name/{fqn}
Create Test Case /api/v1/dataQuality/testCases
Update Test Case /api/v1/dataQuality/testCases/{id}
Delete Test Case /api/v1/dataQuality/testCases/{id}
List Test Case Results /api/v1/dataQuality/testCases/{fqn}/testCaseResult
Get Test Case Results /api/v1/dataQuality/testCases/testCaseResults/{fqn}
Test Suites
List Test Suites /api/v1/dataQuality/testSuites
Get Test Suite /api/v1/dataQuality/testSuites/{id}
Get Test Suite by Name /api/v1/dataQuality/testSuites/name/{name}
Create Basic Test Suite /api/v1/dataQuality/testSuites/basic
Create Executable Test Suite /api/v1/dataQuality/testSuites/executable
Update Test Suite /api/v1/dataQuality/testSuites/{id}
Delete Test Suite /api/v1/dataQuality/testSuites/{id}
Get Execution Summary /api/v1/dataQuality/testSuites/executionSummary
Get Data Quality Report /api/v1/dataQuality/testSuites/dataQualityReport

Access Control & Security (policy, role)

Feature API Path Status
Policies
List Policies /api/v1/policies
Get Policy /api/v1/policies/{id}
Get Policy by Name /api/v1/policies/name/{name}
Create Policy /api/v1/policies
Update Policy /api/v1/policies/{id}
Delete Policy /api/v1/policies/{id}
Validate Policy /api/v1/policies/validation/condition
List Policy Resources /api/v1/policies/resources
Roles
List Roles /api/v1/roles
Get Role /api/v1/roles/{id}
Get Role by Name /api/v1/roles/name/{name}
Create Role /api/v1/roles
Update Role /api/v1/roles/{id}
Delete Role /api/v1/roles/{id}

Domain Management (domain)

Feature API Path Status
Domains
List Domains /api/v1/domains
Get Domain /api/v1/domains/{id}
Get Domain by Name /api/v1/domains/name/{name}
Create Domain /api/v1/domains
Update Domain /api/v1/domains/{id}
Delete Domain /api/v1/domains/{id}
Data Products
List Data Products /api/v1/dataProducts
Get Data Product /api/v1/dataProducts/{id}
Get Data Product by Name /api/v1/dataProducts/name/{fqn}
Create Data Product /api/v1/dataProducts
Update Data Product /api/v1/dataProducts/{id}
Delete Data Product /api/v1/dataProducts/{id}

Not Yet Implemented

Feature API Path Status
API Management
API Collections /api/v1/apiCollections
API Endpoints /api/v1/apiEndpoints
Other Assets
Apps /api/v1/apps
Feeds & Activity
Feeds /api/v1/feed
Advanced Features
Personas /api/v1/personas
Queries /api/v1/queries
Search Indexes /api/v1/searchIndexes
Stored Procedures /api/v1/storedProcedures
Suggestions /api/v1/suggestions
Webhooks /api/v1/webhooks

API Groups

The server supports modular API group selection via command line arguments. Available API groups:

Core Data Entities

  • table - Table entity management
  • database - Database entity management
  • databaseschema - Database schema management

Data Assets

  • dashboard - Dashboard entity management
  • chart - Chart entity management
  • pipeline - Pipeline entity management
  • topic - Topic entity management
  • metrics - Metric entity management
  • container - Container entity management
  • report - Report entity management
  • mlmodel - ML Model entity management

Users & Teams

  • user - User entity management
  • team - Team entity management

Governance & Classification

  • classification - Classification entity management
  • glossary - Glossary and glossary terms management
  • tag - Tag and tag category management

System & Operations

  • bot - Bot entity management
  • services - Service configurations and connection testing
  • event - Event subscriptions and notifications

Analytics & Monitoring

  • lineage - Data lineage management
  • usage - Usage analytics management
  • search - Search and discovery operations

Data Quality

  • test_case - Data quality test case management
  • test_suite - Data quality test suite management

Access Control & Security

  • policy - Access policies and security management
  • role - Role-based access control management

Domain Management

  • domain - Domain and data product management

You can specify which API groups to enable when running the server:

# Enable only core entities
python -m src.main --apis table,database,databaseschema

# Enable comprehensive data quality and governance
python -m src.main --apis test_case,test_suite,policy,role,tag,domain

# Enable all available APIs
python -m src.main --apis table,database,databaseschema,dashboard,chart,pipeline,topic,metrics,container,report,mlmodel,user,team,classification,glossary,tag,bot,services,event,lineage,usage,search,test_case,test_suite,policy,role,domain

# Use default selection (all implemented APIs)
python -m src.main

Setup

Installing via Smithery

To install OpenMetadata MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @yangkyeongmo/mcp-server-openmetadata --client claude

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

mcp_server_openmetadata-0.2.4.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

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

mcp_server_openmetadata-0.2.4-py3-none-any.whl (56.6 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_openmetadata-0.2.4.tar.gz.

File metadata

  • Download URL: mcp_server_openmetadata-0.2.4.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mcp_server_openmetadata-0.2.4.tar.gz
Algorithm Hash digest
SHA256 b939c8a5f102963cf0ceb231d947ea73c5dcad1fecdfe4528ef2cf3e6140ab92
MD5 f71c914a4fc144e08d2f2c8487795f3c
BLAKE2b-256 beb9f367ef6deef4f256c2f571d9aff41fd08cd86ac375c9a5650495226b6afc

See more details on using hashes here.

File details

Details for the file mcp_server_openmetadata-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_openmetadata-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 22d0cbbbba08c3f76c00c97a8cf641f180128c3406cf5efe137f4e5c7aa20c6d
MD5 6663cb50bf52b6369b8c390c9883a972
BLAKE2b-256 b629a06562b9049440239692d04906ab802e5ea2b6c90b0321e76d04d6d0b4be

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