项目简介

Gravitino MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,专为 Apache Gravitino (incubating) 设计。它通过 FastMCP 框架集成 Gravitino API,使得 LLM 应用能够以标准化的方式访问和操作 Gravitino 中的元数据信息。

主要功能点

  • 元数据访问: 提供对 Gravitino 中 catalogs, schemas, tables, tags 和 user-roles 等元数据的访问能力。
  • 工具化操作: 内置一系列工具 (Tools),例如:
    • 获取 catalogs, schemas, tables, tags 和 user-roles 列表
    • 获取 table 详细信息和 columns 信息
    • 为 table 和 column 关联 tag
    • 列出带有特定 tag 的对象
    • 管理 user-role 权限 (grant/revoke)
  • 环境配置: 支持通过环境变量灵活配置 Gravitino 连接信息和认证方式 (Token Auth, Basic Auth)。

安装步骤

该仓库本身是 MCP 服务器的实现代码,无需传统意义上的 "安装"。使用前,你需要:

  1. 下载仓库代码:将仓库代码克隆或下载到本地。
  2. 配置 Gravitino 连接信息:根据你的 Gravitino 部署情况,设置以下环境变量(具体环境变量见下方 "服务器配置" 部分)。例如,在运行服务器前,你可以通过 'export' 命令设置环境变量。

服务器配置

MCP 客户端需要配置以下 JSON 格式信息以连接 Gravitino MCP Server。这里的配置信息定义了一个名为 "Gravitino" 的 MCP 服务器。

{
    "mcpServers": {
        "Gravitino": {
            "command": "uv",
            "args": [
              "--directory",
              "/Users/user/workspace/mcp-server-gravitino",  // 【注意替换为你的 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 服务 URI,例如 http://<gravitino_host>:<gravitino_port>】
                "GRAVITINO_USER_NAME": "admin",           // 【Gravitino 用户名 (Basic Auth),可选,如果使用 Token Auth 则不需要】
                "GRAVITINO_PASSWORD": "admin",           // 【Gravitino 密码 (Basic Auth),可选,如果使用 Token Auth 则不需要】
                "GRAVITINO_JWT_TOKEN": "<YOUR GRAVITINO JWT TOKEN>", // 【Gravitino JWT Token (Token Auth),可选,如果使用 Basic Auth 则不需要】
                "GRAVITINO_METALAKE": "metalake_demo"      // 【Gravitino Metalake 名称,默认为 metalake_demo】
            }
        }
    }
}

参数说明:

  • 'command': 启动 MCP 服务器的命令,这里使用 'uv' (一个 Python 打包和运行工具,你也可以根据实际情况调整为 'python' 等)。
  • 'args': 传递给 'command' 的参数列表。
    • '--directory': 指定工作目录为 mcp-server-gravitino 仓库的本地路径。请务必替换为你的实际路径。
    • 'run': 'uv run' 命令用于运行 Python 应用。
    • '--with fastmcp', '--with httpx', '--with mcp-server-gravitino': 声明项目依赖,确保 'fastmcp', 'httpx' 和 'mcp-server-gravitino' 包被包含在运行环境中。
    • 'python -m mcp_server_gravitino.server': 实际执行的 Python 命令,'-m' 参数用于运行 'mcp_server_gravitino.server' 模块,启动 MCP 服务器。
  • 'env': 环境变量配置。
    • 'GRAVITINO_URI': 必须配置,Gravitino 服务的 URI 地址。
    • 'GRAVITINO_USER_NAME', 'GRAVITINO_PASSWORD': Basic Auth 认证,如果 Gravitino 启用 Basic Auth,则需要配置用户名和密码。
    • 'GRAVITINO_JWT_TOKEN': Token Auth 认证,如果 Gravitino 启用 Token Auth,则需要配置 JWT Token。 Basic Auth 和 Token Auth 二选一,必须配置一种认证方式。
    • 'GRAVITINO_METALAKE': 可选配置,Gravitino Metalake 的名称,默认为 'metalake_demo'。

注意: 请根据你的实际环境修改 '/Users/user/workspace/mcp-server-gravitino' 为你本地仓库的路径。同时,根据你的 Gravitino 服务配置,正确设置 'GRAVITINO_URI' 和认证信息。

基本使用方法

  1. 启动 MCP 服务器:在安装步骤和服务器配置完成后,运行 'uv run' 命令(或其他配置的启动命令)来启动 Gravitino MCP Server。服务器启动后,将监听 MCP 客户端的请求。
  2. 配置 MCP 客户端:在你的 MCP 客户端应用中,配置上述 JSON 格式的 'mcpServers' 信息,指定连接到名为 "Gravitino" 的 MCP 服务器。
  3. 调用 Tools: MCP 客户端可以通过 JSON-RPC 协议,调用 Gravitino MCP Server 提供的 Tools,例如 'get_list_of_tables', 'get_table_by_fqn' 等,来获取 Gravitino 的元数据信息,并将其作为上下文提供给 LLM 使用。 具体的 Tool 调用方式请参考 FastMCP 客户端库的文档。

信息

分类

数据库与文件