使用说明

项目简介

mcp-server-unitycatalog 是一个基于 Model Context Protocol (MCP) 构建的服务器,专门为 Unity Catalog 设计。它将 Unity Catalog 中注册的函数以及预定义的 Unity Catalog AI 工具(如函数列表、函数详情、创建和删除函数)以 MCP 工具的形式暴露给 LLM 客户端,使得 LLM 能够通过调用这些工具来操作和利用 Unity Catalog 中的数据和功能。

主要功能点

  • 提供 Unity Catalog 函数作为 MCP 工具: 允许 LLM 客户端发现和调用 Unity Catalog 中已有的函数。
  • 预置 Unity Catalog AI 工具: 提供了一系列预定义的工具,用于管理 Unity Catalog 中的函数,例如:
    • 'uc_list_functions': 列出指定 Catalog 和 Schema 下的所有函数。
    • 'uc_get_function': 获取指定 Catalog 和 Schema 下某个函数的详细信息。
    • 'uc_create_function': 在指定 Catalog 和 Schema 下创建新的函数(实验性功能)。
    • 'uc_delete_function': 删除指定 Catalog 和 Schema 下的函数。
  • 支持多种部署方式: 可以通过 'uv' 直接运行,也可以使用 Docker 镜像部署。
  • 灵活配置: 支持通过命令行参数或环境变量配置 Unity Catalog 服务器连接信息、Catalog 和 Schema 等。
  • 详细日志: 提供可配置的日志记录,方便问题排查和监控。

安装步骤

使用 uv (推荐)

  1. 确保已安装 'uv'。
  2. 克隆仓库到本地:
    git clone https://github.com/ognis1205/mcp-server-unitycatalog.git
    cd mcp-server-unitycatalog
  3. 无需额外安装步骤,直接使用 'uv run' 命令运行服务器。

使用 Docker

  1. 确保已安装 Docker。
  2. 构建 Docker 镜像:
    docker build -t mcp/unitycatalog .
  3. 运行 Docker 镜像。

服务器配置

为了让 MCP 客户端(如 Claude Desktop 或 VSCode Cline)连接到 mcp-server-unitycatalog 服务器,您需要在客户端的配置文件中添加 MCP 服务器的配置信息。以下是分别使用 'uv' 和 Docker 启动服务器的配置示例,请根据您的实际情况选择其一添加到客户端的配置文件中(例如 'claude_desktop_config.json' 或 'cline_mcp_settings.json')。

使用 uv 的配置

{
  "mcpServers": {
    "unitycatalog": {
      "command": "uv",
      "args": [
        "--directory",
        "/<path to your local git repository>/mcp-server-unitycatalog",  //  请替换为您的本地仓库路径
        "run",
        "mcp-server-unitycatalog",
        "--uc_server",
        "<your unity catalog url>",      // 请替换为您的 Unity Catalog 服务器 URL
        "--uc_catalog",
        "<your catalog name>",         // 请替换为您的 Unity Catalog Catalog 名称
        "--uc_schema",
        "<your schema name>"          // 请替换为您的 Unity Catalog Schema 名称
      ]
    }
  }
}

使用 Docker 的配置

{
  "mcpServers": {
    "unitycatalog": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "mcp/unitycatalog",
        "--uc_server",
        "<your unity catalog url>",      // 请替换为您的 Unity Catalog 服务器 URL
        "--uc_catalog",
        "<your catalog name>",         // 请替换为您的 Unity Catalog Catalog 名称
        "--uc_schema",
        "<your schema name>"          // 请替换为您的 Unity Catalog Schema 名称
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'unitycatalog' (可以自定义,用于在客户端中标识该 MCP 服务器)
  • 'command': 启动服务器的命令,'uv' 或 'docker'
  • 'args': 命令参数列表,包括:
    • '--directory': 当使用 'uv' 时,指定本地仓库路径 (Docker 方式不需要)
    • 'run mcp-server-unitycatalog': 使用 'uv' 运行时,运行 mcp-server-unitycatalog
    • 'run --rm -i mcp/unitycatalog': 使用 'docker' 运行时,运行名为 'mcp/unitycatalog' 的 Docker 镜像
    • '--uc_server': Unity Catalog 服务器的 base URL (必填)
    • '--uc_catalog': Unity Catalog Catalog 名称 (必填)
    • '--uc_schema': Unity Catalog Schema 名称 (必填)
    • '--uc_token': Unity Catalog 访问 Token (可选,如果需要身份验证)
    • '--uc_verbosity': 日志级别 (可选,默认为 'warn')
    • '--uc_log_directory': 日志文件存储目录 (可选,默认为 '.mcp_server_unitycatalog')

基本使用方法

  1. 启动 MCP 服务器: 根据选择的部署方式('uv' 或 Docker)启动 mcp-server-unitycatalog 服务器。
  2. 配置 MCP 客户端: 将上述生成的配置信息添加到您的 MCP 客户端(如 Claude Desktop 或 VSCode Cline)的配置文件中。
  3. 在 LLM 中使用工具: 在 LLM 客户端中,您应该能够看到名为 'unitycatalog' 的 MCP 服务器。LLM 可以请求列出可用的工具,并调用 Unity Catalog 相关的工具来执行操作,例如查询函数信息、创建新函数等。 具体的工具调用方式取决于 LLM 客户端的功能。

注意: 启动服务器前,请务必替换配置信息中的占位符(例如 '<your unity catalog url>', '<your catalog name>', '<your schema name>')为您的实际 Unity Catalog 环境信息。

信息

分类

AI与计算