# PPB-MCP：将GPU基准测试数据转化为可查询的MCP服务

> PPB-MCP是一个开源的Model Context Protocol服务器，它将Poor Paul's Benchmark的GPU推理数据（包括量化方案、吞吐量、显存占用和并发用户数）暴露为可查询的工具，支持Claude Desktop、Cursor、Windsurf、Cline等主流AI客户端。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-26T17:11:31.000Z
- 最近活动: 2026-04-26T17:22:01.230Z
- 热度: 152.8
- 关键词: MCP, GPU, 量化, 基准测试, LLM部署, Claude, Cursor, 显存优化, 推理性能
- 页面链接: https://www.zingnex.cn/forum/thread/ppb-mcp-gpumcp
- Canonical: https://www.zingnex.cn/forum/thread/ppb-mcp-gpumcp
- Markdown 来源: ingested_event

---

# PPB-MCP：将GPU基准测试数据转化为可查询的MCP服务

## 背景与动机

在部署大语言模型时，选择合适的量化方案和硬件配置是一个复杂的决策过程。开发者经常面临这样的问题："在32GB显存的GPU上运行Qwen3.5-9B模型，8个并发用户应该使用什么量化方案？"或"Llama-13B在Q5_K_M量化下能否在24GB显存的GPU上支持4个并发用户？"

Poor Paul's Benchmark（PPB）是一个包含超过3万条真实基准测试记录的数据集，涵盖了不同GPU、模型、量化方案和并发用户配置下的性能数据。PPB-MCP将这个数据集封装为一个MCP（Model Context Protocol）服务器，让任何支持MCP的AI客户端都能直接查询这些数据。

## 项目概述

PPB-MCP由paulplee开发，是一个开源的Python项目，通过MCP协议将GPU推理基准数据暴露为结构化工具。该项目支持两种部署方式：使用官方托管的免费端点（https://mcp.poorpaul.dev/），或在本地自托管。

项目的核心设计理念是"empirical-first"——优先使用实测数据，而非理论估算。所有推荐都基于真实的基准测试结果，确保决策的可靠性。

## 核心功能与工具集

PPB-MCP提供了九个查询工具，覆盖了从基础配置查询到高级量化推荐的完整场景：

### 基础查询工具

**list_tested_configs**：列出所有已测试的GPU型号、模型和量化方案。这是入门的首选工具，帮助用户了解数据集中有哪些配置可用。

**query_ppb_results**：根据GPU、显存、模型、量化方案、用户数和后端类型筛选原始基准数据。适合需要查看具体性能指标的高级用户。

### 智能推荐工具

**recommend_quantization**：三层级推荐引擎，根据用户提供的GPU显存、并发用户数和模型名称，推荐最适合的量化方案。推荐分为三个置信度等级：

- **高置信度（Tier 1）**：在同一GPU上至少有3次实测记录，且显存占用在用户预算范围内
- **中置信度（Tier 2）**：相同模型和量化方案在不同GPU上有测试数据，通过比例换算估算性能
- **低置信度（Tier 3）**：基于公式外推，仅当总显存需求不超过90%容量时才视为可行

**get_gpu_headroom**：验证特定配置（GPU+模型+量化+用户数）的显存余量，帮助避免OOM（Out of Memory）风险。

### 质量评估工具

**get_qualitative_summary**：获取所有可用的质量评分，包括上下文召回率（context-rot）、工具调用准确率、生成质量和MT-Bench分数。

**query_qualitative_results**：按阶段、模型、量化方案、GPU或最低分数阈值筛选质量数据。

**get_context_rot_breakdown**：详细的长上下文召回率分析，按长度、深度和needle类型展示性能。

**get_tool_accuracy_breakdown**：工具调用准确率分解，包括工具选择准确率、参数填充准确率、幻觉率和解析成功率。

**compare_quants_qualitative**：并排比较不同量化方案的定性指标，提供确定性的洞察。

## 技术架构与实现

### 数据缓存机制

PPB-MCP采用SQLite本地缓存策略。启动时，服务器从SQLite数据库加载数据，仅在数据集的git commit SHA发生变化时才联系HuggingFace获取更新。这种设计使得：

- 后续启动速度快
- 支持离线使用
- 减少对HuggingFace API的依赖

默认缓存文件为./ppb_cache.db，可通过PPB_DB_PATH环境变量覆盖。

### 多传输协议支持

项目支持两种MCP传输协议：

- **stdio**：适合本地集成，通过标准输入输出与客户端通信
- **streamable-http**：适合远程部署，通过HTTP端点提供服务

官方托管实例使用streamable-http协议，无需认证即可访问。

## 集成指南

### Claude Desktop

编辑配置文件（macOS：~/Library/Application Support/Claude/claude_desktop_config.json）：

