MCP Server: Google Programmable Search Engine

MCP Server: Google Programmable Search Engine

site icon
2025.04.29 0
TypeScript搜索服务微服务插件搜索工具
MCP Server for Google Programmable Search Engine 是一个微服务插件(MCP),用于Claude Desktop或任何支持MCP的客户端。它通过HTTP请求代理到Google的自定义搜索API(Custom Search API),并返回结构化的JSON结果。该服务提供了缓存、日志记录、速率限制和监控等功能,适用于需要集成Google搜索能力的应用场景。
View on GitHub

Overview

基本能力

产品定位

MCP Server for Google Programmable Search Engine 是一个微服务插件,主要用于代理Google的自定义搜索API请求,适用于需要集成Google搜索能力的应用场景。

核心功能

  • HTTP端点:提供/health/search/filters/tools/metrics/docs等端点。
  • Redis缓存:支持TTL-based缓存,带有LRU内存回退和stale-while-revalidate策略。
  • Prometheus监控:通过/metrics端点暴露监控数据。
  • 速率限制:默认30请求/分钟,可配置。
  • 结构化日志:使用Pino进行JSON日志记录。
  • 热重载:开发模式下支持代码热重载。
  • 易集成:通过mcp_config.json预配置,方便集成到Claude Desktop。

适用场景

  • 需要集成Google搜索能力的应用。
  • 需要缓存和速率限制的搜索服务。
  • 需要监控和日志记录的微服务。

工具列表

  • Node.js:运行环境。
  • npm:包管理工具。
  • Redis:可选缓存服务。
  • Prometheus:监控工具。
  • Pino:日志记录工具。

常见问题解答

  • Missing API Key:确保.env文件中设置了GOOGLE_API_KEY
  • Redis Errors:确保Redis服务运行且REDIS_URL配置正确。
  • Rate Limit:调整RATE_LIMIT_MAX以增加速率限制。
  • SSL Issues:检查网络和证书配置。

使用教程

使用依赖

  • Node.js v14或更高版本
  • npm v6或更高版本
  • Google API Key(启用Custom Search API)
  • Google Custom Search Engine ID (CSE ID)
  • Redis实例(可选,推荐用于缓存)

安装教程

git clone https://github.com/1999AZZAR/mcp-server-google-search.git
cd mcp-server-google-search
npm install
npm run build

配置

创建.env文件并配置以下变量:

GOOGLE_API_KEY=your_api_key_here
GOOGLE_CSE_ID=your_cse_id_here
PORT=3000
REDIS_URL=redis://localhost:6379
RATE_LIMIT_MAX=30
CACHE_TTL=3600

运行服务

  • 生产环境npm start
  • 开发环境npm run dev(支持热重载)

调试方式

  • 检查日志输出:使用Pino记录的JSON日志。
  • 监控端点:访问/metrics查看Prometheus监控数据。
  • 健康检查:访问/health/ready端点检查服务状态。

API参考

GET /health

返回200 OK表示服务健康。

GET /search

执行Google自定义搜索。

示例

curl "http://localhost:3000/search?q=weather+today"

GET /metrics

返回Prometheus格式的监控数据。

GET /docs

提供交互式Swagger UI文档。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。