mcp-server-openmetadata

mcp-server-openmetadata

3.4

If you are the rightful owner of mcp-server-openmetadata and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server implementation for OpenMetadata, enabling seamless integration with MCP clients.

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.

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)

FeatureAPI PathStatus
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)

FeatureAPI PathStatus
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)

FeatureAPI PathStatus
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)

FeatureAPI PathStatus
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)

FeatureAPI PathStatus
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)

FeatureAPI PathStatus
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)

FeatureAPI PathStatus
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)

FeatureAPI PathStatus
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)

FeatureAPI PathStatus
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

FeatureAPI PathStatus
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