mcpField
M
MCP server for Apache Gravitino(incubating)

MCP server for Apache Gravitino(incubating)

本地服务
github.com/datastrato数据库2369 周前更新

关于 MCP server for Apache Gravitino(incubating)

MCP server for Apache Gravitino 是基于 FastMCP 构建的 MCP 服务,用于通过 MCP 访问 Apache Gravitino 的元数据。它面向需要让 LLM 查询目录、表、标签、模型和用户角色的数据团队,只暴露一组经过筛选的工具,而非全部 Gravitino API。

主要功能

  1. 01目录、Schema 与表元数据查询
  2. 02标签关联与按标签检索
  3. 03用户与角色授权管理
  4. 04模型版本查询
  5. 05通过环境变量筛选启用的工具

适用场景

  1. 01让 LLM 查询 Gravitino 中的表与字段信息
  2. 02按标签查找相关数据对象
  3. 03为用户授予或撤销角色

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Apache Gravitino 的 MCP 服务

Python Version

提供 Gravitino API 的 MCP 服务——用于 Apache Gravitino 服务的 FastMCP 集成。

功能

  • 与 FastMCP 无缝集成,提供 Gravitino API
  • 简化元数据交互界面
  • 支持目录、架构、表、模型、用户、标签和用户角色管理的元数据操作

安装

本项目使用 uv 作为依赖和虚拟环境管理工具。请确保系统已安装 uv。

  1. 克隆仓库:

    git clone [email protected]:datastrato/mcp-server-gravitino.git
    
  2. 进入项目目录:

    cd mcp-server-gravitino
    
  3. 创建虚拟环境:

    uv venv
    
  4. 激活虚拟环境:

    source .venv/bin/activate
    
  5. 安装依赖:

    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 授权。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。