mcpField
M
mcp-server-openmetadata

mcp-server-openmetadata

本地服务
github.com/yangkyeongmo数据库2461 周前更新

关于 mcp-server-openmetadata

mcp-server-openmetadata 是 OpenMetadata REST API 的 MCP 服务实现,使 MCP 客户端能够以标准方式访问 OpenMetadata。README 列出了大部分数据实体的操作支持情况。

主要功能

  1. 01封装 OpenMetadata REST API
  2. 02表、数据库、数据库 Schema 的增删改查
  3. 03仪表盘、图表、管道、主题等数据资产操作
  4. 04用户、团队、角色与策略管理
  5. 05血缘、使用情况与搜索接口
  6. 06数据质量测试用例与测试套件操作

适用场景

  1. 01让 MCP 客户端查询 OpenMetadata 中的表和数据库元数据
  2. 02通过 MCP 工具维护术语表、标签和分类
  3. 03查询数据血缘与数据质量测试结果

MCP 相关

该项目是一个 MCP 服务,将 OpenMetadata 的 REST API 以 MCP 工具的形式提供给 MCP 客户端调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai 安全评估徽章

mcp-server-openmetadata

smithery 徽章

一个面向 OpenMetadata 的 Model Context Protocol (MCP) 服务实现,可与 MCP 客户端无缝集成。该项目提供了一种通过 Model Context Protocol 与 OpenMetadata 交互的标准化方式。

Server for OpenMetadata MCP server

关于

该项目实现了一个 Model Context Protocol 服务,封装了 OpenMetadata 的 REST API,使 MCP 客户端能够以标准化的方式与 OpenMetadata 交互。

功能实现状态

