PI API MCP Server

by mingzilla
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides containerized deployment of the PI API MCP server, simplifying installation and configuration in various environments

  • Supports execution through Node.js, allowing direct execution of the server through the Node.js runtime

Servidor PI API MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas y recursos estandarizados para interactuar con la API de PI Dashboard. Esta implementación permite a Claude y a otros asistentes de IA compatibles con MCP acceder y gestionar de forma segura los recursos de PI Dashboard, incluyendo categorías y gráficos.

Utilizando PI con MCP

A continuación se muestran escenarios de uso típicos para este servidor MCP después de completar la configuración.

Autenticación inicial:

  • Ejecute las siguientes instrucciones para establecer una conexión:
Ensure the PI API MCP server is running Set the API URL to http://localhost:8224/pi/api/v2 Use the authenticate tool for authentication guidance Check the connection status to verify everything is working List two charts from the dashboard

Análisis de gráficos:

  • Si el ID del gráfico 450 contiene información de metadatos, utilice el siguiente mensaje:
Retrieve the metadata from chart ID 450 Extract the chart JSON data from ID 450 Identify chart IDs associated with claims Obtain JSON data for the identified charts Analyze the data to generate actionable insights

Ejemplo de salida:

Instalación

Instalación mediante herrería

Para instalar pi-api-mcp-server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @mingzilla/pi-api-mcp-server --client claude

Instalación - Usando Docker (Recomendado)

  • No es necesaria la configuración del servidor MCP
  • Configuración del archivo de configuración del cliente MCP:
{ "mcpServers": { "pi-api": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "API_URL=http://localhost:8224/pi/api/v2", "-e", "PI_API_KEY=XXXXXXXX", "mingzilla/pi-api-mcp-server" ], "disabled": false, "autoApprove": [ "keep-session-alive", "check-connection", "authenticate", "list-categories", "get-category", "list-charts", "get-chart", "export-chart", "get-filterable-attributes", "export-chart" ] } } }

Nota importante : Si no se proporciona el parámetro --api-url durante la inicialización, el servidor le solicitará que configure la URL de la API con la herramienta set-api-url antes de ejecutar cualquier operación. Este diseño permite una configuración flexible en entornos donde la URL no está predeterminada al inicio.

Ubicación del archivo de configuración

Acceda a la configuración de su aplicación Claude for Desktop en:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: utilice otras herramientas por ahora, por ejemplo, Cline: pídale que le muestre el archivo de configuración de MCP

Herramientas disponibles

Descubrimiento de esquemas

  • get-filterable-attributes : obtiene la lista de atributos que se pueden usar para filtrar examinando una entidad de muestra
    Get the filterable attributes for chart entities

Gestión de conexiones

  • check-connection : comprueba si la URL de la API actual y la autenticación son válidas
  • set-api-url : configura la URL de la API base para todas las solicitudes
    Set the API URL to http://localhost:8224/pi/api/v2

Autenticación

  • autenticar : obtener orientación sobre las opciones de autenticación
  • authenticate-with-credentials : Autenticar con nombre de usuario y contraseña (opción de último recurso)
  • keep-session-alive : verifica y actualiza el token de autenticación actual (también se utiliza para la autenticación basada en token)
  • cerrar sesión : invalida el token actual y finaliza la sesión
  • set-organization : Establece el ID de la organización para solicitudes posteriores

Categorías

  • list-categories : enumera todas las categorías con soporte de filtrado
  • get-category : Obtener una categoría por ID
  • create-category : Crea una nueva categoría
  • update-category : Actualizar una categoría existente
  • delete-category : Eliminar una categoría
  • list-category-objects : enumera todos los objetos de una categoría específica

Gráficos

  • list-charts : enumera todos los gráficos con soporte de filtrado
  • get-chart : Obtener un gráfico por ID
  • delete-chart : Eliminar un gráfico
  • export-chart : Exportar un gráfico en varios formatos

Recursos disponibles

  • auth://status : Obtener el estado de autenticación
  • categorías://lista : Lista todas las categorías
  • categorías://{id} : Obtener una categoría específica
  • categorías://{categoryId}/objects : Obtener objetos para una categoría específica
  • charts://list : Lista todos los gráficos
  • charts://{id} : Obtener un gráfico específico
  • charts://{id}/export/{format} : Exportar un gráfico en un formato específico

