SM

startreedata/mcp-pinot

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

17 stars 13 forks 质量 84 趋势 41Apache-2.0

MCP Server for Apache Pinot

概览

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. - 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.

README

以下为原文 README 节选,完整内容请查看原文。

Pinot MCP Server

Table of Contents

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.

Tool Purpose
test_connection Diagnose broker, controller, and query connectivity.
list_tables List visible Pinot table names.
get_schema Get one table’s column schema.
在 GitHub 查看完整 README

安装

docker run --name pinot-quickstart -p 2123:2123 -p 9000:9000 -p 8000:8000 -d apachepinot/pinot:1.5.1 QuickStart -type batch
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "pinot_mcp": { "command": "/path/to/uv", "args": [ "--directory", "/path/to/mcp-pinot-repo", "run", "mcp_pinot/server.py" ], "env": { // You can also include your .env config here } } } }