核心数据实体(table、database、databaseschema)
功能API 路径状态
表
列出表/api/v1/tables✅
获取表/api/v1/tables/{id}✅
按名称获取表/api/v1/tables/name/{fqn}✅
创建表/api/v1/tables✅
更新表/api/v1/tables/{id}✅
删除表/api/v1/tables/{id}✅
数据库
列出数据库/api/v1/databases✅
获取数据库/api/v1/databases/{id}✅
按名称获取数据库/api/v1/databases/name/{fqn}✅
创建数据库/api/v1/databases✅
更新数据库/api/v1/databases/{id}✅
删除数据库/api/v1/databases/{id}✅
数据库 Schema
列出数据库 Schema/api/v1/databaseSchemas✅
获取数据库 Schema/api/v1/databaseSchemas/{id}✅
按名称获取数据库 Schema/api/v1/databaseSchemas/name/{fqn}✅
创建数据库 Schema/api/v1/databaseSchemas✅
更新数据库 Schema/api/v1/databaseSchemas/{id}✅
删除数据库 Schema/api/v1/databaseSchemas/{id}✅
数据资产(dashboard、chart、pipeline、topic、metric、container、report、mlmodel)
功能API 路径状态
仪表板
列出仪表板/api/v1/dashboards✅
获取仪表板/api/v1/dashboards/{id}✅
按名称获取仪表板/api/v1/dashboards/name/{fqn}✅
创建仪表板/api/v1/dashboards✅
更新仪表板/api/v1/dashboards/{id}✅
删除仪表板/api/v1/dashboards/{id}✅
图表
列出图表/api/v1/charts✅
获取图表/api/v1/charts/{id}✅
按名称获取图表/api/v1/charts/name/{fqn}✅
创建图表/api/v1/charts✅
更新图表/api/v1/charts/{id}✅
删除图表/api/v1/charts/{id}✅
管道
列出管道/api/v1/pipelines✅
获取管道/api/v1/pipelines/{id}✅
按名称获取管道/api/v1/pipelines/name/{fqn}✅
创建管道/api/v1/pipelines✅
更新管道/api/v1/pipelines/{id}✅
删除管道/api/v1/pipelines/{id}✅
主题
列出主题/api/v1/topics✅
获取主题/api/v1/topics/{id}✅
按名称获取主题/api/v1/topics/name/{fqn}✅
创建主题/api/v1/topics✅
更新主题/api/v1/topics/{id}✅
删除主题/api/v1/topics/{id}✅
指标
列出指标/api/v1/metrics✅
获取指标/api/v1/metrics/{id}✅
按名称获取指标/api/v1/metrics/name/{fqn}✅
创建指标/api/v1/metrics✅
更新指标/api/v1/metrics/{id}✅
删除指标/api/v1/metrics/{id}✅
容器
列出容器/api/v1/containers✅
获取容器/api/v1/containers/{id}✅
按名称获取容器/api/v1/containers/name/{fqn}✅
创建容器/api/v1/containers✅
更新容器/api/v1/containers/{id}✅
删除容器/api/v1/containers/{id}✅
报告
列出报告/api/v1/reports✅
获取报告/api/v1/reports/{id}✅
按名称获取报告/api/v1/reports/name/{fqn}✅
创建报告/api/v1/reports✅
更新报告/api/v1/reports/{id}✅
删除报告/api/v1/reports/{id}✅
ML 模型
列出 ML 模型/api/v1/mlmodels✅
获取 ML 模型/api/v1/mlmodels/{id}✅
按名称获取 ML 模型/api/v1/mlmodels/name/{fqn}✅
创建 ML 模型/api/v1/mlmodels✅
更新 ML 模型/api/v1/mlmodels/{id}✅
删除 ML 模型/api/v1/mlmodels/{id}✅
用户与团队(user、team)
功能API 路径状态
团队
列出团队/api/v1/teams✅
获取团队/api/v1/teams/{id}✅
按名称获取团队/api/v1/teams/name/{name}✅
创建团队/api/v1/teams✅
更新团队/api/v1/teams/{id}✅
删除团队/api/v1/teams/{id}✅
用户
列出用户/api/v1/users✅
获取用户/api/v1/users/{id}✅
按名称获取用户/api/v1/users/name/{name}✅
创建用户/api/v1/users✅
更新用户/api/v1/users/{id}✅
删除用户/api/v1/users/{id}✅
治理与分类(classification、glossary、tag)
功能API 路径状态
分类
列出分类/api/v1/classifications✅
获取分类/api/v1/classifications/{id}✅
按名称获取分类/api/v1/classifications/name/{name}✅
创建分类/api/v1/classifications✅
更新分类/api/v1/classifications/{id}✅
删除分类/api/v1/classifications/{id}✅
词汇表
列出词汇表/api/v1/glossaries✅
获取词汇表/api/v1/glossaries/{id}✅
按名称获取词汇表/api/v1/glossaries/name/{name}✅
创建词汇表/api/v1/glossaries✅
更新词汇表/api/v1/glossaries/{id}✅
删除词汇表/api/v1/glossaries/{id}✅
列出词汇表术语/api/v1/glossaryTerms✅
获取词汇表术语/api/v1/glossaryTerms/{id}✅
标签
列出标签/api/v1/tags✅
获取标签/api/v1/tags/{id}✅
按名称获取标签/api/v1/tags/name/{name}✅
创建标签/api/v1/tags✅
更新标签/api/v1/tags/{id}✅
删除标签/api/v1/tags/{id}✅
系统与运维(bot、services、event)
功能API 路径状态
机器人
列出机器人/api/v1/bots✅
获取机器人/api/v1/bots/{id}✅
按名称获取机器人/api/v1/bots/name/{name}✅
创建机器人/api/v1/bots✅
更新机器人/api/v1/bots/{id}✅
删除机器人/api/v1/bots/{id}✅
服务
列出服务/api/v1/services✅
数据库服务/api/v1/services/databaseServices✅
仪表板服务/api/v1/services/dashboardServices✅
消息服务/api/v1/services/messagingServices✅
测试连接/api/v1/services/testConnection✅
事件
列出事件/api/v1/events✅
列出事件订阅/api/v1/events/subscriptions✅
获取事件订阅/api/v1/events/subscriptions/{id}✅
创建事件订阅/api/v1/events/subscriptions✅
更新事件订阅/api/v1/events/subscriptions/{id}✅
删除事件订阅/api/v1/events/subscriptions/{id}✅
测试目标/api/v1/events/subscriptions/testDestination✅
分析与监控(lineage、usage、search)
功能API 路径状态
血缘
按实体 ID 获取血缘/api/v1/lineage/{entity}/{id}✅
按实体名称获取血缘/api/v1/lineage/{entity}/name/{fqn}✅
添加/更新血缘/api/v1/lineage✅
删除血缘/api/v1/lineage✅
用量
获取实体用量/api/v1/usage/{entity}/{id}✅
添加用量数据/api/v1/usage✅
获取用量摘要/api/v1/usage/summary✅
搜索与发现
搜索查询/api/v1/search/query✅
搜索建议/api/v1/search/suggest✅
搜索聚合/api/v1/search/aggregate✅
搜索字段查询/api/v1/search/fieldQuery✅
数据质量(test_case、test_suite)
功能API 路径状态
测试用例
列出测试用例/api/v1/dataQuality/testCases✅
获取测试用例/api/v1/dataQuality/testCases/{id}✅
按名称获取测试用例/api/v1/dataQuality/testCases/name/{fqn}✅
创建测试用例/api/v1/dataQuality/testCases✅
更新测试用例/api/v1/dataQuality/testCases/{id}✅
删除测试用例/api/v1/dataQuality/testCases/{id}✅
列出测试用例结果/api/v1/dataQuality/testCases/{fqn}/testCaseResult✅
获取测试用例结果/api/v1/dataQuality/testCases/testCaseResults/{fqn}✅
测试套件
列出测试套件/api/v1/dataQuality/testSuites✅
获取测试套件/api/v1/dataQuality/testSuites/{id}✅
按名称获取测试套件/api/v1/dataQuality/testSuites/name/{name}✅
创建基础测试套件/api/v1/dataQuality/testSuites/basic✅
创建可执行测试套件/api/v1/dataQuality/testSuites/executable✅
更新测试套件/api/v1/dataQuality/testSuites/{id}✅
删除测试套件/api/v1/dataQuality/testSuites/{id}✅
获取执行摘要/api/v1/dataQuality/testSuites/executionSummary✅
获取数据质量报告/api/v1/dataQuality/testSuites/dataQualityReport✅
访问控制与安全(policy、role)
功能API 路径状态
策略
列出策略/api/v1/policies✅
获取策略/api/v1/policies/{id}✅
按名称获取策略/api/v1/policies/name/{name}✅
创建策略/api/v1/policies✅
更新策略/api/v1/policies/{id}✅
删除策略/api/v1/policies/{id}✅
验证策略/api/v1/policies/validation/condition✅
列出策略资源/api/v1/policies/resources✅
角色
列出角色/api/v1/roles✅
获取角色/api/v1/roles/{id}✅
按名称获取角色/api/v1/roles/name/{name}✅
创建角色/api/v1/roles✅
更新角色/api/v1/roles/{id}✅
删除角色/api/v1/roles/{id}✅
域管理(domain)
功能API 路径状态
域
列出域/api/v1/domains✅
获取域/api/v1/domains/{id}✅
按名称获取域/api/v1/domains/name/{name}✅
创建域/api/v1/domains✅
更新域/api/v1/domains/{id}✅
删除域/api/v1/domains/{id}✅
数据产品
列出数据产品/api/v1/dataProducts✅
获取数据产品/api/v1/dataProducts/{id}✅
按名称获取数据产品/api/v1/dataProducts/name/{fqn}✅
创建数据产品/api/v1/dataProducts✅
更新数据产品/api/v1/dataProducts/{id}✅
删除数据产品/api/v1/dataProducts/{id}✅
尚未实现
功能API 路径状态
API 管理
API 集合/api/v1/apiCollections❌
API 端点/api/v1/apiEndpoints❌
其他资产
应用/api/v1/apps❌
动态与活动
动态/api/v1/feed❌
高级功能
用户画像/api/v1/personas❌
查询/api/v1/queries❌
搜索索引/api/v1/searchIndexes❌
存储过程/api/v1/storedProcedures❌
建议/api/v1/suggestions❌
Webhook/api/v1/webhooks❌

