Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Apache Pinot MCP Server

de startreedataversión 5.0.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.startreedata/mcp-pinot

Instalar

Resumen

Descripción del creador (original en inglés)

Query and manage Apache Pinot through MCP with typed tools and preview-first safety.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Otros
  • Debes completar: PINOT_PASSWORD, PINOT_TOKEN

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: PINOT_CONTROLLER_URL, PINOT_BROKER_URL, PINOT_USERNAME, PINOT_PASSWORD, PINOT_TOKEN, PINOT_USE_MSQE, MCP_TRANSPORT, AUTH_PROVIDER

Los valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "pinot": {
      "command": "uvx",
      "args": [
        "mcp-pinot-server"
      ],
      "env": {
        "PINOT_CONTROLLER_URL": "your-value",
        "PINOT_BROKER_URL": "your-value",
        "PINOT_USERNAME": "your-value",
        "PINOT_PASSWORD": "your-value",
        "PINOT_TOKEN": "your-value",
        "PINOT_USE_MSQE": "your-value",
        "MCP_TRANSPORT": "your-value",
        "AUTH_PROVIDER": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add pinot --env PINOT_CONTROLLER_URL=your-value --env PINOT_BROKER_URL=your-value --env PINOT_USERNAME=your-value --env PINOT_PASSWORD=your-value --env PINOT_TOKEN=your-value --env PINOT_USE_MSQE=your-value --env MCP_TRANSPORT=your-value --env AUTH_PROVIDER=your-value -- uvx mcp-pinot-server

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "pinot": {
      "command": "uvx",
      "args": [
        "mcp-pinot-server"
      ],
      "env": {
        "PINOT_CONTROLLER_URL": "your-value",
        "PINOT_BROKER_URL": "your-value",
        "PINOT_USERNAME": "your-value",
        "PINOT_PASSWORD": "your-value",
        "PINOT_TOKEN": "your-value",
        "PINOT_USE_MSQE": "your-value",
        "MCP_TRANSPORT": "your-value",
        "AUTH_PROVIDER": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "pinot": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-pinot-server"
      ],
      "env": {
        "PINOT_CONTROLLER_URL": "your-value",
        "PINOT_BROKER_URL": "your-value",
        "PINOT_USERNAME": "your-value",
        "PINOT_PASSWORD": "your-value",
        "PINOT_TOKEN": "your-value",
        "PINOT_USE_MSQE": "your-value",
        "MCP_TRANSPORT": "your-value",
        "AUTH_PROVIDER": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • PINOT_CONTROLLER_URL env
    HTTP(S) endpoint of the Pinot Controller.
  • PINOT_BROKER_URL env
    HTTP(S) endpoint of the Pinot Broker.
  • PINOT_USERNAME env
    Optional Pinot basic-auth username.
  • PINOT_PASSWORD secreto env
    Optional Pinot basic-auth password.
  • PINOT_TOKEN secreto env
    Optional Pinot bearer token. Overrides username and password when set.
  • PINOT_USE_MSQE env
    Whether to enable Pinot multi-stage query engine support.
  • MCP_TRANSPORT env
    Transport mode: 'stdio' (default, for desktop clients) or 'http'.
  • AUTH_PROVIDER env
    Inbound auth provider for HTTP transport (e.g. 'oauth'); required to bind a non-loopback host.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub startreedata, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 18354 servidores de esta categoría
  • Publicado en el registro más recientemente que el 63% de los otros 18354 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 18354 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Apache Pinot MCP Server?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

Debes completar: PINOT_PASSWORD, PINOT_TOKEN

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (5.0.0) llegó al registro hace 27 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv), Docker en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, Qemu MCP

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Spec Driven Development

de formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Se ejecuta en tu computadora★ 440MITActualizado hace 14 meses
Instalar

Remote Desktop Commander

de desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Se ejecuta en la nube★ 211Actualizado anteayer
Instalar

Qemu MCP

de 0xmortuex

Boot and drive QEMU VMs from an AI agent: keys, screenshots, serial. No guest agent.

Se ejecuta en tu computadoraActualizado hoy
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

Pinot MCP Server

Table of Contents

  • Overview
  • Features
  • Quick Start
  • Configuration Reference
  • Docker Build
  • Claude Desktop Integration
  • Try a Prompt
  • Security and Vulnerability Reporting
  • Developer Notes
  • Repo Maintainer

Overview

This project is a Python-based Model Context Protocol (MCP) server for interacting with Apache Pinot. It is built using the FastMCP framework. It is designed to integrate with Claude Desktop to enable real-time analytics and metadata queries on a Pinot cluster.

It allows you to

  • List tables, segments, and schema info from Pinot
  • Execute read-only SQL queries
  • View index/column-level metadata
  • Designed to assist business users via Claude integration
  • and much more.

Features

  • Every tool advertises typed input and output JSON Schemas, MCP risk annotations, and failure-recovery guidance for agent planning.
  • Large query, table, segment-name, and segment-metadata responses use bounded pages with continuation metadata instead of returning unbounded agent context.
  • Read-only SQL is parsed and enforced before execution; validation, permission, and transient connectivity errors are surfaced as actionable MCP errors.
  • Every mutating tool supports dry_run; always preview the exact target and payload before applying. Applying requires the preview's short-lived, one-time confirmation_token, including for table-filter reloads. A preview is not a guarantee that Pinot will accept the later write.
  • Single-purpose schema and table-config inspection tools avoid ambiguous combined operations: use get_schema and get_table_config independently.

MCP Tool Contract

Tool names are case-sensitive and use underscores. Version 4 renamed four tools to make every operation verb-first; clients using the former noun-first names must update their calls.

ToolPurpose
test_connectionDiagnose broker, controller, and query connectivity.
list_tablesList visible Pinot table names.
get_schemaGet one table's column schema.
get_table_configGet one table's indexing and ingestion configuration.
get_table_sizeGet reported and estimated storage size for one table.
list_segmentsList exact segment names for one table.
list_segment_metadataPage through metadata for a table's segments.
get_segment_index_metadataInspect per-column indexes for one exact segment.
read_queryRun one read-only Pinot SQL query.
begin_investigation / query_incidentOpen and query an opt-in scoped evidence run.
get_trace / finish_investigationFetch recorded span edges and close with citations.
create_schema / update_schemaPreview or apply schema changes.
create_table_config / update_table_configPreview or apply table-config changes.
reload_table_filtersPreview or apply the configured table-filter YAML.

For every schema, table-config, or table-filter change, first call the same tool with dry_run=true, present the preview to the user, and call it with dry_run=false and the preview's one-time confirmation_token only after confirmation. Editing a table-filter file after preview invalidates its token. Pinot performs authoritative validation during table/schema apply calls, so a write can still fail after a successful preview.

Query execution evidence

read_query returns the existing page fields plus metadata. For example, {"query":"SELECT service, count(*) FROM events GROUP BY service","limit":20} returns metadata.completeness as complete, partial, or unknown, along with native server counts, query ID, query SHA-256, and bounded execution statistics. Missing resultTable or required execution flags remains unknown. A partial server response or group limit remains partial; an empty page is not proof of healthy telemetry. Native complete describes this bounded SQL execution, not coverage of the incident window or the entire dataset. row_limit_reached is separate from execution completeness and paging.

The MCP query path uses pinotdb>=9.2.1 through cursor.execute_native() for submission and decoding. The SDK exposes full structured query_statistics; MCP projects bounded counters and safe execution evidence into the tool response. The path submits once and does not switch transports after an ambiguous failure. Its unique clientQueryId and applicationName=mcp-pinot support optional correlation with query history or broker logs when available. Python integrations can call execute_query_with_metadata(..., timeout_seconds=5) to bound native and HTTP timeouts without modifying shared configuration. HTTP timeouts are inactivity limits; late results are rejected, but this is not native cancellation.

Tool results, including tool errors, include timing evidence in the standard MCP response _meta["io.github.startreedata/mcp-pinot"]. Existing tool data and output schemas are preserved. For example, this response metadata fragment requires no log access:

{

"_meta": { "io.github.startreedata/mcp-pinot": { "request_id": "38cb1444b20c446a96bc272531f34518", "status": "success", "admitted": true, "queue_wait_ms": 12, "execution_ms": 84, "duration_ms": 97 } } }

MCP rate-limit protocol errors preserve their JSON-RPC code and message and carry the same envelope in error.data._meta["io.github.startreedata/mcp-pinot"]. Other transport/protocol failures or cancellation may not produce a tool result.

With MCP_TRANSPORT=http on the default port 8080, a FastMCP Python client reads wire _meta through result.meta. call_tool_mcp also returns tool errors:

from fastmcp import Client

async def read_timing(): async with Client("http://localhost:8080/mcp") as client: result = await client.call_tool_mcp("read_query", {"query": "SELECT 1"}) return result.meta["io.github.startreedata/mcp-pinot"]

Orchestrators should read .meta and forward this evidence to the agent when the host does not automatically surface protocol metadata.

queue_wait_ms measures only waiting for the MCP concurrency semaphore. execution_ms measures the admitted MCP tool pipeline, including SDK HTTP work and validation; admitted=false means that pipeline never started. duration_ms covers the server's tool invocation, including admission checks, and excludes model reasoning and client delivery. status is success or error for the MCP outcome; for read_query, separately inspect metadata.completeness.

An agent can use queue_wait_ms to identify MCP admission delay, then inspect read_query's metadata.native_stats.timeUsedMs for Pinot's native query duration when present. Native query time overlaps execution_ms; their different timer boundaries do not support exact network-overhead subtraction. The shared request_id also appears in query metadata and native clientQueryId, enabling optional history/log correlation when more context is needed.

Response timing metadata contains no secrets, principal identifiers, tool arguments, SQL, or rows. Audit logs record the same timings with hashed principal identifiers. MCP_MAX_RESPONSE_BYTES limits the tool payload before this bounded timing envelope is added; it excludes the added observability metadata. Cancellation is audit-only when no response is returned and does not prove that Pinot execution stopped.

Incident tools are disabled until the server starts with --incident-profiles. See the incident evidence guide and example profile for configuration and a workflow using begin_investigation, query_incident, optional get_trace, and finish_investigation. Evidence queries expose the same response _meta timings and native request IDs when reported; log access is optional. Runs are owner-bound and budgeted; complete execution still leaves root-cause hypotheses and dataset coverage unvalidated. This first version uses bounded in-memory state in one process.

Pinot MCP in Action

See Pinot MCP in action below:

Fetching Metadata
Fetching Data, followed by analysis

Prompt: Can you do a histogram plot on the GitHub events against time

Sample Prompts

Once Claude is running, click the hammer 🛠️ icon and try these prompts:

  • Can you help me analyse my data in Pinot? Use the Pinot tool and look at the list of tables to begin with.
  • Can you do a histogram plot on the GitHub events against time

Quick Start

Prerequisites
Install uv (if not already installed)

uv is a fast Python package installer and resolver, written in Rust. It's designed to be a drop-in replacement for pip with significantly better performance.

curl -LsSf https://astral.sh/uv/install.sh | sh

Reload your bashrc/zshrc to take effect. Alternatively, restart your terminal

source ~/.bashrc

Installation
# Clone the repository

git clone https://github.com/startreedata/mcp-pinot.git cd mcp-pinot uv pip install -e . # Install dependencies

For development dependencies (including testing tools), use:

uv pip install -e .[dev]

Configure Pinot Cluster

The MCP server expects a uvicorn config style .env file in the root directory to configure the Pinot cluster connection. This repo includes a sample .env.example file that assumes a pinot quickstart setup.

mv .env.example .env

Configuration Reference

The server loads configuration from environment variables and from a .env file found from the current working directory. Process environment variables take precedence over .env, so deployment-time settings cannot be silently replaced by a checked-out file.

Common Profiles
Use caseRequired settingsNotes
Claude DesktopMCP_TRANSPORT=stdioDefault and recommended for local desktop use; no HTTP listener is started.
Local HTTPMCP_TRANSPORT=http, MCP_HOST=127.0.0.1Explicit local web profile. Accessible only from the same machine.
Remote HTTP/HTTPSMCP_TRANSPORT=http, MCP_HOST=0.0.0.0, MCP_ALLOWED_HOSTS= , AUTH_PROVIDER=oauth\static\oauth+staticThe server refuses non-loopback HTTP/HTTPS binds unless an auth provider is active, and a wildcard bind requires an explicit Host allowlist. Use oauth+static to serve interactive users and one trusted backend at once. Use TLS directly or an authenticated reverse proxy.
Helm exposureservice.enabled=true, mcp.host=0.0.0.0, mcp.oauth.enabled=trueHelm defaults are local-only and render no Service unless exposure is explicitly enabled.
Pinot Conne

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx