mcpField
O
openmetadata

openmetadata

本地服务
github.com/us-all数据库016 周前更新

关于 openmetadata

OpenMetadata MCP 服务为 OpenMetadata 提供实体查询与 CRUD 工具,涵盖元数据、血缘、数据质量及 1.12+ 数据契约等类型。面向需要批量元数据操作、质量调查和影响分析的团队,并提供聚合工具、提示词与资源。

主要功能

  1. 01查询并管理多类元数据实体
  2. 02支持数据契约验证与结果查询
  3. 03执行关键词和语义搜索
  4. 04汇总血缘影响与数据质量
  5. 05提供 MCP 提示词和 URI 资源

适用场景

  1. 01评估表变更影响及相关负责人
  2. 02调查近期数据质量失败
  3. 03批量建立术语表并关联术语
  4. 04查找并重新分配用户拥有的实体

MCP 相关

通过 stdio 或可选的 Streamable HTTP 向 MCP 客户端暴露工具、提示词和只读 URI 资源;写入操作默认关闭,可配置启用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"us-all-openmetadata": {
"command": "npx",
"args": [
"-y",
"@us-all/openmetadata-mcp"
],
"env": {
"OPENMETADATA_HOST": "<OPENMETADATA_HOST>",
"OPENMETADATA_TOKEN": "<OPENMETADATA_TOKEN>",
"OPENMETADATA_ALLOW_WRITE": "<OPENMETADATA_ALLOW_WRITE>",
"OM_TOOLS": "<OM_TOOLS>",
"OM_DISABLE": "<OM_DISABLE>"
}
}
}
}
启动命令npx -y @us-all/openmetadata-mcp
需要配置的环境变量
OPENMETADATA_HOSTOpenMetadata server URL (e.g. https://om.example.com).
OPENMETADATA_TOKEN密钥OpenMetadata bot/JWT token.
OPENMETADATA_ALLOW_WRITESet to 'true' to enable write/destructive tools. Default read-only.
OM_TOOLSComma-separated category allowlist. Default: all categories enabled.
OM_DISABLEComma-separated category disablelist.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@us-all/openmetadata-mcp1.16.10

工具

173

收录的工具列表 · 更新于 2 周前

参数类型必填说明
qstring是搜索查询
fromnumber否分页偏移量
sizenumber否要返回的结果数(最多 100 条)
indexenum否将搜索范围限制为特定实体索引table_search_index | topic_search_index | dashboard_search_index | pipeline_search_index | mlmodel_search_index | container_search_index | query_search_index | user_search_index | team_search_index | glossary_term_search_index | tag_search_index | data_product_search_index | stored_procedure_search_index | dashboard_data_model_search_index | search_entity_search_index | domain_search_index | api_collection_search_index | api_endpoint_search_index
deletedboolean否包括软删除的实体
sortFieldstring否排序字段(例如 'updatedAt')
sortOrderenum否排序顺序asc | desc
queryFilterstring否ElasticSearch 查询筛选器(JSON)
extractFieldsstring否从响应中提取并投影字段的逗号分隔点路径(例如 'id,name,owner.name,columns.*.name')。使用 `*` 作为数组/对象的通配符。用反引号括住包含点的字段名。可大幅减少大型实体的响应令牌数。
trackTotalHitsboolean否跟踪精确的命中总数
includeSourceFieldsstring否要包含的源字段

详细介绍

OpenMetadata MCP 服务

这款 OpenMetadata MCP 服务为所有实体类型提供完整的 CRUD 能力,涵盖 OM 1.12+ Data Contracts、Metrics、Search Index、API Collections 和 API Endpoints,而内嵌 MCP 尚未支持这些类型。

提供 172 个工具、4 个工作流提示词(血缘影响分析 / 数据质量调查 / 术语表初始化 / 负责人重新分配)、7 个 MCP 资源,以及 lineage-impact(下游影响范围及负责人通知名单)、quality-rollup(指定范围内的数据质量状态汇总)和官方 Data Contract 验证等聚合功能。

npm downloads tools @us-all standard Glama MCP server

它的独特之处

  • 覆盖 OM 1.12+ 实体 — Data Contracts、Metrics、Search Index、API Collections、API Endpoints,以及原生合约验证和结果检索。内嵌 MCP 尚未支持这些类型。
  • 聚合工具 — lineage-impact 通过遍历血缘关系、统计使用方、按实体类型细分,并解析所有相关负责人的名单,用一次调用回答“如果我更改或删除 X,会影响什么?”,以便通知变更管理相关人员。get-domain-summary 通过 /search/query 一次性返回域及 6 种子实体类型,并启用 track_total_hits,无需依次发起 7 次调用。get-table-summary 也会以类似方式汇总表、血缘关系、样例数据和数据质量信息。
  • 语义搜索 — 使用 OM 1.12+ 向量索引执行 semantic-search(POST /search/vector/query)。适用于关键词搜索无法匹配同义词的情况。
  • MCP 提示词(4 个)— lineage-impact-analysis、data-quality-investigation、glossary-term-bootstrap、owner-change-propagation。模型可直接调用这些工作流模板。
  • MCP 资源(7 个)— om://table/{fqn}、om://glossary-term/{fqn}、om://lineage/{type}/{fqn}、om://search/{query}、om://dashboard/{fqn}、om://pipeline/{fqn}、om://schema/{fqn}。
  • 专为节省令牌而设计 — 28 个读取工具支持 extractFields 投影(移除 changeDescription/version/updatedBy/href 等冗余信息,体积约减少 80%),并支持 OM_TOOLS/OM_DISABLE 分类开关及 search-tools 元工具。
  • Apps SDK 卡片 — 在 ChatGPT 客户端中,lineage-impact 会通过 _meta["openai/outputTemplate"] 渲染为影响范围卡片(包含下游/上游数量、类型细分、主要使用方及待通知负责人)。Claude 客户端会收到相同的 JSON 内容。
  • stdio + Streamable HTTP — 默认使用 stdio。设置 MCP_TRANSPORT=http 可用于 ChatGPT Apps SDK 或远程客户端(通过 MCP_HTTP_TOKEN 使用 Bearer 身份验证)。

试试这些提示词——共 5 条

将此服务连接到 Claude Desktop 或 Claude Code,然后粘贴以下任意一条:

  1. 血缘影响分析 — “payments.transactions 表即将弃用。列出所有依赖它的仪表板、管道和机器学习模型(上游 + 下游,深度 3)。”
  2. 数据质量调查 — “显示过去 7 天内所有未通过的测试用例。先按表分组,再按测试类型分组,并统计通过/未通过数量。”
  3. 术语表初始化 — “创建一个名为 payments 的术语表,包含以下 8 个术语:chargeback、refund、settlement、KYC、AML、transaction、customer-id、payment-method。关联相关术语。”
  4. 负责人重新分配 — “用户 taehee 即将离职。列出所有由其负责的实体(表/仪表板/管道/机器学习模型),然后将这些实体的负责人全部改为团队 data-platform。”
  5. 域摘要 — “总结 analytics 域:表/仪表板/管道/机器学习模型的总数、近期更新最多的前 5 项,以及它拥有的数据产品。”

何时使用此工具而非 OpenMetadata 内置 MCP

OpenMetadata 1.12+ 自带内置 MCP。两者互为补充:

OM 1.12 内置 MCP@us-all/openmetadata-mcp(此工具)
工具数量~10(搜索、词汇表基础功能、数据血缘、DQ、RCA、语义搜索)172(涵盖所有实体类型的完整 CRUD)
OM 1.12+ 实体类型(Data Contracts/Metrics/Search Index/API)部分支持✅ 12 个工具
聚合工具❌✅ lineage-impact、get-domain-summary、get-table-summary
MCP 提示词❌✅ 4 个
MCP 资源❌✅ 7 个
身份验证OAuth2 / PAT、OM Authorization Engine(RBAC)JWT 机器人令牌 + 写入门控
部署内置于 OM 服务中(通过 marketplace 安装)独立 npm / Docker / npx
OM 版本仅支持 1.12+兼容 1.x
最适用于支持 RBAC 的 AI Agent、使用 SSO 的组织批量 CRUD、自动化、示例数据、较旧的 OM 集群

使用内置 MCP 实现支持 RBAC 且使用 SSO 的治理。对于批量元数据操作、完整的实体 CRUD 功能、自动化,以及低于 1.12 的 OM 集群,请使用此服务。

安装

Claude Desktop
{
  "mcpServers": {
    "openmetadata": {
      "command": "npx",
      "args": ["-y", "@us-all/openmetadata-mcp"],
      "env": {
        "OPENMETADATA_HOST": "http://your-host:8585",
        "OPENMETADATA_TOKEN": "<jwt-bot-token>"
      }
    }
  }
}
Claude Code
claude mcp add openmetadata -s user \
  -e OPENMETADATA_HOST=http://your-host:8585 \
  -e OPENMETADATA_TOKEN=<jwt-bot-token> \
  -- npx -y @us-all/openmetadata-mcp
Docker
docker run --rm -i \
  -e OPENMETADATA_HOST=http://your-host:8585 \
  -e OPENMETADATA_TOKEN=<jwt-bot-token> \
  ghcr.io/us-all/openmetadata-mcp-server
从源代码构建
git clone https://github.com/us-all/openmetadata-mcp-server.git
cd openmetadata-mcp-server && pnpm install && pnpm build
node dist/index.js
获取令牌
  1. 打开 OpenMetadata UI → Settings → Bots
  2. 创建新机器人,或使用现有机器人(ingestion-bot 可用)
  3. 复制 JWT 令牌

配置

变量必需默认值描述
OPENMETADATA_HOST✅—OpenMetadata 服务 URL(例如 http://localhost:8585)
OPENMETADATA_TOKEN✅—JWT 或机器人令牌
OPENMETADATA_ALLOW_WRITE❌false设置为 true 以启用变更操作(创建/更新/删除)
OM_TOOLS❌—以逗号分隔的类别允许列表。最节省令牌。
OM_DISABLE❌—以逗号分隔的类别拒绝列表。设置 OM_TOOLS 时将忽略此项。
MCP_TRANSPORT❌stdio设置为 http 以启用 Streamable HTTP 传输
MCP_HTTP_TOKEN条件必需—Bearer 令牌。当 MCP_TRANSPORT=http 时必需
MCP_HTTP_PORT❌3000HTTP 监听端口
MCP_HTTP_HOST❌127.0.0.1HTTP 绑定主机(针对 localhost 自动启用 DNS 重绑定保护)
MCP_HTTP_SKIP_AUTH❌false跳过 Bearer 身份验证——例如,服务位于负责身份验证的反向代理之后时

类别(10 个):search、core、discovery、governance、quality、services、admin、events、entities、meta(始终启用)。

当 MCP_TRANSPORT=http 时:POST /mcp(Bearer 身份验证的 JSON-RPC)+ GET /health(公开存活状态检查)。

令牌效率
场景工具数Schema 令牌数相较默认值
默认(所有类别)17224,000—
典型(OM_TOOLS=search,core,governance,quality,discovery)12019,500−19%
精简(OM_TOOLS=search,core)264,600−81%

extractFields 还能进一步将单次响应缩减约 80–90%(例如,使用 extractFields: "name,columns.*.name,columns.*.dataType",get-table 的响应可从 8KB 缩至 200B)。此功能会自动应用于 28 个读取工具。

// without
get-table { "id": "..." }

// with
get-table { "id": "...", "extractFields": "name,description,columns.*.name,columns.*.dataType" }

MCP 提示词(4 个)

可通过 MCP prompts/list 使用的工作流模板:

  • lineage-impact-analysis — 给定一个实体,遍历其上游和下游数据血缘,并按影响程度排序。
  • data-quality-investigation — 对比两个时间窗口内的 DQ 测试结果;对失败模式进行聚类。
  • glossary-term-bootstrap — 批量创建包含 N 个相关术语的词汇表,并自动建立关联。
  • owner-change-propagation — 查找用户 X 拥有的所有实体,并提出批量重新分配方案。

MCP 资源

基于 URI 的只读访问:

om://table/{fqn}(表 + 列 + 所有者 + 标签 + 关联)、om://glossary-term/{fqn}、om://lineage/{type}/{fqn}(深度 3)、om://search/{query}(前 10 个关键词命中结果)、om://dashboard/{fqn}、om://pipeline/{fqn}(含任务)、om://schema/{fqn}。

工具(172)

10 个类别。运行时使用 search-tools 进行发现;完整列表已在下方折叠。

类别工具数
表 / 数据库 / 架构 / 血缘22
服务(数据库 / 仪表板 / 消息 / 管道 / ML / 存储)16
术语表 / 术语12
领域 / 数据产品12
分类 / 标签10
发现(仪表板 / 管道 / 图表 / 主题 / 容器 / ML 模型)36
治理(角色 / 策略 / 用户 / 团队 / Bot)13
质量(测试套件 / 用例 / 示例数据)13
存储过程 / 查询11
OM 1.12+ 实体(数据契约 / 指标 / 搜索索引 / API 集合 / API 端点)12
搜索(search-metadata、suggest-metadata、semantic-search)3
聚合(lineage-impact、quality-rollup、get-domain-summary、get-table-summary)4
质量(受写入权限控制的 run-test-suite)1
元信息(search-tools)1
完整工具列表
搜索(3)

search-metadata、suggest-metadata、semantic-search

表(6)

list-tables、get-table、get-table-by-name、create-table、update-table、delete-table

数据库(6)

list-databases、get-database、get-database-by-name、create-database、update-database、delete-database

数据库架构(6)

list-schemas、get-schema、get-schema-by-name、create-schema、update-schema、delete-schema

血缘(4)

get-lineage、get-lineage-by-name、add-lineage、delete-lineage

服务(16)

6 个数据库服务工具 + 仪表板 / 消息 / 管道 / ML 模型 / 存储服务各 2 个工具。

术语表(12)

6 个术语表 CRUD 工具 + 6 个术语 CRUD 工具。

仪表板 / 管道 / 主题 / 图表 / 容器 / ML 模型(36)

每类 6 个 CRUD 工具,遵循 list / get / get-by-name / create / update / delete 模式。

分类和标签(10)

4 个分类工具 + 6 个标签 CRUD 工具。

领域和数据产品(12)

6 个领域工具 + 6 个数据产品 CRUD 工具。

用户和团队(9)

3 个用户读取工具 + 6 个团队 CRUD 工具。

访问控制(4)

list-roles、get-role、list-policies、get-policy

数据质量(7)

list-test-suites、get-test-suite、get-test-suite-by-name、list-test-cases、get-test-case、get-test-case-by-name、list-test-case-results

存储过程(6)

6 个 CRUD 工具。

查询(5)

list-queries、get-query、create-query、update-query、delete-query

事件(3)

list-events、get-event-subscription、get-event-subscription-by-name

Bot(3)

list-bots、get-bot、get-bot-by-name

示例数据(6,只读)

get-table-sample-data、get-table-sample-data-by-name、get-topic-sample-data、get-topic-sample-data-by-name、get-container-sample-data、get-container-sample-data-by-name

OM 1.12+ 实体(12)

list-data-contracts、get-data-contract-by-name、run-data-contract-validation、get-data-contract-latest-result、list-metrics、get-metric-by-name、list-search-indexes、get-search-index-by-name、list-api-collections、get-api-collection-by-name、list-api-endpoints、get-api-endpoint-by-name

聚合

lineage-impact、quality-rollup、get-domain-summary、get-table-summary

质量(受写入权限控制)

run-test-suite — 触发与该测试套件关联的摄取管道。异步执行;结果通过常规管道流程写入。

元信息

search-tools — 按关键字查询其他工具;始终启用。

架构

Claude → MCP stdio → src/index.ts → src/tools/*.ts → OpenMetadataClient (fetch) → OpenMetadata REST

基于 @us-all/mcp-toolkit 构建:

  • extractFields — 节省令牌的响应投影
  • aggregate(fetchers, caveats) — 扇出辅助函数,由 lineage-impact / get-domain-summary / get-table-summary 使用
  • createWrapToolHandler — 对 OPENMETADATA_TOKEN 进行脱敏,并提取 OpenMetadataError
  • search-tools 元工具

面向 OM 1.x。已使用 OM 1.12+ 实体在真实 OM 后端上完成验证。

技术栈

Node.js 22+ • TypeScript strict ESM • pnpm • @modelcontextprotocol/sdk • zod • dotenv • vitest。

自动处理 JSON-Patch 更新(PATCH application/json-patch+json 内容类型)。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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