返回市场
麦普服务器引力诺

麦普服务器引力诺

作者:datastrato19 星标更新:2025-07-03

项目介绍

MCP Server for Apache Gravitino

Python 版本

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

功能

  • FastMCP 无缝集成以支持 Gravitino API
  • 简化的元数据交互接口
  • 支持目录、模式、表、模型、用户、标签以及用户角色管理的元数据操作

安装

该项目使用 uv 作为依赖和虚拟环境管理工具。请确保您的系统已安装 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> # 默认值:"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 CLI 工具
--directory /path/to/mcp-gravitino指定包含 pyproject.toml 的工作项目目录
run表示将在托管环境中执行命令
--with fastmcpfastmcp 添加到运行时环境,而不改变项目依赖
--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 License Version 2.0 授权。