营销数据分析工具

一个实验性AI代理工具,通过本地MCP服务器实时访问营销数据集,进行无脚本的自主分析。

  • by benkohcc
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 benkohcc/MarketingMCP

使用说明

营销语境MCP——无脚本代理推理实验

给人工智能代理的实验 实时、可查询地访问营销数据集 通过当地 模型上下文协议(MCP) 服务器——因此它可以自由地对真实数据进行推理,而无需任何预先编写的SQL、预定义的仪表板或脚本化的问题路径。


想法

大多数营销分析工具都是围绕脚本查询构建的:你知道你想要回答什么问题,你写查询,你得到答案。但是,当你给人工智能代理一组原始数据工具并让它使用时,会发生什么 找出自己的分析路径?

此项目将营销活动数据集作为MCP服务器公开。然后,Claude Desktop可以按任何顺序调用这7个工具的任意组合来回答开放式问题,例如:

“相对于他们的消费能力,哪些客户群体在活动响应率方面表现不佳?”

代理决定调用哪些工具、按什么顺序调用以及如何综合结果——没有脚本工作流,也没有预先编写的分析。


示例场景:无脚本葡萄酒活动设计

以下演练展示了无脚本代理推理在实践中的实际情况。没有预先撰写分析。代理收到一个打开的提示,并使用MCP工具自行解决问题。

提示: “葡萄酒的平均支出是多少?针对这些葡萄酒购买者的人口统计数据设计一个营销活动。报价应利用平均支出的信息来优化报价类型和价值。”


第一步——按部门细分支出

代理人打电话来 get_spending_by_segment 为了了解不同教育水平的葡萄酒支出,发现博士客户平均每年404美元,而基础教育客户平均每年7美元,这是56倍的差距,直接影响了细分策略。


步骤2——活动策略概述

代理人没有止步于数字,而是将支出数据与收入相关性和RFM评分相结合,以构建三个值得单独定位的不同买家角色。


第三步——第一段:鉴赏家

拥有博士/硕士学位的客户(633人,平均葡萄酒消费333-405美元,RFM级别较高)。代理人设计了一个 精心策划的后备病例计划 --购买6瓶,免费获得第7瓶——这取决于他们每月34美元的实际消费门槛,以及他们对目录和店内渠道的偏好,而不是折扣。


第四步——第二部分:休闲爱好者

毕业教育客户(1707人,平均葡萄酒消费284-307美元,中等RFM级别)。代理人设计了一个 周末捆绑优惠 --葡萄酒加上一个15%折扣的补充类别——时间安排在周中的电子邮件中,以推动周末的商店访问,反映了对这一群体表现最好的Cmp4/Cmp5结构。


第5步——第3部分:对价格敏感的买家

基础/2n周期教育客户(257人,平均葡萄酒消费7-198美元,低RFM级别)。代理人设计了一个 入门级交易激活 --单瓶闪购,仅限网络,无捆绑要求——设定现实的期望,即5-6%的响应率已经高于其历史基线。


第6步----跨领域建议

该代理以贯穿所有三个细分市场的战略观察结束:优先考虑近期客户(RFM R=3,响应率为41.7%),从不复制Cmp2(总体为1.3%),给寡妇/离婚客户自己的创意,并在可能的情况下将收入作为目标门。


步骤7——工具透明度

当被问及 “你调用了哪些工具来进行分析?”,代理按顺序回忆并解释了所有5个工具调用——每个调用都揭示了什么,以及它是如何塑造输出的。这是显而易见的推理链:按教育程度划分支出以建立等级,按婚姻状况划分支出以揭示寡妇/离婚异常情况,将Cmp2确定为一贯表现不佳的竞选表现,渠道分析以告知报价交付,RFM优先考虑近期性,以及收入-支出相关性以设定目标阈值。


该代理调用了多个工具,交叉引用了输出结果,并从一个未解决的问题中生成了一个完全合理、基于数据的活动简报,没有脚本工作流。


数据集

marketing_campaign.csv --从下载的示例数据集 Kaggle (营销活动)。它包含29列2239条客户记录,涵盖:

