SerpApi MCP服务器-Python
一组模型上下文协议(MCP)服务器,与SerpAPI和YouTube集成,为AI助手提供搜索功能和数据检索。

概述
该项目提供了几个MCP服务器,使克劳德等人工智能助手能够执行各种搜索操作并从以下位置检索数据:
- 谷歌搜索
- Google新闻
- 谷歌学术
- 谷歌趋势
- 谷歌财经
- 谷歌地图
- 谷歌图片
- YouTube搜索
- YouTube文字记录
每台服务器都设计为与模型上下文协议(MCP)一起工作,使其易于与支持此协议的AI助手集成,例如Claude for Desktop或Grok。
特性
- 谷歌搜索(
serpapi_google_search.py) - 谷歌新闻(
serpapi_google_news.py) - 谷歌学者(
serpapi_google_scholar.py) - 谷歌趋势(
serpapi_google_trend.py) - 谷歌金融(
serpapi_google_finance.py) - 谷歌地图(
serpapi_google_maps.py) - 谷歌图片(
serpapi_google_images.py) - YouTube搜索(
serpapi_youtube_search.py) - YouTube文字记录(
youtube_transcript.py)
安装
先决条件
- Python 3.8或更高版本
- SerpAPI API密钥(在 serpapi.com)
设置
- 克隆存储库:
git clone https://github.com/yourusername/serpapi-mcp-server.git
cd serpapi-mcp-server- 创建虚拟环境并安装依赖项:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt- 创建一个
.env基于提供的项目根目录中的文件.env.example:
cp .env.example .env- 编辑
.env文件并添加您的SerpAPI API密钥:
SERPAPI_API_KEY=your_api_key_here快速开始
- 保存服务器代码:将服务器代码放入文件中,例如Server.py。
- 配置API密钥:使用SerpApi API密钥在同一目录中创建.env文件:
SERPAPI_API_KEY=your_api_key_here- 运行服务器:使用以下命令启动服务器:
python src/serpapi_google_search.py # Or any other server file- 与MCP客户端集成:将服务器连接到MCP客户端或主机(例如,Claude for Desktop)。
使用Claude for Desktop
- 将Claude for Desktop配置为使用这些MCP服务器,方法是将它们添加到您的
claude_desktop_config.json文件:
{
"mcpServers": {
"serpapi-google-search": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/serpapi_google_search.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
},
"serpapi-youtube-search": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/serpapi_youtube_search.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
},
"serpapi-google-news": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/serpapi_google_news.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
},
"serpapi-google-trend": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/serpapi_google_trend.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
},
"serpapi-google-scholar": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/serpapi_google_scholar.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
},
"serpapi-google-finance": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/serpapi_google_finance.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
},
"serpapi-google-maps": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/serpapi_google_maps.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
},
"serpapi-google-images": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/serpapi_google_images.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
},
"youtube-transcript": {
"type": "stdio",
"command": "path/to/python",
"args": [
"path/to/serpapi-mcp-server/src/youtube_transcript.py"
],
"env": {
"PYTHONPATH": "path/to/site-packages"
}
}
}
}- 确保您的SerpAPI密钥已在
.env项目根目录中的文件。
- 重新启动Claude for Desktop以加载新配置。
- 现在,您可以在与Claude的对话中直接使用这些搜索功能。
查询示例
以下是一些如何将这些服务器与Claude Desktop一起使用的示例:
谷歌搜索
Please search for "climate change solutions" and summarize the top results.Google新闻
Find the latest news about artificial intelligence.谷歌学术
Find recent academic papers on quantum computing.谷歌趋势
What are the trending topics in technology right now?谷歌财经
Look up the current stock price and financial information for Apple (AAPL).谷歌地图
Find coffee shops near Central Park, New York.谷歌图片
Search for images of "northern lights" and describe what you see.YouTube搜索
Search for tutorial videos on Python programming.YouTube文字记录
Get the transcript of this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQAPI参数
每台服务器都支持各种参数来微调您的搜索。以下是每个的所有参数:
谷歌搜索
q:搜索查询num:结果数量(1-100)start:分页的结果偏移量(基于1的索引)location:要搜索的位置gl:谷歌搜索的国家代码(例如“美国”、“英国”)hl:语言代码(例如“en”、“es”)device:设备类型(“桌面”、“移动”、“平板电脑”)safe:安全搜索设置(“活动”、“关闭”)filter:筛选重复内容(“0”表示关闭,“1”表示打开)time_period:按最近度过滤(例如,'d'表示过去一天)exactTerms:应准确出现的单词或短语include_domains:要包含在搜索结果中的域列表exclude_domains:要从搜索结果中排除的域列表raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
Google新闻
q:搜索查询gl:国家代码(例如“us”、“uk”)hl:语言代码(例如“en”、“es”)publication_token:在特定出版物中搜索topic_token:在特定主题内搜索story_token:获取特定故事的完整报道section_token:在特定部分内搜索so:排序方法(“0”表示相关性,“1”表示日期)raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
谷歌学术
q:搜索查询hl:语言代码(例如“en”、“es”)lr:语言限制(例如,'lang_fr|lang_de')start:分页的结果偏移num:结果数量(1-20)cites:搜索引用的IDas_ylo:时间范围的起始年份as_yhi:时间范围的年末scisbd:按日期排序(0表示相关性,1表示摘要,2表示所有内容)cluster:所有版本搜索的IDas_sdt:搜索类型或筛选器safe:安全搜索设置(“活动”、“关闭”)filter:筛选相似/省略的结果('0'表示关闭,'1'表示打开)as_vis:包括引用(“0”表示包括,“1”表示排除)as_rr:仅显示评论文章(“0”代表全部,“1”代表评论)raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
谷歌趋势
q:搜索查询(可以是用逗号分隔的多个查询)geo:地理位置(例如“美国”、“英国”)date:时间范围(例如,“现在1-d”、“现在7-d”和“今天12-m”)tz:时区偏移(分钟)data_type:搜索类型(例如,“TIMESERIES”、“GEO_MAP”)cat:类别IDgprop:属性过滤器(例如,“网络”、“新闻”、“图像”)raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
谷歌财经
q:股票、指数、共同基金、货币或期货的搜索查询hl:语言代码(例如“en”、“es”)window:图表的时间范围(例如,“1D”、“5D”、“1M”、“6M”、“YTD”、“1Y”、“5Y”、“MAX”)raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
谷歌地图
q:搜索查询type:搜索类型(“搜索”或“地点”)place_idGoogle地图上的一个地方的唯一参考data:筛选搜索结果或搜索特定地点ll:格式为“@纬度、经度、缩放”的GPS坐标google_domain:要使用的谷歌域名(默认为Google.com)hl:语言代码(例如“en”、“es”)gl:国家代码(例如“us”、“uk”)start:分页的结果偏移量(整数)raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
谷歌图片
q:搜索查询location:要搜索的位置uule:谷歌编码的位置(不能与位置一起使用)google_domain:要使用的谷歌域名(默认为Google.com)hl:语言代码(例如“en”、“es”)gl:国家代码(例如“us”、“uk”)cr:国家限制(例如“Country US”)device:设备类型(“台式机”、“平板电脑”、“移动设备”)ijn:页码(从零开始的索引)chips:谷歌提供的过滤字符串作为建议搜索tbs:高级搜索参数imgar:图像的纵横比(s’-方形,t’-高,w’-宽,xw’-全景)imgsz:图像大小('l'-大,'m'-中,'i'-图标等)image_color:图像的颜色(“红色”、“蓝色”、“绿色”、“黑色”、“白色”等)image_type:图像类型(“面部”、“照片”、“剪贴画”、“线条”、“动画”)licenses:许可范围(“f”-免费使用,“fc”-免费商业使用等)safe:安全搜索设置(“活动”、“关闭”)nfpr:排除自动更正的结果(“1”表示排除,“0”表示包含)filter:启用/禁用“相似结果”和“省略结果”筛选器time_period:按最近度过滤(例如,'d'表示过去一天)raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
YouTube搜索
search_query:搜索查询gl:国家代码(例如“us”、“uk”)hl:语言代码(例如“en”、“es”)sp:过滤器参数(例如,今天上传的视频的“CAISAhAB”)raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
YouTube视频
v:YouTube视频IDgl:国家代码(例如“us”、“uk”)hl:语言代码(例如“en”、“es”)next_page_token:用于检索下一页相关视频、评论或回复的令牌raw_json:返回完整的原始JSON响应(布尔值)readable_json:以markdown格式的文本(布尔值)返回结果
YouTube文字记录
video_url:YouTube视频URL或IDwith_timestamps:在成绩单中包含时间戳(布尔值)language:成绩单的语言代码(默认值:'en')preserve_formatting:保留HTML格式元素(布尔值)cookies_path:年龄限制视频的cookies.txt文件路径proxy:用于请求的HTTPS代理raw_json:返回完整的原始JSON响应(布尔值)readable_json:返回人类可读的格式化文本(布尔值)text_transcript:将成绩单作为单个文本字符串(布尔值)返回
故障排除
API密钥无效
- 验证中的API密钥配置
.env文件 - 在SerpAPI面板中确认API密钥处于活动状态
- 检查API键中是否有引号或空白
请求失败
- 检查网络连接
- 验证尚未超过API调用配额
- 验证请求参数格式
- 检查速率限制问题
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- SerpApi 用于提供搜索API
- YouTube转录API 用于转录检索
- 用于实现AI助手集成的MCP协议