API 分组

该服务支持通过命令行参数进行模块化 API 分组选择。可用的 API 分组:

核心数据实体
  • table - 表实体管理
  • database - 数据库实体管理
  • databaseschema - 数据库 schema 管理
数据资产
  • 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 - 域与数据产品管理

你可以在运行服务时指定要启用哪些 API 组:

# 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

设置

通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 OpenMetadata MCP 服务:

npx -y @smithery/cli install @yangkyeongmo/mcp-server-openmetadata --client claude
环境变量

设置以下身份验证方法之一:

Token 身份验证(推荐)
OPENMETADATA_HOST=<your-openmetadata-host>
OPENMETADATA_JWT_TOKEN=<your-jwt-token>
基本身份验证
OPENMETADATA_HOST=<your-openmetadata-host>
OPENMETADATA_USERNAME=<your-username>
OPENMETADATA_PASSWORD=<your-password>
在 Claude Desktop 中使用

使用以下身份验证方法之一,添加到你的 claude_desktop_config.json 中:

Token 身份验证(推荐)
{
  "mcpServers": {
    "mcp-server-openmetadata": {
      "command": "uvx",
      "args": ["mcp-server-openmetadata"],
      "env": {
        "OPENMETADATA_HOST": "https://your-openmetadata-host",
        "OPENMETADATA_JWT_TOKEN": "your-jwt-token"
      }
    }
  }
}
基本身份验证
{
  "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"
      }
    }
  }
}

使用 uv 的替代配置:

Token 身份验证(推荐)
{
  "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"
      }
    }
  }
}
基本身份验证
{
  "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"
      }
    }
  }
}

将 /path/to/mcp-server-openmetadata 替换为你克隆仓库的实际路径。

手动执行

你也可以手动运行该服务:

python src/server.py

选项:

  • --port:用于 SSE 的监听端口(默认:8000)
  • --transport:传输类型(stdio/sse,默认:stdio)

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

MIT License

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。