内容
# 🔎 Ollama MCP WebSearch Agent
一个用 Python 构建的最小 **Model Context Protocol (MCP)** 服务器,能够将 **web search** 集成到任何兼容 MCP 的客户端中。\
该项目演示了如何使用 **DuckDuckGo (ddgs)** 和 **新的 Ollama Web Search API (2025年9月)** 扩展 MCP 服务器与现实世界工具的结合。
------------------------------------------------------------------------
## ✨ 特性
- MCP 服务器暴露两个搜索工具:
- `search_duckduckgo` → DuckDuckGo 搜索(本地,无需 API 密钥)\
- `search_ollama` → Ollama 的新 web search API(需要 API 密钥)\
- 包含演示客户端以测试两个提供者。\
- 支持 `.env` 文件以实现干净的配置管理。\
- 干净的模块化结构,易于与其他工具(摘要、RAG 等)扩展。
------------------------------------------------------------------------
## 📂 项目结构
ollama-mcp-websearch/
├── backend/
│ ├── server.py # MCP 服务器实现
│ ├── __init__.py
│ └── tools/
│ └── web_search.py # DuckDuckGo 搜索工具
├── client_demo/
│ └── test_client.py # 用于测试的本地演示客户端
├── .env.example # 示例环境文件
├── requirements.txt
└── README.md
------------------------------------------------------------------------
## ⚡ 开始使用
### 1. 克隆仓库
``` bash
git clone https://github.com/<your-username>/ollama-mcp-websearch.git
cd ollama-mcp-websearch
```
### 2. 设置虚拟环境
``` bash
python3 -m venv .venv
source .venv/bin/activate
```
### 3. 安装依赖
``` bash
pip install -r requirements.txt
```
*(如果看到关于 `duckduckgo-search` 的警告,请卸载它并使用 `pip install ddgs` 代替)*
------------------------------------------------------------------------
## 🌱 环境设置
该项目使用 `.env` 文件进行配置。\
复制提供的 `.env.example` 并进行更新:
``` bash
cp .env.example .env
```
编辑 `.env`:
``` ini
# 🔑 Ollama API 密钥(仅对 Ollama 云 web search 必需)
OLLAMA_API_KEY=your_api_key_here
# 默认提供者(可选:duckduckgo 或 ollama)
DEFAULT_PROVIDER=duckduckgo
```
### 注意事项:
- `duckduckgo` 在本地工作,无需 API 密钥。\
- `ollama` 需要一个 **Ollama API 密钥**(云支持的 web search)。\
- `.env` 文件因安全原因被 Git 忽略。
------------------------------------------------------------------------
## ▶️ 使用方法
### 运行 MCP 服务器
``` bash
python -m backend.server
```
### 运行演示客户端
打开另一个终端,重新激活你的虚拟环境,然后运行:
``` bash
# DuckDuckGo(本地,始终有效)
python -m client_demo.test_client duckduckgo
# Ollama(需要 OLLAMA_API_KEY)
python -m client_demo.test_client ollama
```
------------------------------------------------------------------------
## 📌 示例输出
🔎 DuckDuckGo 搜索结果:关于 BHP 的最新 ASX 新闻
1. BHP 股票在季度报告后飙升
https://example.com/article1
BHP 宣布铁矿石生产强劲...
🔎 Ollama Web Search 搜索结果:关于 BHP 的最新 ASX 新闻
1. BHP 股价在盈利后上涨
https://example.com/ollama1
市场对 BHP 结果的最新反应...
------------------------------------------------------------------------
## 🛠 技术栈
- **Python 3.11+**
- **MCP 服务器(Ollama Python SDK)**
- **DuckDuckGo (ddgs) 搜索**
- **dotenv** 用于环境变量管理
------------------------------------------------------------------------
## 🚀 未来扩展
- 使用 Ollama 进行搜索结果的摘要(`mistral`、`llama3` 等)。\
- 添加多个搜索提供者(Bing、Google API)。\
- 集成到支持 MCP 的 IDE(Claude Desktop、Cursor)。
------------------------------------------------------------------------
## 📜 许可证
MIT 许可证。可以自由使用和扩展。
------------------------------------------------------------------------
## 🙌 致谢
- [DuckDuckGo Search (ddgs)](https://pypi.org/project/ddgs/)\
- [Ollama MCP](https://github.com/ollama/ollama-python)\
- [Model Context Protocol](https://modelcontextprotocol.io/)
连接信息
猜你喜欢
Agent-Reach
赋予你的AI Agent观察整个互联网的眼睛。读取并搜索...
文件系统操作
Node.js MCP服务器,用于文件系统操作,支持动态访问控制。
Fetch
从网页中检索和处理内容,并将HTML转换为markdown格式。
Cliclaw
您的CLI编码代理不需要保姆。cliclaw是一种与工具无关的元代理,它通过tmux并行运行Claude Code、Codex或任何TUI代理 —...
mcp-victorialogs
VictoriaLogs 的模型上下文协议(MCP)服务器的实现。
platform-engineering
一个平台工程团队的中心枢纽,提供资源、最佳实践和自动化工具。包括 IaC 模板、蓝图和操作指南,以帮助为云原生环境和 DevSecOps...