使用说明
研究助理MCP
使用模型上下文协议(MCP)构建的智能研究助手,将网络抓取功能与矢量数据库存储相结合,用于全面的研究工作流程。
特性
🔍 网络研究和抓取
- Firecrawl集成:使用Firecrawl MCP服务器进行高级网络抓取
- 内容提取:从网页中智能提取结构化内容
- 多源研究:高效地抓取和分析多个网站
🗃️ 知识管理
- 矢量数据库存储:由ChromaDB提供语义搜索支持
- 主题组织:使用单独的矢量数据库按主题组织研究
- 副本检测:使用MD5哈希进行自动重复数据删除
- 语义搜索:使用相似性搜索查找相关信息
🤖 人工智能助手
- LangGraph集成:复杂的对话流管理
- 工具集成:无缝访问研究和存储工具
- 奥拉马LLM:本地语言模型支持(Qwen3)
- 内存持久性:对话历史和上下文保留
建筑
该系统由两个主要部分组成:
服务器组件(server.py)
- MCP服务器:基于FastMCP的服务器公开研究工具
- ChromaDB集成:使用Ollama嵌入的矢量存储
- 研究工具:
save_research_data():将内容存储在特定主题的数据库中search_research_data():跨存储研究的语义搜索list_research_topics():查看所有研究主题delete_research_topic():删除主题和数据get_topic_info():详细的主题信息
客户端组件(client.py)
- LangGraph代理:协调研究工作流程
- 多服务器MCP客户端:连接到研究和Firecrawl服务器
- 交互界面:命令行研究助理
- 工具绑定:自动工具发现和集成
安装
先决条件
- Python 3.8+
- 奥拉玛 在本地运行
- Firecrawl API密钥
- Node.js(用于Firecrawl MCP服务器)
设置
- 再进行:
uv add chromadb langchain-chroma langchain-ollama
pip install langchain langgraph langchain-mcp-adapters python-dotenv
- 配置Olama型号:
ollama pull qwen3
ollama pull nomic-embed-text
- 环境配置:
创建一个
.env文件:
FIRECRAWL_API_KEY=your_firecrawl_api_key_here
- MCP配置:
更新
mcp.json与您的系统匹配的路径:
{
"research_server": {
"command": "uv",
"args": ["--directory", "/path/to/your/project", "run", "server.py"],
"transport": "stdio"
},
"firecrawl_server": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"transport": "stdio"
}
}
用法
启动研究助理
python client.py
可用命令
研究运营
"Research the latest developments in AI agents""Scrape https://example.com and save key insights""Search my previous research on machine learning"
知识管理
"Save this research to topic: ai_agents""What topics have I researched?""Show me information about topic: machine_learning""Delete topic: outdated_research"
工作流示例
- 网络研究:请助理研究一个主题
- 内容刮擦:使用Firecrawl自动抓取URL
- 知识存储:重要发现被保存到特定主题的数据库中
- 信息检索:使用语义查询搜索累积的研究
技术细节
矢量数据库结构
- 存储位置:
./research_chroma_dbs/ - 组织:按主题单独收集ChromaDB
- 嵌入:奥拉马
nomic-embed-text模型 - 元数据:用于重复数据消除的内容哈希
MCP服务器工具
# Research data management
save_research_data(content: List[str], topic: str = "default") -> str
search_research_data(query: str, topic: str = "default", max_results: int = 5) -> str
# Topic management
list_research_topics() -> str
get_topic_info(topic: str) -> str
delete_research_topic(topic: str) -> str
LangGraph代理流
- 用户输入 → 聊天节点
- 工具选择 → 条件路由
- 工具执行 → 研究/存储操作
- 响应生成 → 格式化结果
配置选项
Ollama设置
- 基本URL:
http://localhost:11434 - 聊天模型:
qwen3(可配置) - 嵌入模型:
nomic-embed-text
ChromaDB设置
- 持久性:本地目录存储
- 集合命名:
research_{topic} - 相似性度量:余弦相似性
故障排除
常见问题
- Ollama连接:确保Ollama在端口11434上运行
- Firecrawl API:验证在环境中设置了API密钥
- 路径配置:更新
mcp.json具有正确的项目路径 - 依赖项:安装所有必需的正确版本的软件包
错误消息
"No research data found for topic":主题数据库不存在"Error saving research data":检查ChromaDB权限"Failed to start research assistant":验证MCP服务器配置
贡献
该研究助理演示了先进的MCP集成模式:
- 多服务器MCP客户端架构
- 矢量数据库与MCP工具的集成
- LangGraph代理编排
- 语义搜索与知识管理
许可证
该项目是MCP教程系列的一部分,展示了使用现代人工智能工具的研究助理功能。
