谷歌搜索MCP服务器

一个提供基于Google自定义搜索引擎API的工具接口的MCP服务器,适用于开发者和模型通过编程方式执行Google搜索。

  • by Calandrel
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 fvanevski/google_search_mcp

使用说明

谷歌搜索MCP服务器

该存储库包含一个模型上下文协议(MCP)服务器,该服务器为Google的自定义搜索引擎(CSE)API提供了一个基于工具的接口。它专为与MCP兼容的客户端一起使用而设计,例如Visual Studio Code等IDE中的客户端,允许开发人员和模型以编程方式执行Google搜索。

特性

  • 谷歌搜索集成: 使用CSE API执行Google搜索。
  • 扩展搜索参数: 支持多种搜索参数,包括 dateRestrict, siteSearch, fileType以及更多。
  • 灵活配置: 通过环境变量或 .env 文件。
  • 用户友好工具: 提供清晰的 google_search 支持各种搜索参数的工具。
  • 对话输出: 以对话格式返回搜索结果,使客户端易于使用结果。
  • 独立和异步: 服务器作为独立脚本运行,并使用异步架构以获得更好的性能。

先决条件

在运行服务器之前,你需要有Python 3.12+和 uv 安装。您还需要Google API密钥和可编程搜索引擎(CSE)ID。您还需要Node.js和 npx 运行MCP检查器工具进行测试。

安装

  1. 克隆存储库。

    # Use gh cli to clone repository
    gh repo clone fvanevski/google_search_mcp
    
    # Alternateively, use git to clone repository
    # git clone https://github.com/fvanevski/google_search_mcp.git
    
    # Enter the repository directory
    cd google_search_mcp
    
  2. 创建虚拟环境并安装所需的依赖项:

    # Create a virtual environment
    uv venv
    
    # Activate the virtual environment
    source .venv/bin/activate
    
    # Install the dependencies
    uv sync
    

运行和测试服务器

MCP服务器是一个通过标准I/O进行通信的命令行应用程序。要使用它,客户端(如IDE、编码代理或检查器工具)必须启动服务器进程。

运行诊断程序

您可以尝试直接从终端运行脚本,看看它是否能正确启动。这是一种快速验证Python环境和脚本基本语法的方法。

python google_search_mcp.py

但是,服务器将简单地启动并等待输入,因此您将无法直接从终端与它交互。

MCP检验员测试

交互式测试服务器的推荐方法是 MCP检查员。它作为命令行工具运行,并提供一个交互式shell,用于向服务器发送请求。

  1. 启动检查器: 您可以使用以下命令运行检查器,而无需永久安装 npx。检查器将为您启动MCP服务器脚本。从项目目录中,运行:

    # Run the inspector with `uv run --with <dependencies> -- python3 <script>`
    npx @modelcontextprotocol/inspector uv run --with requests,python-dotenv,pydantic,mcp -- python3 google_search_mcp.py
    

    即使您的虚拟环境处于活动状态 python 检查器执行的命令将不会正确指向具有必要依赖关系的解释器,因此我们使用uv代替 --with 旗帜。

  2. 与服务器交互: 一旦检查器启动,您可以单击“连接”按钮与服务器建立会话。然后,您可以使用以下命令 list_tools 和 call_tool 与它互动。

    示例会话:

    # List all available tools
    > list_tools
    
    # Call the 'google_search' tool with arguments
    > call_tool google_search '''{"query": "AI news", "dateRestrict": "d7"}'''
    

    这提供了一种可靠的方法来测试所有工具并验证服务器是否按预期工作。

配置

服务器是使用环境变量或 .env 项目根目录中的文件。

环境变量

  • GOOGLE_API_KEY:您的Google API密钥。
  • GOOGLE_CSE_ID:您的自定义搜索引擎(CSE)ID。

示例 .env 文件:

GOOGLE_API_KEY=your-secret-api-key
GOOGLE_CSE_ID=your-cse-id

使用MCP客户端(VS代码示例)

您可以从任何标准MCP客户端连接到此服务器。以下是在支持MCP的VS Code环境中如何做到这一点:

  1. 配置您的MCP客户端: 在IDE的MCP客户端设置中(例如 mcp.json 对于VS Code),配置一个指向该脚本的新MCP服务器。

    示例 mcp.json VS代码条目:

    {
      "servers": {
        "google_search": {
          "command": "uv",
          "args": [
            "run",
            "python",
            "google_search_mcp.py"
          ],
          "cwd": "/path/to/your/project"
        }
      }
    }
    

    注:更换 /path/to/your/project 带有项目目录的实际路径。

  2. 使用工具: 连接后,您可以在聊天或代理交互中使用公开的工具,进行自然语言查询或结构化调用。例如,要在谷歌上搜索有关机器学习的最新PDF文档,您可以发送以下结构化工具调用:

    {
      "tool": "google_search",
      "arguments": {
        "query": "machine learning",
        "dateRestrict": "m1",
        "fileType": "pdf"
      }
    }
    

    服务器将执行查询并返回搜索结果。