使用说明
网络搜索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密钥
地方发展设置
- 克隆存储库:
git clone git@github.com:addhe/mcp-websearch.git
cd mcp-websearch
- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 创建一个
.env使用您的Serper API密钥文件:
SERPER_API_KEY=your_api_key_here
- 在本地运行:
python main.py
VS代码集成
- 创建
.vscode/mcp.json具有以下配置:
{
"servers": {
"my-mcp-server-websearch": {
"type": "http",
"url": "https://your-cloud-function-url.cloudfunctions.net/websearch"
}
}
}
- 在VS Code中安装任何与MCP兼容的扩展以使用搜索功能。
部署到Google Cloud功能
先决条件
- 安装 谷歌云SDK
- 初始化SDK并设置项目:
gcloud init
部署步骤
- 确保在您的环境中设置了SERPER_API_KEY:
export SERPER_API_KEY=your_api_key_here
- 运行部署脚本:
./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计划
- 目前仅支持印尼新闻门户网站和维基百科
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。