MCP代理(Firecrawl MCP+LangGraph)
此代理使用托管的Firecrawl MCP(SSE)获取web内容,并使用LLM(OpenAI)将其总结为5个简洁的要点。
______________________________________________________________________
这带来了什么
- Firecrawl MCP集成(模型上下文协议)通过
langchain-mcp-adapters - 基于LangGraph的代理流(fetch→ 总结)
- OpenAI LLM集成(
gpt-4o-mini默认情况下) - CLI自由运行(环境驱动),可选
BLOG_URL以(权力)否决 - 终端清洁、最小输出:
- 废弃内容(截断预览) - 最终5个小册子摘要
______________________________________________________________________
建筑
- MCP(SSE):
FIRECRAWL_MCP_URL指向https://mcp.firecrawl.dev//v2/sse - 适配器:
langchain-mcp-adapters创建MCP会话并加载firecrawl_scrape工具 - 代理:LangGraph
StateGraph与单一process总结内容的节点 - LLM:OpenAI聊天完成(
gpt-4o-mini,温度0.2)
数据流:
- 使用MCP获取(为了异步简单起见,在图外)
firecrawl_scrape工具(markdown优先解析)。 - 将原始文本传递到LangGraph中
process节点。 - 总结出5个要点。
______________________________________________________________________
需求
- Python 3.10+
- 无需Node.js(使用托管MCP URL)
- 您必须提供的API密钥:
- Firecrawl API密钥(嵌入在托管的MCP URL中) - OpenAI API密钥
______________________________________________________________________
设置
- 安装依赖项
pip install -r requirements.txt- 配置环境(.env示例)
OPENAI_API_KEY=
FIRECRAWL_API_KEY=
FIRECRAWL_MCP_URL=https://mcp.firecrawl.dev//v2/sse
BLOG_URL=https://huggingface.co/blog/agents笔记:
- 这些是.env文件的内容。请定义您自己的API键,如果您希望更改它,请在此处将博客页面定义为变量。
OPENAI_API_KEY=\ FIRECRAWL_API_KEY=\ FIRECRAWL_MCP-URL=https://mcp.firecrawl.dev/\/v2/sse BLOG_URL=https://huggingface.co/blog/agents
- 如果你改变
BLOG_URL,更喜欢可公开访问的页面(无登录/reg墙)以获得最佳效果。
______________________________________________________________________
跑
默认运行(使用 BLOG_URL 如果提供,否则为安全默认值 main.py):
python main.py可选(PowerShell)使用特定URL运行:
$env:BLOG_URL="https://openai.com/index/content-partnership-with-financial-times/"
python Bilal_Enes_Soylemez_MCP_Agent_Python_Code.py输出格式:
- 抓取内容的截断预览
- 最后一节:
==== LangGraph RESULT ====
- bullet 1
- bullet 2
- bullet 3
- bullet 4
- bullet 5______________________________________________________________________
基准重点(涵盖)
- “删除一个人工智能博客,获取有关内容的信息。”
- 我们通过MCP获取文章并总结要点。
______________________________________________________________________
文件命名和交付成果
- 代码:
main.py(代理人进入和流动) - 要求:
requirements.txt - 文档:
README.md
______________________________________________________________________
已知限制
- 某些页面(例如,有规则墙或高度动态的页面)可能会返回有限的降价;代理使用稳健的markdown优先解析,并在需要时回退到JSON截断。
______________________________________________________________________
扩展代理
- 添加a
fetch节点,将抓取移动到图中并将流扩展到fetch → parse → summarize. - 添加第二个
process用于结构化提取(例如标题/作者/时间戳)以生成JSON输出的节点。
______________________________________________________________________
支持
如果有任何东西无法运行:
- 验证
OPENAI_API_KEY和FIRECRAWL_MCP_URL. - 尝试使用不同的公共博客URL(例如。,
https://huggingface.co/blog/agents). - 确保你的Python≥3.10并且安装了依赖项。
