Vertica数据库连接器

Vertica MCP服务器是一个用于Vertica数据库的连接管理工具,提供连接池管理、查询操作、模式管理和安全功能,适用于需要高效数据库连接和管理的场景。

  • by nolleh
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 nolleh/mcp-vertica

使用说明

MCP Vertica

🏆 Vertica MCP服务器的首次实现 • 了解更多

✅ 列在 模型上下文协议官方注册表

Vertica MCP(模型上下文协议)服务器

示例:MCP服务器设置

使用以下内容创建或编辑mcp客户端配置文件:

UVX

{
  "mcpServers": {
    "vertica": {
      "command": "uvx",
      "args": ["mcp-vertica"],
      "env": {
        "VERTICA_HOST": "localhost",
        "VERTICA_PORT": 5433,
        "VERTICA_DATABASE": "VMart",
        "VERTICA_USER": "dbadmin",
        "VERTICA_PASSWORD": "test_password",
        "VERTICA_CONNECTION_LIMIT": 10,
        "VERTICA_SSL": false,
        "VERTICA_SSL_REJECT_UNAUTHORIZED": true
      }
    }
  }
}

或者使用args

{
  "mcpServers": {
    "vertica": {
      "command": "uvx",
      "args": [
        "mcp-vertica",
        "--host=localhost",
        "--db-port=5433",
        "--database=VMart",
        "--user=dbadmin",
        "--password=test_password",
        "--connection-limit=10"
      ]
    }
  }
}

码头工人

{
  "mcpServers": {
    "vertica": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "nolleh/mcp-vertica"],
      "env": {
        "VERTICA_HOST": "localhost",
        "VERTICA_PORT": 5433,
        "VERTICA_DATABASE": "VMart",
        "VERTICA_USER": "dbadmin",
        "VERTICA_PASSWORD": "test_password",
        "VERTICA_CONNECTION_LIMIT": 10,
        "VERTICA_SSL": false,
        "VERTICA_SSL_REJECT_UNAUTHORIZED": true
      }
    }
  }
}

[!注意]

  • 对于布尔标志,如 --ssl 或 --ssl-reject-unauthorized只需添加标记(例如。, "--ssl")启用它,或省略它以禁用。
  • 对于空密码,请使用如上所示的空字符串。

特性

数据库连接管理

  • 具有可配置限制的连接池
  • SSL/TLS支持
  • 自动连接清理
  • 连接超时处理

查询操作

  • 执行SQL查询
  • 批量流式传输大型查询结果
  • 复制数据操作
  • 交易管理

模式管理

  • 表结构检查
  • 指标管理
  • 视图管理
  • 约束信息
  • 列详情

安全特性

  • 操作级权限(INSERT、UPDATE、DELETE、DDL)
  • 特定于架构的权限
  • SSL/TLS支持
  • 日志中的密码屏蔽

工具

数据库操作

  1. execute_query

    • 执行SQL查询
    • 支持所有SQL操作
  2. stream_query

    • 批量流式传输大型查询结果
    • 可配置的批量大小
  3. copy_data

    • 使用COPY命令进行批量数据加载
    • 适用于大型数据集

模式管理

  1. get_table_structure

    • 获取详细的表格结构
    • 列信息
    • 约束条件
  2. list_indexes

    • 列出表的所有索引
    • 索引类型和唯一性
    • 列信息
  3. list_views

    • 列出架构中的所有视图
    • 查看定义

配置

环境变量

VERTICA_HOST=localhost
VERTICA_PORT=5433
VERTICA_DATABASE=VMart
VERTICA_USER=newdbadmin
VERTICA_PASSWORD=vertica
VERTICA_CONNECTION_LIMIT=10
VERTICA_SSL=false
VERTICA_SSL_REJECT_UNAUTHORIZED=true

操作权限

ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=false

架构权限

SCHEMA_INSERT_PERMISSIONS=schema1:true,schema2:false
SCHEMA_UPDATE_PERMISSIONS=schema1:true,schema2:false
SCHEMA_DELETE_PERMISSIONS=schema1:true,schema2:false
SCHEMA_DDL_PERMISSIONS=schema1:true,schema2:false

安装

通过Smithery安装

通过以下方式自动安装适用于Claude Desktop的Vertica数据库连接器 史密瑟里:

npx -y @smithery/cli install @nolleh/mcp-vertica --client claude

手动安装

打开您最喜欢的mcp客户端的配置文件,然后进行配置 uvx mcp-vertica

示例:Mcp服务器设置

发展

调试模式

使用Docker运行时,您可以通过设置 DEBUG 环境变量:

# Run with maximum verbosity (-vvv)
docker run -e DEBUG=3 -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest

# Run with medium verbosity (-vv)
docker run -e DEBUG=2 -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest

# Pass additional arguments
docker run -e EXTRA_ARGS="--connection-limit=20" -e VERTICA_HOST=localhost ... nolleh/mcp-vertica:latest

在 docker-compose.yml:

environment:
  DEBUG: 3  # 0=none, 1=-v, 2=-vv, 3=-vvv
  EXTRA_ARGS: "--connection-limit=20"  # Optional additional arguments

附录:用于测试,VerticaDB Docker编写示例

version: "3.8"

services:
  vertica:
    # image: vertica/vertica-ce:11.1.0-0
    image: vertica/vertica-ce:latest
    platform: linux/amd64
    container_name: vertica-ce
    environment:
      VERTICA_MEMDEBUG: 2
    ports:
      - "5433:5433"
      - "5444:5444"
    volumes:
      - vertica_data:/home/dbadmin/VMart
    healthcheck:
      test:
        [
          "CMD",
          "/opt/vertica/bin/vsql",
          "-h",
          "localhost",
          "-d",
          "VMart",
          "-U",
          "dbadmin",
          "-c",
          "SELECT 1",
        ]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s
    restart: unless-stopped

  mcp-vertica:
    image: nolleh/mcp-vertica:latest
    container_name: mcp-vertica
    ports:
      - "8081:8081"
    environment:
      # Transport mode
      TRANSPORT: http
      PORT: 8081
      # Debug settings (0=none, 1=-v, 2=-vv, 3=-vvv)
      DEBUG: 3  # Set to 3 for maximum verbosity
      # Extra command line arguments (optional)
      # EXTRA_ARGS: "--some-flag"
      # Vertica connection settings
      VERTICA_HOST: vertica
      VERTICA_PORT: 5433
      VERTICA_DATABASE: VMart
      VERTICA_USER: dbadmin
      VERTICA_PASSWORD: ""
      VERTICA_CONNECTION_LIMIT: 10
      VERTICA_SSL: "false"
    depends_on:
      vertica:
        condition: service_healthy

volumes:
  vertica_data:
    driver: local

然后按照以下指令运行服务器 示例:Mcp服务器设置, 然后看到一切正常

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。