# Apache Pinot MCP Server

Подключает Claude Code к Apache Pinot: агент сможет читать данные и метаданные, а также подготовить изменения схемы или конфигурации к проверке.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 17
- Автор: startreedata
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/startreedata/mcp-pinot
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/apache-pinot-mcp-server

## Что делает

Сервер на Python связывает Apache Pinot с агентом через MCP. Он умеет проверять соединение, просматривать таблицы, схемы, сегменты и индексы, а также выполнять запросы только для чтения. Большие ответы выдаются страницами, чтобы не загружать в контекст весь результат сразу.

Изменение схемы, конфигурации таблицы или фильтров сначала нужно запросить в режиме `dry_run=true`. Сервер возвращает предварительный просмотр и одноразовый токен подтверждения; применить изменение можно после согласования с пользователем. Предварительная проверка не гарантирует, что Pinot примет запись.

Для подключения нужны адреса контроллера и брокера Pinot, а также параметры учётных данных. Например, Claude Code можно настроить командой `claude mcp add mcp-pinot -e PINOT_PASSWORD=<PINOT_PASSWORD> -e PINOT_TOKEN=<PINOT_TOKEN> -- uvx mcp-pinot-server`; без адресов кластера серверу не к чему подключаться.

## Требования
- Нужно: Python и uv (команды через uvx)
- Переменные окружения: `PINOT_CONTROLLER_URL`, `PINOT_BROKER_URL`, `PINOT_USERNAME`, `PINOT_PASSWORD`, `PINOT_TOKEN`, `PINOT_USE_MSQE`, `MCP_TRANSPORT`, `AUTH_PROVIDER` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env PINOT_CONTROLLER_URL=<PINOT_CONTROLLER_URL> --env PINOT_BROKER_URL=<PINOT_BROKER_URL> --env PINOT_USERNAME=<PINOT_USERNAME> --env PINOT_PASSWORD=<PINOT_PASSWORD> --env PINOT_TOKEN=<PINOT_TOKEN> --transport stdio apache-pinot-mcp-server -- uvx mcp-pinot-server
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-pinot-server <команда>

### Codex

**Командой платформы**
```bash
codex mcp add apache-pinot-mcp-server --env PINOT_CONTROLLER_URL=<PINOT_CONTROLLER_URL> --env PINOT_BROKER_URL=<PINOT_BROKER_URL> --env PINOT_USERNAME=<PINOT_USERNAME> --env PINOT_PASSWORD=<PINOT_PASSWORD> --env PINOT_TOKEN=<PINOT_TOKEN> -- uvx mcp-pinot-server
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-pinot-server <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "apache-pinot-mcp-server": {
            "command": "uvx",
            "args": [
                "mcp-pinot-server"
            ],
            "env": {
                "PINOT_CONTROLLER_URL": "<PINOT_CONTROLLER_URL>",
                "PINOT_BROKER_URL": "<PINOT_BROKER_URL>",
                "PINOT_USERNAME": "<PINOT_USERNAME>",
                "PINOT_PASSWORD": "<PINOT_PASSWORD>",
                "PINOT_TOKEN": "<PINOT_TOKEN>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-pinot-server <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "apache-pinot-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "mcp-pinot-server"
            ],
            "env": {
                "PINOT_CONTROLLER_URL": "<PINOT_CONTROLLER_URL>",
                "PINOT_BROKER_URL": "<PINOT_BROKER_URL>",
                "PINOT_USERNAME": "<PINOT_USERNAME>",
                "PINOT_PASSWORD": "<PINOT_PASSWORD>",
                "PINOT_TOKEN": "<PINOT_TOKEN>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-pinot-server <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e PINOT_CONTROLLER_URL=<PINOT_CONTROLLER_URL> -e PINOT_BROKER_URL=<PINOT_BROKER_URL> -e PINOT_USERNAME=<PINOT_USERNAME> -e PINOT_PASSWORD=<PINOT_PASSWORD> -e PINOT_TOKEN=<PINOT_TOKEN> apache-pinot-mcp-server uvx mcp-pinot-server
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from mcp-pinot-server <команда>

## Когда брать
- проверить соединение с брокером и контроллером Pinot
- посмотреть схемы и конфигурацию таблиц
- выполнить SQL-запрос только для чтения
- получить метаданные сегментов и индексов
- предварительно проверить изменение схемы или таблицы

## Примеры запросов агенту
- Покажи таблицы и схему таблицы `events` в Pinot.
- Выполни запрос только для чтения: посчитай записи по сервисам в таблице `events`.
- Подготовь изменение конфигурации таблицы в режиме предварительного просмотра и покажи, что изменится.

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
