Apache Gravitino的MCP服务器
](https://www.python.org/downloads/)
提供Gravitino API的MCP服务器-Apache Gravitino服务的FastMCP集成。
特性
- 与无缝集成 FastMCP Gravitino原料药
- 元数据交互的简化界面
- 支持目录、模式、表、模型、用户、标签和用户角色管理的元数据操作
安装
此项目使用 紫外线 作为依赖关系和虚拟环境管理工具。请确保 uv 已安装在您的系统上。
- 克隆存储库:
git clone git@github.com:datastrato/mcp-server-gravitino.git- 导航到项目目录:
cd mcp-server-gravitino- 创建虚拟环境:
uv venv- 激活虚拟环境:
source .venv/bin/activate- 安装依赖项:
uv install配置
通用配置
无论授权如何,都需要设置以下环境变量:
GRAVITINO_METALAKE= # default: "metalake_demo"
GRAVITINO_URI=GRAVITINO_URI:Gravitino服务器的基本URL。GRAVITINO_METALAKE:要使用的metakube的名称。
授权
mcp-server-gravitino 支持基于令牌和基本身份验证方法。这些机制允许安全访问MCP工具和提示,适合与外部系统集成。
令牌身份验证
设置以下环境变量:
GRAVITINO_JWT_TOKEN=GRAVITINO_JWT_TOKEN:用于身份验证的JWT令牌。
基本身份验证
或者,您可以使用基本身份验证:
GRAVITINO_USERNAME=
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 | 启动 紫外线的 CLI工具 |
--directory /path/to/mcp-gravitino | 指定工作项目目录 pyproject.toml |
run | 指示将在托管环境中执行命令 |
--with fastmcp | 添加 fastmcp 在不更改项目deps的情况下切换到运行时环境 |
--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:通过完全限定名获取模型的版本
每个工具都旨在返回简洁和相关的元数据,以保持LLM令牌限制,同时保持语义完整性。
许可证
该项目根据 Apache许可证版本2.0.
