使用说明
项目简介
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': 删除数据表
安装步骤
- 克隆仓库:
git clone https://github.com/yangkyeongmo/mcp-server-openmetadata.git cd mcp-server-openmetadata - 安装依赖 (假设你已经安装了 Python 和 pip):
虽然仓库中没有明确的依赖安装步骤,但根据代码推测,可能需要安装 'mcp-server' 和 'httpx'。你可以尝试使用 'pip' 安装:
或者使用仓库中 README 提到的 'uv' 或 'uvx' (如果已安装):pip install mcp-server httpx starlette anyio uvicorn clickuv 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 路径的功能尚未实现 (标记为 ❌)。
信息
分类
商业系统