VISTA Data MCP Server

VISTA Data MCP Server

Read-only MCP server for querying ClickHouse (product telemetry) and Elasticsearch (download analytics), built for Percona VISTA.

Category
Visit Server

README

VISTA Data MCP Server

Read-only MCP server for querying ClickHouse (product telemetry) and Elasticsearch (download analytics). Built for Percona VISTA.

Install

curl -fsSL https://raw.githubusercontent.com/Percona-Lab/vista-data-mcp/main/install-vista-data-mcp | bash

The installer will:

  1. Install uv if needed
  2. Ask you to choose Remote (default) or Local mode
  3. Configure Claude Desktop and Claude Code automatically
  4. Install the VISTA plugin

Remote mode — connects to the shared Percona server over VPN. No credentials, no clone, no local install. Most users choose this.

Local mode — for users with their own ClickHouse or Elasticsearch credentials who want to run off-VPN (development, custom data sources).

Re-run the same command to update or change mode.


Tools

ClickHouse (telemetry)

Tool Description
query_clickhouse Run any read-only SQL (SELECT, SHOW, DESCRIBE, EXPLAIN)
ch_list_databases Show all accessible databases
ch_list_tables Show tables in a database
ch_describe_table Show column names, types, and comments
ch_sample_data Get sample rows from a table

Elasticsearch (downloads)

Tool Description
search_elasticsearch Run an Elasticsearch query (JSON DSL)
es_list_indices Show all indices with doc counts and sizes
es_get_mapping Show field mapping (schema) for an index
es_sample_data Get sample documents from an index

All results are returned as Markdown tables. Only read-only queries are allowed.


Manual Install (alternative)

If you prefer not to use the installer:

Claude Code (CLI)

claude mcp add vista-data \
  -e CLICKHOUSE_HOST=your-ch-host \
  -e CLICKHOUSE_PORT=8443 \
  -e CLICKHOUSE_USER=default \
  -e CLICKHOUSE_PASSWORD=your-ch-password \
  -e CLICKHOUSE_DATABASE=default \
  -e CLICKHOUSE_SECURE=true \
  -e ES_HOST=your-es-host \
  -e ES_PORT=9200 \
  -e ES_USER=your-es-user \
  -e ES_PASSWORD=your-es-password \
  -e ES_SECURE=true \
  -- uvx --from git+https://github.com/Percona-Lab/vista-data-mcp vista-data-mcp

Development

git clone https://github.com/Percona-Lab/vista-data-mcp.git
cd vista-data-mcp
cp .env.example .env
# Edit .env with your credentials
uv run mcp_server.py

Safety

  • Read-only: ClickHouse allows only SELECT, SHOW, DESCRIBE, EXPLAIN. Elasticsearch uses search API only (no indexing).
  • Mutation blocking: INSERT, UPDATE, DELETE, DROP, ALTER, CREATE, TRUNCATE are rejected
  • Row/hit limits: Results capped at 500 (configurable via CLICKHOUSE_MAX_ROWS / ES_MAX_HITS)
  • Query timeout: 30 seconds default (configurable via CLICKHOUSE_QUERY_TIMEOUT / ES_QUERY_TIMEOUT)
  • Identifier sanitization: Database and table names validated against injection

Environment Variables

ClickHouse

Variable Required Default Description
CLICKHOUSE_HOST Yes* ClickHouse server hostname
CLICKHOUSE_PORT No 8443 HTTP(S) port
CLICKHOUSE_USER No default Username
CLICKHOUSE_PASSWORD No "" Password
CLICKHOUSE_DATABASE No default Default database
CLICKHOUSE_SECURE No true Use HTTPS
CLICKHOUSE_QUERY_TIMEOUT No 30 Timeout in seconds
CLICKHOUSE_MAX_ROWS No 500 Max rows per query

Elasticsearch

Variable Required Default Description
ES_HOST Yes* Elasticsearch hostname
ES_PORT No 9200 Port
ES_USER No "" Username (for basic auth)
ES_PASSWORD No "" Password
ES_SECURE No true Use HTTPS
ES_VERIFY_CERTS No true Verify SSL certificates
ES_QUERY_TIMEOUT No 30 Timeout in seconds
ES_MAX_HITS No 500 Max hits per search

*Only required if you want to use that data source. Tools for unconfigured sources return a helpful message.


Part of the Alpine Toolkit

Built with CAIRN for VISTA.

License

Apache 2.0

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured