Skip to main content
Glama
yangkyeongmo

MCP Server for OpenMetadata

by yangkyeongmo

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.

Related MCP server: ESA MCP Server

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:

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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yangkyeongmo/mcp-server-openmetadata'

If you have feedback or need assistance with the MCP directory API, please join our Discord server