Token导航 LogoToken导航TokenDH.com
Wise Pizza MCP logo
数据服务stdio官方级别未说明来源级核验

Wise Pizza MCP

MCP Server

wise-pizza-mcp是一个数据分析服务,通过Model Context Protocol让LLMs在多维数据中发现最有趣的片段,支持多种分析方法。

工具数

7

提示词数

0

GitHub Stars

4

资源数

0
数据分析PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

MotleyAI

提供方

MotleyAI

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e ".[dev]"

详细介绍

明智的披萨mcp

像热刀切披萨一样切开你的数据。

MCP服务器,用于包装 智慧披萨 库,让LLM在多维数据中找到最有趣的片段。加载CSV一次,然后通过模型上下文协议运行多次分析。

它做什么

明智的披萨会在你的数据中发现不寻常的片段,或者解释时间段之间的变化。此MCP服务器公开了四种分析方法:

  • 解释级别 --查找平均值与全球平均值差异最大的细分市场
  • 解释_变更_总计 --解释是什么导致了两个数据集之间总数的变化
  • 解释平均变化 --解释是什么促使两个数据集之间的平均值发生变化
  • 解释时间序列 --在面板数据中查找具有不同时间模式的片段

加上数据集管理工具,用于加载、列出和删除CSV数据。

先决条件

此服务器使用 紫外线 跑步。如果没有,请安装它:

curl -LsSf https://astral.sh/uv/install.sh | sh

快速开始

使用uvx安装

添加到您的Claude桌面配置(~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "wise-pizza": {
      "command": "uvx",
      "args": ["wise-pizza-mcp"]
    }
  }
}

如果您使用Claude Code在这个仓库的克隆中工作,服务器将通过以下方式自动配置 .mcp.json --无需手动设置。

工具

load_data

将CSV文件加载到内存中的数据集存储中。

参数类型必填说明
file_pathstringyes磁盘上CSV文件的路径
dataset_namestringyes引用此数据集的唯一名称
dimslist\[string\]yes用作维度的列名(要分割的分类列)
total_namestringyes包含总计的列名(要分析的值)
size_namestringno包含段大小/权重的列名

例子:

Load the file /data/sales.csv as "sales_q1" with dimensions ["region", "product", "channel"],
total_name "revenue", and size_name "transactions"

list_loaded_datasets

返回当前存储中所有数据集名称的列表。

remove_loaded_dataset

按名称从存储中删除数据集。

explain_levels

找出平均值与全局值差异最大的细分市场。非常适合回答:“此数据集中哪些片段不寻常?”

参数类型默认值说明
dataset_namestring必填加载数据集的名称
max_segmentsintauto要查找的最大分段数
min_depthint1每段的最小尺寸
max_depthint2每段的最大尺寸
constrain_signsbooltrue强制分段权重与方向匹配
cluster_valuesboolfalse考虑具有相似维度值的集群
image_sizelist\[int\]none\[width,height\]生成PNG图表

例子:

Run explain_levels on "sales_q1" with max_segments=5 and image_size=[1200, 600]

explain_levels example

explain_changes_in_totals

找到解释两个数据集总和差异的分段。

参数类型默认值说明
dataset_name_1string必需基线数据集
dataset_name_2string必填比较数据集
max_segmentsintauto要查找的最大分段数
min_depthint1每段的最小尺寸
max_depthint2每段的最大尺寸
howstring“totals”“total”、“split_fits”、“extra_dim”或“force_dim”
constrain_signsbooltrue强制分段权重与方向匹配
cluster_valuesboolfalse考虑具有相似维度值的集群
image_sizelist\[int\]none\[width,height\]用于PNG图表

how 参数控制分解:

  • "totals" --分段总变化综合分析
  • "split_fits" --分别分解大小变化与平均变化(回报 SplitAnalysisResult)
  • "extra_dim" --将规模/平均贡献视为额外维度
  • "force_dim" --与extra_dim类似,但每个段都必须指定一个Change_from约束

explain_changes_in_totals example

explain_changes_in_average

签名与 explain_changes_in_totals,但侧重于平均值变化,而不是总量变化。

explain_changes_in_average example

explain_timeseries

将时间序列面板数据分割成具有不同时间模式的片段。

参数类型默认值说明
dataset_namestring必填加载数据集的名称
time_namestring必填包含时间值的列
num_segmentsintauto要查找的段数
max_depthint2每段的最大尺寸
fit_sizesboolauto随着时间的推移也适合分段大小
num_breaksint3程式化时间序列中的断点
n_jobsint10树构建的并行作业
ignore_averagesbooltrue比较时忽略整体级别
image_sizelist\[int\]none\[width,height\]用于PNG图表

explain_timeseries example

响应格式

分析结果

大多数工具返回 AnalysisResult JSON:

{
  "task": "levels",
  "segments": [
    {
      "segment": {"region": "US", "product": "A"},
      "total": 1500.0,
      "seg_size": 200.0,
      "naive_avg": 7.5,
      "impact": 120.0,
      "avg_impact": 0.6
    }
  ],
  "relevant_clusters": {},
  "global_average": 5.2,
  "markdown_summary": "| ... |",
  "image_path": "/tmp/tmpXXXXXX.png"
}
  • :定义此段的维度值对
  • 总计:细分市场内的总价值
  • sec_size:节段的尺寸/重量
  • 天真:分段中的简单平均值(total/seg_size)
  • 影响:分段对总体的影响(仅限于套索求解器)
  • avg影响:每单位重量的影响(仅限套索求解器)
  • 相关集群:群集定义 cluster_values=True
  • 图像路径:生成PNG文件的路径(当 image_size 已设置)

Split分析结果

使用时 how="split_fits",响应包含单独的分析:

{
  "task": "changes (split)",
  "size_analysis": { "...AnalysisResult..." },
  "average_analysis": { "...AnalysisResult..." },
  "image_path": "/tmp/tmpXXXXXX.png"
}

用例演练

1.在当前数据中发现异常段

1. Load my sales data: load_data("/data/sales_jan.csv", "jan_sales",
   dims=["region", "product", "channel"], total_name="revenue", size_name="orders")

2. Find unusual segments: explain_levels("jan_sales", max_segments=5, image_size=[1200, 600])

这确定了每份订单的平均收入与全球平均水平差异最大的细分市场,例如,“APAC+Premium产品的每份订单收入是平均水平的3倍”。

2.解释不同时期之间的变化

1. Load both periods:
   load_data("/data/sales_q1.csv", "q1", dims=["region", "product"], total_name="revenue", size_name="orders")
   load_data("/data/sales_q2.csv", "q2", dims=["region", "product"], total_name="revenue", size_name="orders")

2. What drove the total change?
   explain_changes_in_totals("q1", "q2", image_size=[1000, 800])

3. What about average changes specifically?
   explain_changes_in_average("q1", "q2")

4. Break down size vs average contributions:
   explain_changes_in_totals("q1", "q2", how="split_fits")

3.时间序列分割

1. Load panel data:
   load_data("/data/monthly_metrics.csv", "monthly",
   dims=["region", "product"], total_name="revenue", size_name="customers")

2. Find segments with different trends:
   explain_timeseries("monthly", time_name="month", image_size=[1200, 800])

这发现像“欧盟+产品B正在下降,而美国+产品A正在增长”这样的群体。

发展

git clone https://github.com/MotleyAI/wise-pizza-mcp.git
cd wise-pizza-mcp
pip install -e ".[dev]"
pytest tests/ -v

许可证

麻省理工学院

目录标签

目录标签

数据分析PythonClaude本地部署多维数据LLM集成数据挖掘

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP