项目简介

Saqr-MCP 是一个使用 Model Context Protocol (MCP) 构建的 Python 客户端-服务器应用。它旨在增强本地大型语言模型 (LLM) 的能力,通过 MCP 服务器为 LLM 提供外部工具,当前主要实现了网页搜索功能。客户端通过 Ollama 与本地 LLM 交互,服务器则托管并执行工具。

主要功能点

  • 提供网页搜索工具: 实现了一个名为 'web_search' 的工具,LLM 可以调用此工具进行网页搜索并获取内容。
  • 基于 MCP 协议: 服务器严格遵循 MCP 协议标准,通过 JSON-RPC 与客户端通信。
  • 集成本地语言模型: 通过客户端与 Ollama 交互,利用本地部署的 LLM 处理请求和调用工具。
  • 交互式聊天界面: 提供一个简单的控制台界面,方便用户与整个系统进行交互测试。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/ahmedhassan456/Saqr-MCP.git
    cd Saqr-MCP
  2. 创建并激活虚拟环境 (推荐使用 uv):
    uv venv
    # Windows:
    venv\Scripts\activate
    # Unix或MacOS:
    source venv/bin/activate
  3. 安装依赖:
    uv add -r requirements.txt
    playwright install chromium # 安装 Playwright 浏览器
  4. 配置环境变量:
    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 编辑 '.env' 文件,将 'MODEL_NAME' 设置为你想要使用的 Ollama 模型名称(例如:'qwen3:1.7b')。

服务器配置

Saqr-MCP 服务器是作为客户端启动的子进程运行的。对于任何支持通过启动子进程连接的 MCP 客户端,需要提供以下配置信息以启动和连接到 Saqr-MCP 服务器:

  • 服务器名称 (server name): "Saqr Server"
  • 传输协议 (transport): "stdio"
  • 启动命令 (command): 用于执行服务器脚本的可执行文件路径,例如 '"uv"' (如果你使用 uv 启动)。
  • 命令参数 (args): 传递给启动命令的参数列表,用于指示如何运行服务器脚本。对于 Saqr-MCP,这些参数应为 '["run", "--with", "mcp", "mcp", "run", "src\server.py"]' (请注意,'src\server.py' 在不同操作系统上路径分隔符可能需要调整,例如 Linux/MacOS 上可能是 'src/server.py')。

客户端会根据这些配置信息启动 'uv run --with mcp mcp run src\server.py' 命令来运行服务器,并通过标准输入/输出 (stdio) 协议与服务器通信。

基本使用方法

  1. 确保 Ollama 已安装并运行: 确认你在 '.env' 文件中指定的模型已下载并可用。
  2. 运行客户端:
    python main.py
    这会启动 MCP 客户端,客户端会自动启动 Saqr-MCP 服务器并连接。
  3. 在控制台输入查询: 当看到 'Query:' 提示符时,输入你的问题。客户端会将问题发送给 Ollama 模型,如果模型决定使用 'web_search' 工具,客户端会调用 MCP 服务器上的该工具并将结果反馈给模型以生成最终回复。
  4. 退出: 输入 'quit' 结束程序。

信息

分类

AI与计算