返回市场
派API麦普服务器

派API麦普服务器

作者:mingzilla5 星标更新:2025-05-04

项目介绍

PI API MCP Server

smithery 徽章

这是一个提供标准化工具和资源以与PI仪表板API交互的模型上下文协议(MCP)服务器。此实现使Claude和其他兼容MCP的AI助手能够安全地访问和管理PI仪表板资源,包括类别和图表。

使用PI与MCP

以下演示了在设置完成后使用此MCP服务器的典型场景。

初始认证:

  • 执行以下指令以建立连接:
确保PI API MCP服务器正在运行
将API URL设置为http://localhost:8224/pi/api/v2
使用认证工具进行认证指导
检查连接状态以验证一切正常
列出仪表板上的两个图表

图表分析:

  • 如果图表ID 450包含元数据信息,请使用以下提示:
从图表ID 450中检索元数据
从ID 450提取图表JSON数据
识别与声明关联的图表ID
获取已识别图表的JSON数据
分析数据以生成可操作见解

示例输出:

example-response.png

安装

通过Smithery安装

要通过Smithery自动安装Claude Desktop的pi-api-mcp-server:

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

安装 - 使用Docker(推荐)

  • 不需要配置MCP服务器
  • 配置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"
      ]
    }
  }
}

重要说明:如果初始化时未提供--api-url参数,服务器将在执行任何操作之前要求您使用set-api-url工具配置API URL。这种设计允许在启动时URL不确定的环境中灵活配置。

配置文件位置

访问您的Claude for Desktop应用程序配置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: 目前使用其他工具。例如,Cline - 让它显示MCP配置文件

可用工具

架构发现

  • get-filterable-attributes: 获取可用于过滤的属性列表,通过检查样本实体
    获取图表实体的可过滤属性
    

连接管理

  • check-connection: 检查当前API URL和认证是否有效
  • set-api-url: 配置所有请求的基础API URL
    将API URL设置为http://localhost:8224/pi/api/v2
    

认证

  • authenticate: 获取认证选项指导
  • authenticate-with-credentials: 使用用户名和密码进行认证(最后手段)
  • keep-session-alive: 验证并刷新当前认证令牌(也用于基于令牌的认证)
  • logout: 使当前令牌失效并结束会话
  • set-organization: 设置后续请求的组织ID

类别

  • list-categories: 列出所有类别,支持过滤
  • get-category: 根据ID获取类别
  • create-category: 创建新类别
  • update-category: 更新现有类别
  • delete-category: 删除类别
  • list-category-objects: 列出特定类别的所有对象

图表

  • list-charts: 列出所有图表,支持过滤
  • get-chart: 根据ID获取图表
  • delete-chart: 删除图表
  • export-chart: 以各种格式导出图表

可用资源

  • auth://status: 获取认证状态
  • categories://list: 列出所有类别
  • categories://{id}: 获取特定类别
  • categories://{categoryId}/objects: 获取特定类别的对象
  • charts://list: 列出所有图表
  • charts://{id}: 获取特定图表
  • charts://{id}/export/{format}: 以特定格式导出图表

可用提示

  • analyze-categories: 分析仪表板中的类别
  • analyze-charts: 分析仪表板中的图表
  • compare-charts: 比较两个图表之间的数据
  • category-usage-analysis: 分析类别在图表中的使用情况
  • use-filters: 展示如何有效地使用此API的过滤器

Claude集成示例

这里是一些连接服务器后可以与Claude一起使用的示例查询:

设置API URL

请使用set-api-url工具将PI API URL设置为http://localhost:8224/pi/api/v2

认证

请帮我认证到PI API。
我有一个令牌。请使用keep-session-alive工具和我的令牌:[YOUR_TOKEN_HERE]
请检查我与PI API的连接是否正常工作。

处理类别

列出仪表板中的所有类别。
获取ID为123的类别的详细信息。

处理图表

列出仪表板中可用的所有图表。
将ID为456的图表导出为PDF。

使用过滤器

获取图表实体的可过滤属性,以了解我可以过滤哪些字段。
使用过滤选项列出描述中包含“收入”的图表。

使用分析提示

分析仪表板中的类别。
比较图表123和456之间的数据。
展示如何有效地使用此API的过滤器。

开发

本地执行

  • 注意:您可以使用start.sh来运行开发服务器。
# 克隆仓库(SSH或HTTPS选项)
git clone git@github.com:mingzilla/pi-api-mcp-server.git
cd pi-api-mcp-server

# 安装依赖
npm install
./dependencies.sh # 安装全局依赖以启用通过"@mingzilla/pi-api-mcp-server"连接MCP客户端

# 构建项目
npm run build

# 执行服务器
npm start

NPM安装

# 全局安装
npm install -g @mingzilla/pi-api-mcp-server

# 通过npx直接执行
npx @mingzilla/pi-api-mcp-server --api-url "http://localhost:8224/pi/api/v2" --auth-token "XXXXXXXX"

MCP客户端配置

与Claude for Desktop集成:

Node.js实现

  • 执行“本地执行”部分中的指令
  • 确保已执行./dependencies.sh以安装所需依赖
  • 实现以下配置(注意:“@mingzilla/pi-api-mcp-server”引用的是通过“本地执行”安装的包)
{
  "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"
      ]
    }
  }
}

本地开发

  • 使用./start.sh运行服务器
  • 使用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"
      ]
    }
  }
}

开发检查清单

  • 更新代码 -> 启动本地服务器 -> 使用index.js文件路径测试本地服务器
  • 更新readme.md文件 -> 更改mcpServers配置部分:docker + node + npx
  • ./publish.sh - 发布到npm
  • ./dockerBuild.sh -> ./dockerPublish.sh(编辑版本号以匹配package.json)-> 测试docker配置
  • 将代码推送到GitHub

许可证

MIT许可证

作者

黄明(mingzilla)

在MseeP上验证

smithery 徽章