营销语境MCP——无脚本代理推理实验
给人工智能代理的实验 实时、可查询地访问营销数据集 通过当地 模型上下文协议(MCP) 服务器——因此它可以自由地对真实数据进行推理,而无需任何预先编写的SQL、预定义的仪表板或脚本化的问题路径。
Claude Desktop using the marketing MCP tools
______________________________________________________________________
想法
大多数营销分析工具都是围绕脚本查询构建的:你知道你想要回答什么问题,你写查询,你得到答案。但是,当你给人工智能代理一组原始数据工具并让它使用时,会发生什么 找出自己的分析路径?
此项目将营销活动数据集作为MCP服务器公开。然后,Claude Desktop可以按任何顺序调用这7个工具的任意组合来回答开放式问题,例如:
*“相对于他们的消费能力,哪些客户群体在活动响应率方面表现不佳?”*
代理决定调用哪些工具、按什么顺序调用以及如何综合结果——没有脚本工作流,也没有预先编写的分析。
______________________________________________________________________
示例场景:无脚本葡萄酒活动设计
以下演练展示了无脚本代理推理在实践中的实际情况。没有预先撰写分析。代理收到一个打开的提示,并使用MCP工具自行解决问题。
提示: *“葡萄酒的平均支出是多少?针对这些葡萄酒购买者的人口统计数据设计一个营销活动。报价应利用平均支出的信息来优化报价类型和价值。”*
______________________________________________________________________
第一步——按部门细分支出
代理人打电话来 get_spending_by_segment 为了了解不同教育水平的葡萄酒支出,发现博士客户平均每年404美元,而基础教育客户平均每年7美元,这是56倍的差距,直接影响了细分策略。
Step 1: Average wine spend by education segment
______________________________________________________________________
步骤2——活动策略概述
代理人没有止步于数字,而是将支出数据与收入相关性和RFM评分相结合,以构建三个值得单独定位的不同买家角色。
Step 2: Agent designs a three-segment Wine Lover Campaign Strategy
______________________________________________________________________
第三步——第一段:鉴赏家
拥有博士/硕士学位的客户(633人,平均葡萄酒消费333-405美元,RFM级别较高)。代理人设计了一个 *精心策划的后备病例计划* --购买6瓶,免费获得第7瓶——这取决于他们每月34美元的实际消费门槛,以及他们对目录和店内渠道的偏好,而不是折扣。
Step 3: Offer design for The Connoisseur segment
______________________________________________________________________
第四步——第二部分:休闲爱好者
毕业教育客户(1707人,平均葡萄酒消费284-307美元,中等RFM级别)。代理人设计了一个 *周末捆绑优惠* --葡萄酒加上一个15%折扣的补充类别——时间安排在周中的电子邮件中,以推动周末的商店访问,反映了对这一群体表现最好的Cmp4/Cmp5结构。
Step 4: Offer design for The Casual Enthusiast segment
______________________________________________________________________
第5步——第3部分:对价格敏感的买家
基础/2n周期教育客户(257人,平均葡萄酒消费7-198美元,低RFM级别)。代理人设计了一个 *入门级交易激活* --单瓶闪购,仅限网络,无捆绑要求——设定现实的期望,即5-6%的响应率已经高于其历史基线。
Step 5: Offer design for The Price-Sensitive Buyer segment
______________________________________________________________________
第6步----跨领域建议
该代理以贯穿所有三个细分市场的战略观察结束:优先考虑近期客户(RFM R=3,响应率为41.7%),从不复制Cmp2(总体为1.3%),给寡妇/离婚客户自己的创意,并在可能的情况下将收入作为目标门。
Step 6: Cross-cutting recommendations across all segments
______________________________________________________________________
步骤7——工具透明度
当被问及 *“你调用了哪些工具来进行分析?”*,代理按顺序回忆并解释了所有5个工具调用——每个调用都揭示了什么,以及它是如何塑造输出的。这是显而易见的推理链:按教育程度划分支出以建立等级,按婚姻状况划分支出以揭示寡妇/离婚异常情况,将Cmp2确定为一贯表现不佳的竞选表现,渠道分析以告知报价交付,RFM优先考虑近期性,以及收入-支出相关性以设定目标阈值。
Step 7: Agent explains the 5 tool calls used to produce the campaign
______________________________________________________________________
该代理调用了多个工具,交叉引用了输出结果,并从一个未解决的问题中生成了一个完全合理、基于数据的活动简报,没有脚本工作流。
______________________________________________________________________
数据集
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是真理的源泉。
______________________________________________________________________
设置
先决条件
- Python 3.10+(用3.11测试)
- 克劳德桌面版
1.克隆并创建虚拟环境
git clone
cd MarketingMCP
python3.11 -m venv venv2.安装依赖项
./venv/bin/pip install -r requirements.txt3.验证其是否加载
./venv/bin/python server.py
# Should block waiting for stdin — press Ctrl+C to exit
# Any import error will print before it blocks4.在克劳德桌面注册
编辑 ~/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