Indicaciones disponibles

  • analizar-categorías : Analizar categorías en el panel
  • analizar-gráficos : Analizar gráficos en el panel
  • compare-charts : Compara datos entre dos gráficos
  • category-usage-analysis : Analiza cómo se utilizan las categorías en los gráficos
  • use-filters : muestra cómo usar filtros de manera efectiva con esta API

Ejemplos de integración de Claude

A continuación se muestran algunos ejemplos de consultas para utilizar con Claude después de conectarse al servidor:

Establecer la URL de la API

Please use the set-api-url tool to set the PI API URL to http://localhost:8224/pi/api/v2

Autenticación

Please help me authenticate to the PI API.
I have a token. Please use the keep-session-alive tool with my token: [YOUR_TOKEN_HERE]
Please check if my connection to the PI API is working properly.

Trabajar con categorías

List all categories in the dashboard.
Get details about category with ID 123.

Trabajar con gráficos

List all the charts available in the dashboard.
Export chart with ID 456 as a PDF.

Uso de filtros

Get the filterable attributes for chart entities to understand what fields I can filter on.
List charts with description containing "revenue" using the filter option.

Uso de indicaciones de análisis

Analyze the categories in the dashboard.
Compare data between charts 123 and 456.
Show me how to use filters effectively with this API.

Desarrollo

Ejecución local

  • Nota: también puedes utilizar start.sh para ejecutar el servidor de desarrollo.
# Clone the repository (SSH or HTTPS option) git clone git@github.com:mingzilla/pi-api-mcp-server.git cd pi-api-mcp-server # Install dependencies npm install ./dependencies.sh # Installs global dependencies to enable MCP client connection via "@mingzilla/pi-api-mcp-server" # Build the project npm run build # Execute the server npm start

Instalación de NPM

# Global installation npm install -g @mingzilla/pi-api-mcp-server # Direct execution via npx npx @mingzilla/pi-api-mcp-server --api-url "http://localhost:8224/pi/api/v2" --auth-token "XXXXXXXX"

Configuración del cliente MCP

Integración con Claude para escritorio:

Implementación de Node.js

  • Ejecute las instrucciones en la sección "Ejecución local"
  • Asegúrese de que ./dependencies.sh se haya ejecutado para instalar las dependencias necesarias
  • Implemente la siguiente configuración (Nota: "@mingzilla/pi-api-mcp-server" hace referencia al paquete instalado a través de "Ejecución local")
{ "mcpServers": { "pi-api": { "command": "npx", "args": [ "-y", "@mingzilla/pi-api-mcp-server", "--api-url", "http://localhost:8224/pi/api/v2", "--auth-token", "XXXXXXXX" ], "autoApprove": [ "keep-session-alive", "check-connection", "authenticate", "list-categories", "get-category", "list-charts", "get-chart", "export-chart", "get-filterable-attributes", "export-chart" ] } } }

Desarrollo local

  • Ejecute el servidor usando ./start.sh
  • Establezca la configuración con la ruta al archivo build/index.js
./start.sh
{ "mcpServers": { "pi-api": { "command": "node", "args": [ "/home/mingzilla/dev/tool-mcp-pi-api-server/build/index.js", "--api-url", "http://localhost:8224/pi/api/v2", "--auth-token", "XXXXXXXX" ], "autoApprove": [ "keep-session-alive", "check-connection", "authenticate", "list-categories", "get-category", "list-charts", "get-chart", "export-chart", "get-filterable-attributes", "export-chart" ] } } }

Lista de verificación de desarrollo

  • actualizar código -> iniciar servidor local -> probar servidor local con ruta de archivo a index.js
  • Actualizar el archivo readme.md -> cambiar la sección de configuración de mcpServers: docker + node + npx
  • ./publish.sh - publicar en npm
  • ./dockerBuild.sh -> ./dockerPublish.sh (edite el número de versión para que coincida con package.json) -> pruebe la configuración de Docker
  • enviar código a github

Licencia

Licencia MIT

Autor

Ming Huang (mingzilla)

ID: aa6hdqsegc