MCP 流式分析服务器
一个模型上下文协议(MCP)服务器,用于分析流媒体平台数据(音乐、视频、播客),具备高级分析功能,包括互动追踪、流失分析、漏斗指标分析和同期群分析。
特点/特性
数据模型
该数据库包含具有以下特点的真实流媒体平台数据:
- 用户订阅层级、人口统计信息、流失跟踪
- 内容电影、电视剧、歌曲、专辑、播客
- 流媒体事件播放历史、完成率、设备/平台追踪
- 参与度指标每日用户活动、会话、观看时长
- 订阅与支付计费,收入追踪
- 漏斗事件注册、升级等的转化追踪。
- A/B测试实验追踪和变量分配
- 建议推荐性能追踪
- 搜索与通知用户交互追踪
MCP 工具
- 查询用户 - 使用过滤器查询用户(订阅等级、国家、状态)
- 分析参与度 - 分析随时间变化的用户参与度指标
- 内容表现 - 按类型、体裁、播放量分析内容表现
- 漏斗分析 - 转化漏斗分析(注册、升级等)
- 用户流失预测 - 根据不活跃情况识别出风险用户
- 队列分析 - 群体留存率和收入分析
- 自定义查询 - 执行自定义SQL查询(仅限SELECT)
MCP Resources(公司名,可译为“MCP资源公司”)
analytics://users/active- 按层级划分的活跃用户analytics://users/churn- 按原因进行的流失分析analytics://engagement/daily- 日常互动趋势analytics://content/popular- 表现最佳的内容analytics://revenue/summary- 按月划分的收入趋势
设置
先决条件
- Python 3.10及以上版本
- Docker 和 Docker Compose
- 通过Docker运行的PostgreSQL
- 紫外线 (推荐)或
brew install uv
安装
- 启动数据库:
cd mcp-streaming-analytics
docker compose up -d等待数据库初始化(检查是否 docker compose logs -f)。
- 创建虚拟环境并安装依赖项:
# Create virtual environment
uv venv
# Activate virtual environment
source .venv/bin/activate # macOS/Linux
# OR
.venv\Scripts\activate # Windows
# Install dependencies
uv pip install -r requirements.txt- 验证数据库连接:
docker exec -it streaming-db psql -U streaming_user -d streaming_analytics -c "SELECT COUNT(*) FROM users;"运行MCP服务器
开发模式
python src/server.py使用MCP Inspector(用于测试)
npx @modelcontextprotocol/inspector python src/server.py与Claude Desktop一起使用
添加到你的Claude桌面配置中(~/Library/Application Support/Claude/claude_desktop_config.json (在 macOS 上):
{
"mcpServers": {
"streaming-analytics": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-streaming-analytics",
"run",
"python",
"src/server.py"
]
}
}
}注替换 /path/to/mcp-streaming-analytics 使用您实际的项目路径 uv run 自动管理虚拟环境。数据库凭据会自动从(某处)加载 .env 文件。
示例查询
使用工具
找出有风险的优质用户:
Use the churn_prediction tool with subscription_tier="premium" and days_threshold=7分析注册转化漏斗:
Use the funnel_analysis tool with funnel_name="signup"获取表现最佳的内容:
Use the content_performance tool with content_type="series" and min_plays=2队列留存分析:
Use the cohort_analysis tool with cohort_month="2024-01" and metric="retention"自定义SQL查询
按国家划分的用户参与度:
SELECT
u.country,
COUNT(DISTINCT u.user_id) as users,
AVG(m.engagement_score) as avg_engagement,
SUM(m.total_watch_time_seconds)/3600 as total_hours
FROM users u
JOIN daily_user_metrics m ON u.user_id = m.user_id
WHERE m.metric_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY u.country
ORDER BY total_hours DESC内容狂刷行为分析:
SELECT
c.title,
COUNT(*) as binge_sessions,
AVG(se.duration_seconds/60) as avg_minutes_per_session
FROM streaming_events se
JOIN content c ON se.content_id = c.content_id
WHERE se.is_binge_watch = true
GROUP BY c.title
ORDER BY binge_sessions DESC
LIMIT 10数据库模式
关键表格:
users- 包含订阅和流失信息的用户账户content- 流媒体内容目录streaming_events- 播放事件并跟踪完成情况user_sessions- 用户会话跟踪daily_user_metrics- 每日互动概览subscriptions- 订阅生命周期payment_transactions- 收入追踪funnel_events- 转化漏斗追踪content_recommendations- 推荐性能notifications- 通知互动率
分析用例
- 参与度分析追踪日活跃用户数/月活跃用户数、会话时长、内容消费情况
- 流失预测识别风险用户,分析流失原因
- 内容表现测量观看次数、完成率、流行趋势
- 漏斗优化分析注册/升级转化率
- 队列分析按用户群组追踪用户留存率和客户终身价值(LTV)
- 收入分析监控月经常性收入(MRR)、每用户平均收入(ARPU)、支付成功率
- A/B测试评估实验对关键指标的影响
- 推荐性能追踪推荐内容的点击通过率(CTR)和转化率
发展
添加更多种子数据
编辑 database/seeds/01_seed_data.sql 并重启数据库:
docker compose down -v
docker compose up -d扩展MCP服务器
添加新的工具或资源到 src/server.py:
- 工具:添加到
@mcp.list_tools()并且@mcp.call_tool() - 资源:添加至
@mcp.list_resources()并且@mcp.read_resource()
故障排除
数据库连接问题:
# Check if database is running
docker compose ps
# View logs
docker compose logs -f postgres
# Restart database
docker compose restart postgres重置数据库:
docker compose down -v
docker compose up -d许可证
麻省理工学院(MIT)
