使用说明

项目简介

mcp-server-openmetadata 是一个 Model Context Protocol (MCP) 服务器的实现,它基于 OpenMetadata 的 REST API 构建,使得 LLM 客户端能够通过标准化的 MCP 协议与 OpenMetadata 进行交互。该服务器作为 LLM 应用和 OpenMetadata 之间的桥梁,允许 LLM 应用以结构化的方式获取 OpenMetadata 中托管的元数据信息,并执行相应的操作。

主要功能点

  • 资源管理 (Resources): 目前主要支持数据表 (Table) 资源的查询和管理。
    • 列出数据表
    • 获取数据表详情(通过ID或名称)
    • 创建数据表
    • 更新数据表
    • 删除数据表
  • 工具注册和执行 (Tools): 提供一系列预定义的工具,允许 LLM 客户端调用 OpenMetadata 的功能。当前实现的工具包括:
    • 'list_tables': 列出数据表
    • 'get_table': 获取数据表详情(通过ID)
    • 'get_table_by_name': 获取数据表详情(通过名称)
    • 'create_table': 创建数据表
    • 'update_table': 更新数据表
    • 'delete_table': 删除数据表

安装步骤

  1. 克隆仓库:
    git clone https://github.com/yangkyeongmo/mcp-server-openmetadata.git
    cd mcp-server-openmetadata
  2. 安装依赖 (假设你已经安装了 Python 和 pip): 虽然仓库中没有明确的依赖安装步骤,但根据代码推测,可能需要安装 'mcp-server' 和 'httpx'。你可以尝试使用 'pip' 安装:
    pip install mcp-server httpx starlette anyio uvicorn click
    或者使用仓库中 README 提到的 'uv' 或 'uvx' (如果已安装):
    uv pip install mcp-server httpx starlette anyio uvicorn click

服务器配置

MCP 服务器需要配置 OpenMetadata 的连接信息,可以通过环境变量进行配置。

环境变量配置 (推荐使用 Token 认证):

  • Token 认证:

    • 'OPENMETADATA_HOST': 你的 OpenMetadata 服务地址 (例如: 'https://your-openmetadata-host')
    • 'OPENMETADATA_JWT_TOKEN': 你的 OpenMetadata JWT 认证 Token
  • Basic 认证:

    • 'OPENMETADATA_HOST': 你的 OpenMetadata 服务地址 (例如: 'https://your-openmetadata-host')
    • 'OPENMETADATA_USERNAME': 你的 OpenMetadata 用户名
    • 'OPENMETADATA_PASSWORD': 你的 OpenMetadata 密码

MCP 客户端配置 (以 Claude Desktop 为例):

在你的 'claude_desktop_config.json' 文件中,添加 'mcpServers' 配置。以下是使用 Token 认证 的配置示例 (推荐):

{
  "mcpServers": {
    "mcp-server-openmetadata": {
      "command": "uvx",  // 或者 "uv" 或 "python" ,取决于你的环境和运行方式
      "args": ["mcp-server-openmetadata"], //  如果使用 "python",则 args 可以是 ["src/main.py"]
      "env": {
        "OPENMETADATA_HOST": "https://your-openmetadata-host", // 替换为你的 OpenMetadata 服务地址
        "OPENMETADATA_JWT_TOKEN": "your-jwt-token"  // 替换为你的 JWT Token
      }
    }
  }
}

参数说明:

  • '"mcp-server-openmetadata"': 服务器名称,客户端用此名称引用该服务器。
  • '"command"': 启动 MCP 服务器的命令。 'uvx' 和 'uv' 是更现代的 Python 包管理器和运行器,如果你的环境中安装了,推荐使用。 也可以直接使用 '"python"' 命令。
  • '"args"': 传递给 'command' 的参数。
    • 如果 'command' 是 'uvx' 或 'uv', '"args": ["mcp-server-openmetadata"]' 表示运行名为 'mcp-server-openmetadata' 的 uvx/uv 项目 (需要在项目根目录下运行)。
    • 如果 'command' 是 'python', '"args": ["src/main.py"]' 表示直接运行 'src/main.py' 脚本。
  • '"env"': 环境变量配置。 'OPENMETADATA_HOST' 和 'OPENMETADATA_JWT_TOKEN' (或 'OPENMETADATA_USERNAME' 和 'OPENMETADATA_PASSWORD') 用于配置 OpenMetadata 连接信息。

手动运行服务器 (用于测试或调试):

你可以手动运行服务器,例如使用 stdio 传输协议 (默认):

python src/main.py

或者使用 SSE 传输协议,并指定端口 (例如 8001):

python src/main.py --transport sse --port 8001

基本使用方法

配置好 MCP 客户端 (例如 Claude Desktop) 后,客户端会连接到该 MCP 服务器。LLM 应用可以通过 MCP 协议调用服务器提供的工具,例如:

  • 列出数据表: LLM 可以调用 'list_tables' 工具,服务器会返回 OpenMetadata 中数据表的列表。
  • 获取数据表详情: LLM 可以调用 'get_table' 或 'get_table_by_name' 工具,并提供数据表 ID 或名称作为参数,服务器会返回对应数据表的详细信息。
  • 创建、更新、删除数据表: LLM 可以调用 'create_table'、'update_table' 和 'delete_table' 工具,并提供相应的参数来管理 OpenMetadata 中的数据表。

注意: 目前该 MCP 服务器实现的功能还比较有限,主要集中在数据表资源的管理上。README 中 "Feature Implementation Status" 表格显示,许多其他 OpenMetadata API 路径的功能尚未实现 (标记为 ❌)。

信息

分类

商业系统