网络搜索工具

一个基于Tavily API和MCP协议的实时网络搜索工具,为语言模型和应用程序提供实时网络搜索功能。

  • by memohib
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 memohib/web_search_mcp

使用说明

网络搜索_MCP

带有网络搜索工具的MCP(模型上下文协议)服务器

该项目演示了如何使用Tavily API创建一个网络搜索工具,并将其与MCP(模型上下文协议)集成,以实现与AI系统的无缝交互。这允许您为语言模型或应用程序提供实时网络搜索功能。

概述

这 Web_Search_MCP 该项目利用了以下关键组件:

  • Tavilly API: 强大的搜索API,提供实时、全面的网络搜索结果,包括答案、原始内容和相关元数据。
  • FastMCP: FastMCP类使用Python类型提示和文档字符串自动生成工具定义,使创建和维护MCP工具变得容易。
  • 狼链: 具体而言 TavilySearchResults 来自Langchain的工具被用来有效地和Tavily API交互。
  • Dotenv: 用于从加载环境变量的库 .env 文件,安全地管理敏感信息,如API密钥。
  • 紫外线: 一个非常快速的Python包安装程序和解析器,用于管理和运行这个项目。

功能

该项目的核心在于 search_web 该工具提供以下功能:

  • 网络搜索: 接受搜索查询作为输入,并使用Tavily API从web检索相关搜索结果。
  • 详细结果: 提供搜索结果的详细信息,包括网站的内容、URL、相关性评分、内容类型和直接答案(如果可用)。
  • 格式化输出: 以结构良好的JSON格式返回搜索结果。输出包括一个状态指示器(success 或 error)、结果数组(如果成功)和时间戳。
  • 错误处理: 优雅地处理搜索过程中的错误,并以JSON格式返回信息丰富的错误消息。
  • 异步处理:搜索工具基于异步,可以同时处理许多请求。

先决条件

在运行项目之前,请确保您已经:

  • Python 3.8+: 您的系统上安装了Python 3.8或更高版本。
  • Tavilly API密钥: 一个有效的Tavily API密钥,可通过在Tavily网站上注册获得。
  • 紫外线: Python的uv包管理器。您可以使用以下方式安装它:
    pip install uv
    

安装

  1. 创建项目目录: 为项目创建一个目录并导航到其中:
    uv init Web_Search_MCP    
    
    ***通过运行上述代码,uv创建 pyproject.toml 和 .venv 在目录中***
  2. 创建项目文件: 创建文件 main.py 和 .env 在 Web_Search_MCP 目录。
  3. 激活Venv: 导航到.venv/Scripts/activate并激活Vritual环境
  4. 复制代码: 将代码复制到 main.py 和 .env 在您刚刚创建的文件中。
  5. 安装依赖关系: 使用 uv 安装所需的Python包:
    uv add "mcp[cli]" python-dotenv langchain-community tavily-python
    

配置

  1. .env 文件:

    • 创建一个名为的文件 .env 在 Web_Search_MCP 目录。
    • 将Tavily API密钥添加到 .env 文件格式如下:
      TAVILY_API_KEY='your_tavily_api_key'
      
      替换 your_tavily_api_key 使用您的Tavilly API密钥。
  2. claude_desktop_config.json:

    • 此文件由Claude桌面应用程序(如果您正在使用它)用于发现和运行FastMCP服务器。
    • 它应该位于 c:\Users\<Your User Name>\AppData\Roaming\Claude\claude_desktop_config.json
    • 确保通往您的道路 Web_Search_MCP 目录中 claude_desktop_config.json 是准确的。如果您的项目不在路径/Web_Search_MCP中, please modify the配置文件中的args字段。
    {
       "mcpServers": {
         "Mcp_Demo": {
           "command": "uv",
           "args": [
             "--directory",
             "path/Web_Search_MCP",
             "run",
             "main.py"
           ]
         }
       }
     }
    

运行MCP服务器

经过深思熟虑后 claude_desktop_config.json 文件,您可以从Claude桌面应用程序中启动服务器。

用法

一旦服务器运行,它就会公开一个名为 search_web 根据模型上下文协议。

  • 工具名称: search_web
  • 输入:
    • query (str):您要提交到网络的搜索查询。
  • 输出: 包含搜索结果的JSON格式字符串。

JSON响应示例(成功):

{
    "status": "success",
    "results": [
        {
            "title": "...",
            "url": "...",
            "content": "text",
            "score": 0.9,
            "raw_content": "..."
        },
        {
             "title": "...",
            "url": "...",
            "content": "text",
            "score": 0.9,
            "raw_content": "..."
        }
    ],
    "timestamp": 1708849844.064655
}