PI API MCP Server
Um servidor MCP para interagir com a API do PI Dashboard.
Documentação
Servidor MCP da API PI
Um servidor Model Context Protocol (MCP) que fornece ferramentas e recursos padronizados para interagir com a API do Painel PI. Esta implementação permite que o Claude e outros assistentes de IA compatíveis com MCP acessem e gerenciem com segurança os recursos do Painel PI, incluindo categorias e gráficos.
Utilizando PI com MCP
O seguinte demonstra cenários de uso típicos para este Servidor MCP após a conclusão da configuração.
Autenticação Inicial:
- Execute as seguintes instruções para estabelecer uma conexão:
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álise de Gráficos:
- Se o gráfico ID 450 contiver informações de metadados, use o seguinte prompt:
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
Exemplo de Saída:

Instalação
Instalando via Smithery
Para instalar o pi-api-mcp-server para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install @mingzilla/pi-api-mcp-server --client claude
Instalação - Usando Docker (Recomendado)
- Nenhuma configuração do Servidor MCP necessária
- Configuração do arquivo do 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: Se o parâmetro --api-url não for fornecido na inicialização, o servidor solicitará que você configure a URL da API usando a ferramenta set-api-url antes de executar qualquer operação. Este design permite configuração flexível em ambientes onde a URL não é predeterminada na inicialização.
Localização do Arquivo de Configuração
Acesse a configuração do aplicativo Claude for Desktop em:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux: Use outras ferramentas por enquanto. Ex.: Cline - peça para mostrar o arquivo de configuração MCP
Ferramentas Disponíveis
Descoberta de Esquema
- get-filterable-attributes: Obtenha a lista de atributos que podem ser usados para filtragem examinando uma entidade de exemplo
Get the filterable attributes for chart entities
Gerenciamento de Conexão
- check-connection: Verifique se a URL da API atual e a autenticação são válidas
- set-api-url: Configure a URL base da API para todas as solicitações
Set the API URL to http://localhost:8224/pi/api/v2
Autenticação
- authenticate: Obtenha orientação sobre opções de autenticação
- authenticate-with-credentials: Autentique com nome de usuário e senha (opção de último recurso)
- keep-session-alive: Verifique e atualize o token de autenticação atual (também usado para autenticação baseada em token)
- logout: Invalide o token atual e encerre a sessão
- set-organization: Defina o ID da organização para solicitações subsequentes
Categorias
- list-categories: Liste todas as categorias com suporte a filtros
- get-category: Obtenha uma categoria por ID
- create-category: Crie uma nova categoria
- update-category: Atualize uma categoria existente
- delete-category: Exclua uma categoria
- list-category-objects: Liste todos os objetos de uma categoria específica
Gráficos
- list-charts: Liste todos os gráficos com suporte a filtros
- get-chart: Obtenha um gráfico por ID
- delete-chart: Exclua um gráfico
- export-chart: Exporte um gráfico em vários formatos
Recursos Disponíveis
- auth://status: Obtenha o status da autenticação
- categories://list: Liste todas as categorias
- categories://{id}: Obtenha uma categoria específica
- categories://{categoryId}/objects: Obtenha objetos de uma categoria específica
- charts://list: Liste todos os gráficos
- charts://{id}: Obtenha um gráfico específico
- charts://{id}/export/{format}: Exporte um gráfico em um formato específico
Prompts Disponíveis
- analyze-categories: Analise categorias no painel
- analyze-charts: Analise gráficos no painel
- compare-charts: Compare dados entre dois gráficos
- category-usage-analysis: Analise como as categorias estão sendo usadas nos gráficos
- use-filters: Mostra como usar filtros de forma eficaz com esta API
Exemplos de Integração com Claude
Aqui estão alguns exemplos de consultas para usar com o Claude após conectar o servidor:
Definir a URL da API
Please use the set-api-url tool to set the PI API URL to http://localhost:8224/pi/api/v2
Autenticação
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.
Trabalhando com Categorias
List all categories in the dashboard.
Get details about category with ID 123.
Trabalhando com Gráficos
List all the charts available in the dashboard.
Export chart with ID 456 as a PDF.
Usando 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.
Usando Prompts de Análise
Analyze the categories in the dashboard.
Compare data between charts 123 and 456.
Show me how to use filters effectively with this API.
Desenvolvimento
Execução Local
- Nota: você pode usar
start.shpara executar o servidor de desenvolvimento também.
# 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
Instalação via 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"
Configuração do Cliente MCP
Integração com Claude for Desktop:
Implementação Node.js
- Execute as instruções na seção "Execução Local"
- Certifique-se de que
./dependencies.shfoi executado para instalar as dependências necessárias - Implemente a seguinte configuração (Nota: "@mingzilla/pi-api-mcp-server" referencia o pacote instalado através da "Execução 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"
]
}
}
}
Desenvolvimento Local
- execute o servidor usando
./start.sh - defina a configuração com o caminho para o arquivo
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 Verificação de Desenvolvimento
- atualize o código -> inicie o servidor local -> teste o servidor local com o caminho do arquivo para index.js
- atualize o arquivo readme.md -> altere a seção de configuração do mcpServers: docker + node + npx
- ./publish.sh - publique no npm
- ./dockerBuild.sh -> ./dockerPublish.sh (edite o número da versão para corresponder ao package.json) -> teste a configuração docker
- envie o código para o github
Licença
Licença MIT
Autor
Ming Huang (mingzilla)