项目简介
Gravitino MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,专为 Apache Gravitino (incubating) 设计。它通过 FastMCP 框架集成 Gravitino API,使得 LLM 应用能够以标准化的方式访问和操作 Gravitino 中的元数据信息。
主要功能点
- 元数据访问: 提供对 Gravitino 中 catalogs, schemas, tables, tags 和 user-roles 等元数据的访问能力。
- 工具化操作: 内置一系列工具 (Tools),例如:
- 获取 catalogs, schemas, tables, tags 和 user-roles 列表
- 获取 table 详细信息和 columns 信息
- 为 table 和 column 关联 tag
- 列出带有特定 tag 的对象
- 管理 user-role 权限 (grant/revoke)
- 环境配置: 支持通过环境变量灵活配置 Gravitino 连接信息和认证方式 (Token Auth, Basic Auth)。
安装步骤
该仓库本身是 MCP 服务器的实现代码,无需传统意义上的 "安装"。使用前,你需要:
- 下载仓库代码:将仓库代码克隆或下载到本地。
- 配置 Gravitino 连接信息:根据你的 Gravitino 部署情况,设置以下环境变量(具体环境变量见下方 "服务器配置" 部分)。例如,在运行服务器前,你可以通过 'export' 命令设置环境变量。
服务器配置
MCP 客户端需要配置以下 JSON 格式信息以连接 Gravitino MCP Server。这里的配置信息定义了一个名为 "Gravitino" 的 MCP 服务器。
{ "mcpServers": { "Gravitino": { "command": "uv", "args": [ "--directory", "/Users/user/workspace/mcp-server-gravitino", // 【注意替换为你的 mcp-server-gravitino 仓库本地路径】 "run", "--with", "fastmcp", "--with", "httpx", "--with", "mcp-server-gravitino", "python", "-m", "mcp_server_gravitino.server" ], "env": { "GRAVITINO_URI": "http://localhost:8090", // 【Gravitino 服务 URI,例如 http://<gravitino_host>:<gravitino_port>】 "GRAVITINO_USER_NAME": "admin", // 【Gravitino 用户名 (Basic Auth),可选,如果使用 Token Auth 则不需要】 "GRAVITINO_PASSWORD": "admin", // 【Gravitino 密码 (Basic Auth),可选,如果使用 Token Auth 则不需要】 "GRAVITINO_JWT_TOKEN": "<YOUR GRAVITINO JWT TOKEN>", // 【Gravitino JWT Token (Token Auth),可选,如果使用 Basic Auth 则不需要】 "GRAVITINO_METALAKE": "metalake_demo" // 【Gravitino Metalake 名称,默认为 metalake_demo】 } } } }
参数说明:
- 'command': 启动 MCP 服务器的命令,这里使用 'uv' (一个 Python 打包和运行工具,你也可以根据实际情况调整为 'python' 等)。
- 'args': 传递给 'command' 的参数列表。
- '--directory': 指定工作目录为 mcp-server-gravitino 仓库的本地路径。请务必替换为你的实际路径。
- 'run': 'uv run' 命令用于运行 Python 应用。
- '--with fastmcp', '--with httpx', '--with mcp-server-gravitino': 声明项目依赖,确保 'fastmcp', 'httpx' 和 'mcp-server-gravitino' 包被包含在运行环境中。
- 'python -m mcp_server_gravitino.server': 实际执行的 Python 命令,'-m' 参数用于运行 'mcp_server_gravitino.server' 模块,启动 MCP 服务器。
- 'env': 环境变量配置。
- 'GRAVITINO_URI': 必须配置,Gravitino 服务的 URI 地址。
- 'GRAVITINO_USER_NAME', 'GRAVITINO_PASSWORD': Basic Auth 认证,如果 Gravitino 启用 Basic Auth,则需要配置用户名和密码。
- 'GRAVITINO_JWT_TOKEN': Token Auth 认证,如果 Gravitino 启用 Token Auth,则需要配置 JWT Token。 Basic Auth 和 Token Auth 二选一,必须配置一种认证方式。
- 'GRAVITINO_METALAKE': 可选配置,Gravitino Metalake 的名称,默认为 'metalake_demo'。
注意: 请根据你的实际环境修改 '/Users/user/workspace/mcp-server-gravitino' 为你本地仓库的路径。同时,根据你的 Gravitino 服务配置,正确设置 'GRAVITINO_URI' 和认证信息。
基本使用方法
- 启动 MCP 服务器:在安装步骤和服务器配置完成后,运行 'uv run' 命令(或其他配置的启动命令)来启动 Gravitino MCP Server。服务器启动后,将监听 MCP 客户端的请求。
- 配置 MCP 客户端:在你的 MCP 客户端应用中,配置上述 JSON 格式的 'mcpServers' 信息,指定连接到名为 "Gravitino" 的 MCP 服务器。
- 调用 Tools: MCP 客户端可以通过 JSON-RPC 协议,调用 Gravitino MCP Server 提供的 Tools,例如 'get_list_of_tables', 'get_table_by_fqn' 等,来获取 Gravitino 的元数据信息,并将其作为上下文提供给 LLM 使用。 具体的 Tool 调用方式请参考 FastMCP 客户端库的文档。
信息
分类
数据库与文件