Vertica MCP Server
A Model Context Protocol (MCP) server for Vertica databases. Enables AI assistants to query and explore Vertica databases through natural language.
Safety-first design: Readonly mode by default. Write operations require explicit configuration.
Features
6 MCP Tools: Query execution, streaming, schema discovery
Readonly Protection: Only SELECT/SHOW/DESCRIBE/EXPLAIN/WITH queries by default
Large Dataset Streaming: Efficient batch processing (up to 1M rows)
Vertica-Optimized: Projection awareness, columnar query support
Production Ready: Connection pooling, SSL support, timeout configuration
Parameter Binding: SQL injection protection
Quick Start
Claude Code
Create your .env file with connection details:
Cursor
Create environment file
~/.cursor/vertica.env:
Configure
~/.cursor/mcp.json:
Restart Cursor
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Configuration
Required Variables
Optional Variables
Enabling Write Operations
To allow INSERT/UPDATE/DELETE/CREATE/DROP operations:
Warning: Only disable readonly mode if you understand the implications.
Available Tools
Query Execution
execute_query: Execute SQL with optional parameters
stream_query: Handle large datasets with configurable batching
Schema Discovery
get_table_structure: Table columns, types, constraints
list_tables: All tables in schema with metadata
list_views: All views with definitions
list_indexes: Vertica projections for optimization
Usage Examples
Query Data
Explore Schema
Analyze Performance
Stream Large Results
When querying large datasets, use the stream_query tool:
Default batch size: 1000 rows
Configurable batch size: 1-10,000 rows
Maximum rows: 1,000,000
Troubleshooting
Connection Failed
Verify:
Host and port are reachable
Database credentials are correct
User has required permissions
Permission Errors
User needs SELECT permissions on tables
User needs access to system catalogs (
v_catalog.*)
Query Timeouts
Increase timeout for complex queries:
Large Result Sets
Use stream_query instead of execute_query for queries returning >10,000 rows.
Requirements
Node.js >= 18.0.0
Vertica database (any recent version)
Network access to Vertica server
Support
Issues: GitHub Issues
Releases: GitHub Releases
License
MIT License - see LICENSE file.
Acknowledgments
This project's architecture and tool design are based on mcp-vertica by @nolleh.
Current Version: 1.3.5