🔍 🤖 🌐 Ollama Chat with MCP
这个应用程序演示了如何在本地模型聊天中使用 MCP 服务器和客户端,通过 Ollama 实现,并结合了通过 Serper 进行的网页搜索。
redbuilding
README
🔍 🤖 🌐 Ollama Chat with MCP
一个强大的演示,展示了如何使用模型上下文协议 (MCP) 将本地 LLM 与实时网络搜索功能集成。
概述
Ollama Chat with MCP 展示了如何通过工具使用来扩展本地语言模型的功能。此应用程序将通过 Ollama 本地运行 LLM 的强大功能与 MCP 服务器提供的最新网络搜索功能相结合。
该项目由三个主要组件组成:
- MCP 网络搜索服务器: 使用 Serper.dev API 提供网络搜索功能
- 终端客户端: 用于聊天和搜索交互的 CLI 界面
- Web 前端: 一个用户友好的基于 Gradio 的 Web 界面
通过使用这种架构,该应用程序演示了 MCP 如何使本地模型能够访问外部工具和数据源,从而显着增强其功能。
特性
- 🔎 网络增强聊天: 在对话期间访问实时网络搜索结果
- 🧠 本地模型执行: 使用 Ollama 在您自己的硬件上完全运行模型
- 🔌 MCP 集成: 演示模型上下文协议的实际实现
- 🌐 双重界面: 在终端 CLI 或基于 Web 的 GUI 之间选择
- 📊 结构化搜索结果: 清理网络搜索数据的格式,以获得最佳上下文
- 🔄 对话记忆: 在整个聊天会话中保持上下文
要求
- Python 3.11+
- 已安装并在本地运行的 Ollama
- 一个 Serper.dev API 密钥(提供免费层)
- 用于网络搜索的互联网连接
安装
-
克隆存储库:
git clone https://github.com/redbuilding/ollama-chat-with-mcp.git cd ollama-chat-with-mcp
-
安装依赖项:
pip install -r requirements.txt
-
在项目根目录中创建一个
.env
文件,其中包含您的 Serper.dev API 密钥:SERPER_API_KEY=your_serper_api_key_here
-
确保已安装 Ollama 并且硬编码模型可用(默认 qwen2.5:14b):
ollama pull qwen2.5:14b
用法
启动 Web 界面
要使用基于 Web 的界面:
python chat_frontend.py
这将启动 Gradio Web 界面,通常可以在 http://localhost:7860 访问
使用终端客户端
要使用命令行界面:
python chat_client.py
搜索命令
在这两个界面中,您都可以使用特殊命令来触发网络搜索:
- 搜索并总结:
#search for "financial market outlook April 2025"
- 搜索并回答一个问题:
#search for "reality TV this week" and what happened recently?
其他命令
- 清除对话历史记录:
#clear
- 退出应用程序:
exit
或quit
工作原理
- MCP 服务器将网络搜索功能公开为工具
- 当用户请求搜索信息时,客户端将查询发送到 MCP 服务器
- 服务器通过 Serper.dev 处理请求并返回格式化的结果
- 客户端构建一个增强的提示,包括搜索结果
- 本地 Ollama 模型接收此提示并生成知情响应
- 响应将显示给用户,并带有搜索归属
文件结构
server.py
- 带有网络搜索工具的 MCP 服务器chat_client.py
- 基于终端的聊天客户端chat_frontend.py
- Gradio Web 界面客户端requirements.txt
- 项目依赖项.env
- API 密钥的配置(创建此文件并添加您的 Serper 密钥)
自定义
- 通过修改聊天客户端文件中的模型名称来更改 Ollama 模型
- 通过更改
max_results
参数来调整搜索结果的数量 - 修改提示模板以更好地适应您的特定用例
贡献
欢迎贡献!请随时提交拉取请求。
许可证
该项目已获得 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE 文件。
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。
Substack Reader
允许从 Adam Mancini 在 Substack 上的 Trade Companion 获取和阅读仅限订阅者内容,使 Claude 能够访问和讨论最新的金融交易文章。
mcp-solver
一个模型上下文协议(MCP)服务器,它向大型语言模型公开 MiniZinc 约束求解能力。
Excel Reader Server
一个模型上下文协议 (MCP) 服务器,提供读取 Excel (xlsx) 文件的工具,能够从整个工作簿或特定工作表中提取数据,并将结果以结构化的 JSON 格式返回。