DataHub MCP Server 使用说明

项目简介

DataHub MCP Server 项目是一个基于 Model Context Protocol (MCP) 构建的服务端应用,它将 DataHub 的强大元数据管理能力通过 MCP 协议暴露出来。通过该 MCP Server,LLM 客户端可以方便地查询和利用 DataHub 中存储的各种数据资产信息,例如数据集、仪表板、数据血缘关系等,从而增强 LLM 在数据理解和应用方面的能力。

主要功能点

  • 实体检索 (get_entity): 根据 DataHub 实体 URN (统一资源名) 获取实体的详细信息,例如数据集、仪表板等。
  • 实体搜索 (search): 在 DataHub 中搜索各种类型的实体,支持关键词查询和过滤器,帮助 LLM 客户端快速找到所需的数据资产。
  • 数据集查询检索 (get_dataset_queries): 获取与特定数据集相关的查询信息,帮助 LLM 理解数据集的使用场景和访问模式。
  • 数据血缘检索 (get_lineage): 查询指定实体的上游和下游血缘关系,帮助 LLM 理解数据之间的依赖关系和流动路径。

安装步骤

  1. 安装依赖: 使用 'uv sync --no-sources' 命令安装项目依赖。如果同时开发 'acryl-datahub' 项目,并且该项目位于 '../datahub' 目录,可以使用 'uv sync' 命令。
    uv sync --no-sources
    uv sync
  2. 初始化 DataHub: 运行 'datahub init' 命令配置 DataHub Token 等信息,用于连接 DataHub 后端服务。
    datahub init

服务器配置

MCP 客户端需要以下配置信息才能连接到 DataHub MCP Server:

{
  "server_name": "datahub",
  "command": "<path>/mcp-server-datahub/.venv/bin/mcp",
  "args": [
    "run",
    "<path>/mcp-server-datahub/mcp_server.py"
  ]
}

配置参数说明:

  • 'server_name': 服务器名称,这里设置为 "datahub"。
  • 'command': MCP 服务器的启动命令,指向项目虚拟环境中的 'mcp' 脚本。需要将 '<path>/mcp-server-datahub' 替换为实际的项目路径。
  • 'args': 启动命令的参数列表。
    • '"run"': 指定 'mcp' 命令执行 'run' 子命令,用于启动 MCP 服务器。
    • '<path>/mcp-server-datahub/mcp_server.py': 指定要运行的 Python 脚本,即 MCP 服务器的入口文件。同样需要将 '<path>/mcp-server-datahub' 替换为实际的项目路径。

注意: 请确保 MCP 客户端能够访问到 'command' 中指定的 'mcp' 脚本和 'args' 中指定的 'mcp_server.py' 脚本。

基本使用方法

  1. 启动服务器: 进入项目根目录,激活虚拟环境,并运行 'mcp dev mcp_server.py' 命令启动 DataHub MCP Server。

    source .venv/bin/activate
    mcp dev mcp_server.py

    服务器成功启动后,会监听 MCP 客户端的请求。

  2. 客户端调用: 使用 MCP 客户端 (例如支持 MCP 协议的 LLM 应用或客户端 SDK) 根据上述服务器配置信息连接到 DataHub MCP Server。客户端可以调用服务器提供的 'get_entity', 'search', 'get_dataset_queries', 'get_lineage' 等工具,获取 DataHub 中的元数据信息。

示例 (通过命令行测试工具):

您可以使用 'curl' 或 'grpcurl' 等命令行工具向 MCP Server 发送 JSON-RPC 请求进行测试。具体请求格式和参数请参考 MCP 协议文档和 'mcp_server.py' 中 '@mcp.tool' 注解的工具定义。

例如,调用 'get_entity' 工具获取 URN 为 "urn:li:dataset:(...) 的实体信息 (请替换为实际的 DataHub 实体 URN):

# 假设 MCP Server 运行在本地 8000 端口 (dev 模式默认端口)
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "tool/get_entity", "params": {"urn": "urn:li:dataset:(...)"}, "id": 1}' http://localhost:8000

请根据 MCP 协议和客户端工具的具体使用方法,构建和发送相应的 JSON-RPC 请求来调用 DataHub MCP Server 提供的工具。

信息

分类

数据库与文件