类别 列
人口统计 Year_Birth, Education, Marital_Status, Income, Kidhome, Teenhome
行为学 Recency (自上次购买以来的天数), Dt_Customer (注册日期)
支出 MntWines, MntFruits, MntMeatProducts, MntFishProducts, MntSweetProducts, MntGoldProds
频道 NumWebPurchases, NumCatalogPurchases, NumStorePurchases, NumDealsPurchases, NumWebVisitsMonth
活动 AcceptedCmp1–AcceptedCmp5, Response (二进制0/1接受)

MCP工具

服务器公开了7个分析工具:

工具 它做什么
get_dataset_overview 模式、行数、缺失值数、数值范围、分类分布
get_spending_by_segment 按教育或婚姻状况分组的每个产品类别的平均支出
get_campaign_performance 所有6个活动的总体接受率(%)和按人口细分的接受率
get_channel_analysis 购买渠道份额(网络/目录/商店/交易),可选按细分市场
get_rfm_segments RFM(最近度、频率、货币)评分到可配置的级别
get_income_spend_correlation 皮尔逊相关性+括号内收入与支出明细
get_customer_tenure_analysis 按客户注册期限分组的支出和响应率

工具是故意的 原始且可组合 --代理将它们组合在一起以回答复杂的问题,而不是使用任何单一的工具来编码完整的分析。

有关每个工具内部功能的详细说明,请参阅 TOOLS.md.


建筑

Claude Desktop
     │
     │  stdio (subprocess)
     ▼
server.py  ←  marketing_campaign.csv (loaded once at startup)
     │
     └── pandas DataFrame (in-memory, read-only)
  • 运输:stdio--克劳德桌面生成 server.py 作为本地子流程。没有端口,没有网络暴露。
  • 数据层:pandas DataFrame在启动时加载一次。所有工具都在内存副本上运行。
  • 无数据库CSV是真理的源泉。

设置

先决条件

1.克隆并创建虚拟环境

git clone <this-repo>
cd MarketingMCP
python3.11 -m venv venv

2.安装依赖项

./venv/bin/pip install -r requirements.txt

3.验证其是否加载

./venv/bin/python server.py
# Should block waiting for stdin — press Ctrl+C to exit
# Any import error will print before it blocks

4.在克劳德桌面注册

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)并添加:

{
  "mcpServers": {
    "marketing": {
      "command": "/absolute/path/to/MarketingMCP/venv/bin/python",
      "args": ["/absolute/path/to/MarketingMCP/server.py"]
    }
  }
}

使用 绝对路径 到venv Python——不是 python3 --因此,在启动时可以找到已安装的软件包。

5.重新启动克劳德桌面

Cmd+Q(完全退出)→ 重新开放。MCP服务器在启动时自动启动。


故障排除

问题 修复
工具未出现在Claude Desktop中 检查 ~/Library/Logs/Claude/mcp-server-marketing.log
启动时导入错误 运行 ./venv/bin/python server.py 直接查看回溯
配置JSON无效 运行 python3 -c "import json; json.load(open('~/Library/Application Support/Claude/claude_desktop_config.json'))"
未找到CSV Path(__file__).parent 相对于 server.py --将两个文件保存在同一目录中

项目结构

MarketingMCP/
├── server.py                 # MCP server — all 7 tools
├── marketing_campaign.csv    # Source dataset (Kaggle)
├── requirements.txt          # mcp, pandas
├── docs/
│   ├── example.png           # Claude Desktop tool listing screenshot
│   ├── wine-scenario-1.png   # Wine spend by education segment
│   ├── wine-scenario-2.png   # Three-segment campaign strategy
│   ├── wine-scenario-3.png   # Segment 1: The Connoisseur
│   ├── wine-scenario-4.png   # Segment 2: The Casual Enthusiast
│   ├── wine-scenario-5.png   # Segment 3: The Price-Sensitive Buyer
│   ├── wine-scenario-6.png   # Cross-cutting recommendations
│   └── wine-scenario-7.png   # Agent explains its tool call reasoning chain
└── README.md