关于 MCP server for Apache Gravitino(incubating)
MCP server for Apache Gravitino 是基于 FastMCP 构建的 MCP 服务,用于通过工具访问 Apache Gravitino 的元数据,涵盖目录、模式、表、模型、用户、标签和角色管理。适合需要让 AI 助手查询或管理数据元数据的用户。
主要功能
- 01目录、模式与表的元数据查询
- 02表与列的标签关联管理
- 03用户角色的授予与撤销
- 04模型及模型版本查询
- 05支持令牌和基本认证
适用场景
- 01让 AI 助手查询 Gravitino 中的表结构与列信息
- 02按标签查找相关数据对象
- 03管理用户的角色分配
MCP 相关
该服务以 MCP 服务器形式运行,向 MCP 客户端提供一组经过筛选的 Gravitino 元数据工具,并可通过 GRAVITINO_ACTIVE_TOOLS 选择启用的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Apache Gravitino 的 MCP 服务
提供 Gravitino API 的 MCP 服务——用于 Apache Gravitino 服务的 FastMCP 集成。
功能
- 与 FastMCP 无缝集成,提供 Gravitino API
- 简化元数据交互界面
- 支持目录、架构、表、模型、用户、标签和用户角色管理的元数据操作
安装
本项目使用 uv 作为依赖和虚拟环境管理工具。请确保系统已安装 uv。
-
克隆仓库:
git clone [email protected]:datastrato/mcp-server-gravitino.git -
进入项目目录:
cd mcp-server-gravitino -
创建虚拟环境:
uv venv -
激活虚拟环境:
source .venv/bin/activate -
安装依赖:
uv install
配置
常规配置
无论使用哪种授权方式,都需要设置以下环境变量:
GRAVITINO_METALAKE=<YOUR_METALAKE> # default: "metalake_demo"
GRAVITINO_URI=<YOUR_GRAVITINO_URI>
GRAVITINO_URI:Gravitino 服务的基础 URL。GRAVITINO_METALAKE:要使用的元数据湖名称。
授权
mcp-server-gravitino 支持基于令牌和基本身份验证两种方式。这些机制可以安全访问 MCP 工具和提示词,适合与外部系统集成。
令牌身份验证
设置以下环境变量:
GRAVITINO_JWT_TOKEN=<YOUR_GRAVITINO_JWT_TOKEN>
GRAVITINO_JWT_TOKEN:用于身份验证的 JWT 令牌。
基本身份验证
或者,也可以使用基本身份验证:
GRAVITINO_USERNAME=<YOUR_GRAVITINO_USERNAME>
GRAVITINO_PASSWORD=<YOUR_GRAVITINO_PASSWORD>
GRAVITINO_USERNAME:用于 Gravitino 身份验证的用户名。GRAVITINO_PASSWORD:对应的密码。
工具激活
目前,工具激活基于方法名称(例如,get_list_of_table)。你可以通过设置可选环境变量 GRAVITINO_ACTIVE_TOOLS 指定要激活的工具。默认值为 *,表示激活所有工具。如果只想激活 get_list_of_roles 工具,可以按如下方式设置环境变量:
GRAVITINO_ACTIVE_TOOLS=get_list_of_roles
使用
运行以下命令以启动 Gravitino MCP 服务:
uv \
--directory /path/to/mcp-gravitino \
run \
--with fastmcp \
--with httpx \
--with mcp-server-gravitino \
python -m mcp_server_gravitino.server
各参数含义如下:
| 参数 | 说明 |
|---|---|
uv | 启动 UV 命令行工具 |
--directory /path/to/mcp-gravitino | 指定包含 pyproject.toml 的项目工作目录 |
run | 表示将在受管理的环境中执行命令 |
--with fastmcp | 将 fastmcp 添加到运行时环境,不修改项目依赖 |
--with httpx | 添加 httpx 依赖,以支持异步 HTTP 功能 |
--with mcp-server-gravitino | 将本地模块添加为运行时依赖 |
python -m mcp_server_gravitino.server | 使用包的入口模块启动 MCP 服务 |
Goose 客户端示例
以下是使用 Goose 运行服务的配置示例:
{
"mcpServers": {
"Gravitino": {
"command": "uv",
"args": [
"--directory",
"/Users/user/workspace/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_USERNAME": "admin",
"GRAVITINO_PASSWORD": "admin",
"GRAVITINO_METALAKE": "metalake_demo"
}
}
}
}
工具列表
mcp-server-gravitino 不会公开所有 Gravitino API,而是提供一组精选的优化工具:
表工具
get_list_of_catalogs:获取目录列表get_list_of_schemas:获取架构列表get_list_of_tables:分页获取表列表get_table_by_fqn:获取特定表的详细信息get_table_columns_by_fqn:获取表的列信息
标签工具
get_list_of_tags:获取所有标签associate_tag_to_entity:为表或列添加标签list_objects_by_tag:列出与指定标签关联的对象
用户角色工具
get_list_of_roles:获取所有角色get_list_of_users:获取所有用户grant_role_to_user:为用户分配角色revoke_role_from_user:撤销用户的角色
模型工具
get_list_of_models:获取模型列表get_list_of_model_versions_by_fqn:根据完全限定名称获取模型版本
每个工具都旨在返回简洁且相关的元数据,以适应大模型的令牌限制,同时保持语义完整性。
许可证
本项目根据 Apache License Version 2.0 授权。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。