mcpField
M
MCP Vertica

MCP Vertica

本地服务
github.com/nolleh数据库751 周前更新

关于 MCP Vertica

MCP Vertica 将 MCP 客户端连接到 Vertica 数据库,以执行查询和管理架构。它支持结果流式传输、批量加载、连接控制,以及按操作和架构配置权限。

主要功能

  1. 01执行 SQL 查询
  2. 02分批流式传输查询结果
  3. 03使用 COPY 批量加载数据
  4. 04检查表、索引和视图
  5. 05管理事务与连接
  6. 06配置操作和架构权限

适用场景

  1. 01对 Vertica 数据库执行 SQL
  2. 02分批处理大型查询结果
  3. 03使用 COPY 加载大型数据集
  4. 04按操作和架构限制写入或 DDL 权限

MCP 相关

向 MCP 客户端提供 Vertica 查询、数据加载和架构管理工具。可通过 uvx 或 Docker 配置供客户端使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vertica": {
"command": "uvx",
"args": [
"mcp-vertica"
]
}
}
}
启动命令uvx mcp-vertica

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-vertica

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai Security Assessment Badge

MCP Vertica

PyPI version License: MIT Downloads smithery badge MCP Community

🏆 首个 Vertica MCP 服务实现 • 了解更多

✅ 已列入 Model Context Protocol 官方注册表

Vertica MCP(model-context-protocol)服务

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"
      ]
    }
  }
}
Docker
{
  "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 安装

通过 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 Compose 示例
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 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。