MCP Connector

Integrate with OpenMetadata API

MCP server wrapping OpenMetadata's REST API across 27 selectable API groups - tables, lineage, data quality, governance, access control - via CRUD tools.

Works with openmetadata

Maintainer of this project? Claim this page to edit the listing.


91
Spark score
out of 100
Updated 11 months ago
Version 0.2.4
Models
universal

Add to Favorites

Why it matters

Connect to your OpenMetadata instance to manage and interact with your data catalog. This asset provides standardized access to OpenMetadata's extensive API for comprehensive data governance and management.

Outcomes

What it gets done

01

Perform CRUD operations on core data entities like tables, databases, and schemas.

02

Manage various data resources including dashboards, pipelines, and ML models.

03

Handle user, team, and access control management.

04

Leverage data lineage, usage, and search capabilities.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-openmetadata | bash

Capabilities

Tools your agent gets

list_tables

List all tables from the OpenMetadata catalog

get_table

Retrieve detailed information about a specific table

create_table

Create a new table in the OpenMetadata catalog

update_table

Update an existing table's metadata and properties

delete_table

Delete a table from the OpenMetadata catalog

list_databases

List all databases in the OpenMetadata catalog

get_database

Retrieve detailed information about a specific database

list_schemas

List all database schemas in the OpenMetadata catalog

+11 tools

Overview

OpenMetadata MCP Server

An MCP server wrapping OpenMetadata's REST API with full CRUD across 27 selectable API groups covering core data entities, data assets, governance, data quality, access control, and domain management. Use for conversational OpenMetadata catalog management, lineage tracing, data quality review, and governance/access control. Enable only the API groups needed; several features (feeds, webhooks, stored procedures, personas) are not yet implemented.

What it does

A Model Context Protocol server that wraps OpenMetadata's REST API, letting MCP clients like Claude Desktop create, read, update, and delete metadata entities and run analytics/governance operations against an OpenMetadata instance in a standardized way, instead of calling the REST API directly.

Coverage is organized into nine API group categories, each independently enable-able at server startup. Core Data Entities covers full CRUD on tables, databases, and database schemas. Data Assets covers full CRUD on dashboards, charts, pipelines, topics, metrics, containers, reports, and ML models. Users & Teams covers full CRUD on teams and users. Governance & Classification covers classifications, glossaries and glossary terms, and tags. System & Operations covers bots, service configuration (database/dashboard/messaging services plus connection testing), and event subscriptions with a test-destination endpoint. Analytics & Monitoring covers lineage retrieval and updates by entity ID or fully qualified name, usage data retrieval and submission, and search operations (query, suggest, aggregate, field query). Data Quality covers test case and test suite CRUD, test case results, execution summaries, and data quality reports. Access Control & Security covers policy CRUD with condition validation and role-based access control. Domain Management covers domains and data products. Each entity generally supports list, get-by-ID, get-by-name, create, update, and delete operations. The project is explicit about gaps: API collections/endpoints, apps, activity feeds, personas, saved queries, search indexes, stored procedures, suggestions, and webhooks are documented as not yet implemented.

python -m src.main --apis table,database,databaseschema

API groups are selected via a --apis command-line argument at startup - a comma-separated list of group names (table, database, dashboard, lineage, test_case, policy, domain, and so on) - so a deployment only exposes the entity types it actually needs, rather than the full surface area by default.

When to use - and when NOT to

Use this connector when you want an AI assistant to browse, manage, or analyze metadata in an OpenMetadata catalog - inspecting table/database structure, tracing data lineage, reviewing data quality test results, managing glossaries and tags, or administering access policies and domains - through natural language instead of the OpenMetadata UI or raw REST calls. Since coverage is modular, check that the specific entity type needed is in the implemented list (not the "not yet implemented" list) before relying on it, and enable only the API groups actually required for a given deployment to limit surface area.

Capabilities

Full CRUD across 27 entity/API groups spanning core data catalog entities, data assets, users/teams, governance (classifications, glossaries, tags), system operations (bots, services, events), analytics (lineage, usage, search), data quality (test cases and suites), access control (policies, roles), and domain/data-product management - selectable per deployment via the --apis flag.

How to install

Install automatically for Claude Desktop via Smithery (npx -y @smithery/cli install @yangkyeongmo/mcp-server-openmetadata --client claude), or configure manually. Authenticate with either token auth (OPENMETADATA_HOST + OPENMETADATA_JWT_TOKEN, recommended) or basic auth (OPENMETADATA_HOST + OPENMETADATA_USERNAME + OPENMETADATA_PASSWORD), set in a claude_desktop_config.json mcpServers entry running via uvx mcp-server-openmetadata or a local uv/python invocation. It can also run manually via python src/server.py with --port (default 8000) and --transport (stdio or sse, default stdio) options.

Who it's for

Data platform teams and data engineers using OpenMetadata as their data catalog who want an AI assistant to browse metadata, trace lineage, review data quality, and manage governance and access control conversationally, with the flexibility to expose only the API groups a given deployment needs.

Source README

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)

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.