MCP YouTube播客分析器
这个仓库将三件事粘在一起,这样你就可以从笔记本电脑上总结YouTube播客:
- 本地llama.cpp服务器(运行LLM,不需要API密钥)
- Docker的MCP网关(为您提供DuckDuckGo搜索+剧作家浏览+YouTube转录)
- 一个Python脚本(
script.py)它搜索人员,抓取成绩单,并打印一个漂亮的Rich表
如果你能遵循一个食谱,你就可以运行这个项目。
______________________________________________________________________
快速入门(按顺序操作)
提示:所有命令都从repo根目录运行。
- 安装一次所需的工具
- 使用MCP扩展: docker extension install docker/mcp - 紫外线 (或者Python 3.12+,如果你坚持的话) - 在继续之前,请确保Docker Desktop正在运行;如果守护进程停止,助手脚本现在会很快失败。
- 启动本地LLM(一个终端选项卡)
scripts/start_llm_server.sh等待,直到您看到服务器在端口1234上侦听。
- 启动MCP网关(第二个终端选项卡)
scripts/start_mcp_gateway.sh此命令启用DuckDuckGo、Playwright和YouTube Transcript MCP服务器(如果尚未启用)。
- 烟雾测试连接(第三个选项卡)
uv run python script.py --smoke-test您应该看到两个绿色复选标记(LLM+MCP)。在继续之前,先把红色的东西修好。
- 实际运行分析仪
uv run python script.py \
--people "Lex Fridman" "Andrew Huberman" \
--per-person 2该脚本打印了一个表格,其中包含它设法总结的每个视频的主题+见解。
就是这样。改名字或撞 --per-person 只要你愿意。
______________________________________________________________________
万物如何连接(图片!)
flowchart LR
User[[You in a terminal]] -->|run scripts/run_analyzer.sh| Client["Python analyzer (script.py + uv)"]
subgraph DockerContainers
LLM["llama.cpp server on port 1234"]:::box -->|summaries back| Client
Gateway["MCP gateway on port 8080"]:::box --> Client
Gateway --> Tools
Tools["DuckDuckGo + Playwright + YouTube Transcript"]:::box
end
classDef box fill:#e6f3ff,stroke:#0077cc,color:#111,rx:6,ry:6;- 分析器只是您在本地运行的Python脚本;它通过简单的HTTP请求与两个Docker容器进行通信(想想“发送文本→ 取回文本”)。
- 容器#1是llama.cpp服务器(您的本地LLM)。容器#2是Docker的MCP网关,它捆绑了搜索/浏览/转录工具。
- 当脚本运行时,它会向工具请求YouTube成绩单,然后将该文本交给本地LLM进行摘要,最后打印一个友好的表格。
不需要花哨的网络知识:上面的每个箭头都是“用文本在本地主机上交谈”。
______________________________________________________________________
回购是如何组织的
.
├── script.py # Rich terminal client (now has helpful CLI flags)
├── pyproject.toml / uv.lock # uv metadata; run `uv run ...` and it "just works"
├── scripts/
│ ├── start_llm_server.sh # llama.cpp Docker wrapper (Gemma 3 270M by default)
│ ├── start_mcp_gateway.sh # Enables DuckDuckGo + Playwright + YouTube MCP tools
│ └── run_analyzer.sh # Convenience wrapper around `uv run python script.py`
├── docs/ # Drop diagrams or notes here if you make them
└── README.md # What you’re reading提示:scripts/start_llm_server.sh自动运行docker pull对于llama.cpp图像,这样您就可以始终保持最新状态。集PULL_IMAGE=false如果你需要跳过它(例如,离线工作)。
______________________________________________________________________
重要标志和环境变量
| 什么 | 默认值 | 如何更改 |
|---|---|---|
| LLM端点 | http://127.0.0.1:1234/v1 | export LLM_ENDPOINT=... 或 --llm-endpoint URL |
| MCP端点 | http://localhost:8080/mcp | export MCP_ENDPOINT=... 或 --mcp-endpoint URL |
| 要搜索的人 | Sam Altman Elon Musk Donald Trump | --people "Name1" "Name2" |
| 每人视频 | 2 | --per-person 3 |
| 搜索广度 | 15 | --max-search-results 20 |
| 仅健康检查 | 关闭 | 添加 --smoke-test |
两个辅助脚本都接受标准环境覆盖(例如。, PORT, MODEL_REPO, SERVERS)如果你想调整它们。
______________________________________________________________________
故障排除备忘单
| 症状 | 可能修复 |
|---|---|
✗ LLM connection failed | 确保 scripts/start_llm_server.sh 仍在运行;检查Docker桌面日志。 |
✗ MCP gateway unreachable | 重新运行 scripts/start_mcp_gateway.sh;确认 docker mcp server ls 显示了启用的三个服务器。 |
| 助手脚本退出,表示Docker未运行 | 启动Docker桌面(或启动Docker守护进程)并再次运行脚本。 |
No podcasts were summarized | 尝试不同的名字,撞 --max-search-results,或等待DuckDuckGo返回更新的链接。 |
| Docker表示MCP命令未知 | 安装/启用MCP扩展: docker extension install docker/mcp. |
跑 uv run python script.py --smoke-test 每当您不确定这两个服务是否都处于活动状态时。
______________________________________________________________________
为什么我们喜欢这种设置
- 100%本地推理——没有OpenAI密钥,只有一个llama.cpp容器从Hugging Face中提取Gemma 3 270M模型。
- Docker MCP网关通过一个HTTP端点为您提供现成的工具(搜索、无头浏览器、YouTube转录)。
script.py它故意很小,评论很好,并使用Rich,这样你就可以准确地看到发生了什么。
如果您构建图表,请将其保存在 docs/ 这样以后每个人都能找到它们。
