Gravitino API服务

MCP服务器为Apache Gravitino提供API服务,简化元数据交互并支持目录、模式、表、模型、用户、标签和用户角色管理的操作。

  • by datastrato
  • Python
  • 本地部署
  • 23 星标
  • 更新于
在 GitHub 查看 datastrato/mcp-server-gravitino

使用说明

Apache Gravitino的MCP服务器

提供Gravitino API的MCP服务器-Apache Gravitino服务的FastMCP集成。

特性

  • 与无缝集成 FastMCP Gravitino原料药
  • 元数据交互的简化界面
  • 支持目录、模式、表、模型、用户、标签和用户角色管理的元数据操作

安装

此项目使用 紫外线 作为依赖关系和虚拟环境管理工具。请确保 uv 已安装在您的系统上。

  1. 克隆存储库:

    git clone git@github.com: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:要使用的metakube的名称。

授权

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 启动 紫外线的 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.