```json
{
  "mcpServers": {
    "ppb": {
      "transport": { "type": "http", "url": "https://mcp.poorpaul.dev/mcp" }
    }
  }
}
```

### Cursor

编辑~/.cursor/mcp.json：

```json
{
  "mcpServers": {
    "ppb": {
      "url": "https://mcp.poorpaul.dev/mcp",
      "type": "http"
    }
  }
}
```

或通过UI配置：Settings → Tools & Integrations → MCP → Add Server。

### Windsurf

编辑~/.codeium/windsurf/mcp_config.json：

```json
{
  "mcpServers": {
    "ppb": {
      "serverUrl": "https://mcp.poorpaul.dev/mcp",
      "transport": "http"
    }
  }
}
```

### VS Code

在工作区的.vscode/mcp.json或用户settings.json中添加：

```json
{
  "mcp": {
    "servers": {
      "ppb": {
        "type": "http",
        "url": "https://mcp.poorpaul.dev/mcp"
      }
    }
  }
}
```

### 其他支持客户端

PPB-MCP同样支持Zed、Cline、Continue、OpenCode、Goose等MCP-aware客户端，配置方式类似。

## 自托管部署

### pip安装

```bash
pip install ppb-mcp
MCP_TRANSPORT=stdio ppb-mcp
```

### Docker部署

```bash
docker run --rm -p 9933:9933 \
  -e MCP_TRANSPORT=streamable-http \
  -v ppb-hf-cache:/data/huggingface \
  ghcr.io/paulplee/ppb-mcp:latest
```

### 开发环境

```bash
git clone https://github.com/paulplee/ppb-mcp
cd ppb-mcp
pip install -e ".[dev]"
ppb-mcp  # 默认在:9933启动streamable-http
```

### 生产部署

项目提供了自动化部署脚本，支持Docker、systemd、nginx和certbot的一键配置：

```bash
git clone https://github.com/paulplee/ppb-mcp /tmp/ppb-mcp
cd /tmp/ppb-mcp
DOMAIN=mcp.example.com EMAIL=you@example.com ./deploy/deploy.sh
```

## 使用示例

### 查询推荐量化方案

用户提问："在32GB显存的GPU上运行Qwen3.5-9B，8个并发用户，平衡性能和质量的量化方案是什么？"

系统返回：

```json
{
  "recommended_quantization": "Q5_K_M",
  "estimated_vram_usage_gb": 27.8,
  "estimated_tokens_per_second": 142.0,
  "headroom_gb": 4.2,
  "confidence": "high",
  "reasoning": "Q5_K_M is recommended for your NVIDIA GeForce RTX 5090 (32 GB)...",
  "alternatives": ["Q4_K_M", "Q8_0"]
}
```

### 查询特定配置

用户提问："显示所有在RTX 5090上使用Q4_K_M量化测试的模型。"

系统通过query_ppb_results工具返回匹配的所有测试记录。

## 实际意义与应用场景

PPB-MCP解决了LLM部署中的几个关键痛点：

1. **量化方案选择困难**：面对Q4_K_M、Q5_K_M、Q8_0等众多选项，开发者往往难以抉择。PPB-MCP基于实测数据提供量化推荐。

2. **显存规划风险**：通过get_gpu_headroom工具，可以在部署前验证配置是否会导致OOM。

3. **性能预估不准确**：理论计算往往与实际性能有偏差，PPB-MCP使用真实基准数据提供更准确的吞吐量预估。

4. **质量与速度的权衡**：通过compare_quants_qualitative工具，可以直观比较不同量化方案在生成质量上的差异。

## 项目特点与优势

- **数据驱动**：基于3万+真实测试记录，而非理论模型
- **多层置信度**：明确区分高、中、低置信度推荐，避免误导
- **广泛兼容**：支持所有主流MCP客户端
- **灵活部署**：免费托管端点或自托管，满足不同需求
- **离线友好**：SQLite缓存机制支持离线使用
- **持续更新**：定期从HuggingFace同步最新基准数据

## 总结与展望

PPB-MCP是一个将静态数据集转化为动态查询服务的优秀范例。它展示了如何通过MCP协议，让AI助手直接访问结构化数据，从而提供更有价值的建议。

对于需要在本地或私有云部署LLM的开发者，PPB-MCP是一个不可或缺的工具。它消除了量化方案选择中的猜测，让硬件资源配置决策有据可依。

随着更多GPU和模型的测试数据加入PPB数据集，PPB-MCP的推荐能力将持续增强。项目采用MIT许可证，欢迎社区贡献更多基准测试结果和代码改进。

对于希望优化LLM部署成本的团队，PPB-MCP提供了一个数据驱动的决策框架，帮助在性能、质量和成本之间找到最佳平衡点。
