VISTA Data MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ES_HOST | No | Elasticsearch hostname (required if using Elasticsearch) | |
| ES_PORT | No | Port for Elasticsearch | 9200 |
| ES_USER | No | Username for Elasticsearch basic auth | |
| ES_SECURE | No | Use HTTPS for Elasticsearch | true |
| ES_MAX_HITS | No | Max hits per Elasticsearch search | 500 |
| ES_PASSWORD | No | Password for Elasticsearch basic auth | |
| CLICKHOUSE_HOST | No | ClickHouse server hostname (required if using ClickHouse) | |
| CLICKHOUSE_PORT | No | HTTP(S) port for ClickHouse | 8443 |
| CLICKHOUSE_USER | No | ClickHouse username | default |
| ES_VERIFY_CERTS | No | Verify SSL certificates for Elasticsearch | true |
| ES_QUERY_TIMEOUT | No | Elasticsearch query timeout in seconds | 30 |
| CLICKHOUSE_SECURE | No | Use HTTPS for ClickHouse | true |
| CLICKHOUSE_DATABASE | No | Default ClickHouse database | default |
| CLICKHOUSE_MAX_ROWS | No | Max rows per ClickHouse query | 500 |
| CLICKHOUSE_PASSWORD | No | ClickHouse password | |
| CLICKHOUSE_QUERY_TIMEOUT | No | ClickHouse query timeout in seconds | 30 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_clickhouseA | Run a read-only SQL query against ClickHouse (telemetry data). Only SELECT, SHOW, DESCRIBE, and EXPLAIN statements are allowed. Results are capped at 500 rows by default. Use this for product telemetry: active instances, version distribution, storage engines, deployment types, CPU architecture, cluster metrics. Args: sql: A read-only SQL statement. Examples: - SELECT count() FROM telemetry WHERE product = 'MySQL' - SELECT version, count() as n FROM telemetry GROUP BY version ORDER BY n DESC - SHOW TABLES |
| ch_list_databasesA | List all databases accessible in the ClickHouse instance. |
| ch_list_tablesA | List all tables in a ClickHouse database. Args: database: Database name. If omitted, lists tables in the default database. |
| ch_describe_tableA | Show the schema (columns, types, comments) of a ClickHouse table. Args: table: Table name. database: Database name. If omitted, uses the default database. |
| ch_sample_dataA | Get sample rows from a ClickHouse table (up to 100 rows). Useful for understanding telemetry data structure before writing queries. Args: table: Table name. database: Database name. If omitted, uses the default database. limit: Number of rows to return (1-100, default 10). |
| search_elasticsearchA | Run an Elasticsearch query (JSON DSL) against download/package data. Use this for product download data: downloads by product, package type, OS, components, growth rates, EOL packages, Pro-builds. Args: index: The Elasticsearch index to search. query_body: A JSON string containing the Elasticsearch query DSL. Supports match, term, range, bool, aggregations, etc. size: Max documents to return (default 500). Examples: - {"query": {"match": {"product": "postgresql"}}, "size": 20} - {"size": 0, "aggs": {"by_package": {"terms": {"field": "package_type"}}}} - {"query": {"range": {"date": {"gte": "2025-01-01"}}}} |
| es_list_indicesA | List all Elasticsearch indices with document counts and sizes. Use this to discover available download/package data indices. |
| es_get_mappingA | Show the field mapping (schema) for an Elasticsearch index. Args: index: The index name to inspect. |
| es_sample_dataA | Get sample documents from an Elasticsearch index (up to 100). Useful for understanding download data structure before writing queries. Args: index: The index name. size: Number of documents to return (1-100, default 10). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool is clearly scoped to either ClickHouse or Elasticsearch via distinct prefixes (ch_/es_) and a distinct action (list, describe, sample, query). Within each backend, there is no overlap between listing resources, inspecting schema, sampling data, and executing queries.
The ch_ and es_ prefixes provide a consistent pattern for most tools, but the generic query tools (query_clickhouse, search_elasticsearch) break the pattern by placing the verb first and omitting the prefix. Additionally, 'describe' vs 'get' are used inconsistently across backends, but the overall system remains readable.
Nine tools is a well-scoped set for a dual-backend data exploration server. Each tool serves a distinct purpose, covering discovery, schema inspection, sampling, and querying for both ClickHouse and Elasticsearch without excess.
The server provides a complete read-only workflow for both data sources: listing available resources (databases/indices/tables), inspecting schemas/mappings, previewing data, and running arbitrary queries. No critical operations are missing for its stated purpose.