Web搜索MCP服务器

一个用于从各种印度尼西亚新闻门户和维基百科搜索内容的模型上下文协议(MCP)服务器实现,可作为Google云函数部署。

  • by addhe
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 addhe/mcp-websearch

使用说明

网络搜索MCP服务器

一种模型上下文协议(MCP)服务器实现,用于搜索来自各种印尼新闻门户网站和维基百科的内容。此应用程序可以部署为Google Cloud功能。

什么是MCP?

MCP(模型上下文协议)是一种开放协议,它规范了应用程序如何向LLM提供上下文。将MCP想象成AI应用程序的USB-C端口——它提供了一种将AI模型连接到不同数据源和工具的标准化方法。

关键利益

  • LLM可以直接插入的预构建集成列表越来越多
  • 在LLM提供商和供应商之间灵活切换
  • 在基础架构中保护数据的最佳实践

架构概述

MCP遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:

  • MCP主机:希望通过MCP访问数据的程序,如Claude Desktop、IDE或AI工具
  • MCP客户端:与服务器保持1:1连接的协议客户端
  • MCP服务器:通过标准化的模型上下文协议公开特定功能的轻量级程序
  • 数据源:MCP服务器可以访问的本地(文件、数据库)和远程服务(API)

MCP核心概念

MCP服务器可以提供三种主要功能:

  • 资源:可以由客户端读取的类文件数据(如API响应或文件内容)
  • 工具:LLM可以调用的函数(经用户批准)
  • 提示:帮助用户完成特定任务的预先编写的模板

系统要求

  • Python 3.11或更高版本
  • 谷歌云SDK
  • 启用计费的Google Cloud帐户
  • 用于web搜索功能的Serper API密钥

地方发展设置

  1. 克隆存储库:
git clone git@github.com:addhe/mcp-websearch.git
cd mcp-websearch
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 创建一个 .env 使用您的Serper API密钥文件:
SERPER_API_KEY=your_api_key_here
  1. 在本地运行:
python main.py

VS代码集成

  1. 创建 .vscode/mcp.json 具有以下配置:
{
    "servers": {
        "my-mcp-server-websearch": {
            "type": "http",
            "url": "https://your-cloud-function-url.cloudfunctions.net/websearch"
        }
    }
}
  1. 在VS Code中安装任何与MCP兼容的扩展以使用搜索功能。

部署到Google Cloud功能

先决条件

  1. 安装 谷歌云SDK
  2. 初始化SDK并设置项目:
gcloud init

部署步骤

  1. 确保在您的环境中设置了SERPER_API_KEY:
export SERPER_API_KEY=your_api_key_here
  1. 运行部署脚本:
./deploy.sh

脚本将:

  • 启用所需的Google Cloud API
  • 使用Python 3.11运行时部署函数
  • 使用SERPER_API_KEY配置功能

函数用法

使用MCP协议时,使用以下JSON正文格式发送HTTP POST请求:

{
    "name": "get_docs",
    "parameters": {
        "query": "your search query",
        "library": "detik|liputan6|cnn|wikipedia"
    }
}

示例响应:

{
    "result": "Text content from the searched portal",
    "type": "success"
}

可用门户:

  • 秒 (news.detik.com/berita)
  • liputan6(liputan6.com/news)
  • cnn(cnnindonesia.com/national)
  • 维基百科(www.wikipedia.org)

技术细节

  • 运行时:Python 3.11
  • 支持MCP协议的HTTP触发器
  • 使用httpx和aiohttp实现异步
  • BeautifulSoup4用于HTML解析
  • 内存:256MB(默认)
  • 超时:60秒(默认)

环境变量

  • SERPER_API_KEY:用于网络搜索功能的Google Serper API密钥(必需)

错误处理

该函数返回相应的HTTP状态代码:

  • 200:请求成功,MCP格式响应
  • 400:参数缺失或无效
  • 404:找不到函数名
  • 500:服务器错误或超时

错误响应遵循MCP格式:

{
    "error": "Error message",
    "type": "error"
}

局限性

  • 最长超时时间:60秒
  • 最大内存:256MB(如果需要可以增加)
  • 费率限制适用于您的Serper API计划
  • 目前仅支持印尼新闻门户网站和维基百科

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。