Skip to main content
Glama
adenot

MCP Google Server

by adenot

mcp-google-server 用于 Google 自定义搜索和网页阅读的 MCP 服务器

铁匠徽章

使用 Google 自定义搜索 API 和网页内容提取功能提供网络搜索功能的模型上下文协议服务器。

设置

获取 Google API 密钥和搜索引擎 ID

  1. 创建 Google Cloud 项目:

  2. 启用自定义搜索 API:

    • 前往API 库

    • 搜索“自定义搜索 API”

    • 点击“启用”

  3. 获取 API 密钥:

    • 前往凭证

    • 点击“创建凭证”>“API 密钥”

    • 复制您的 API 密钥

    • (可选)将 API 密钥限制为仅限自定义搜索 API

  4. 创建自定义搜索引擎:

    • 前往可编程搜索引擎

    • 输入您要搜索的网站(使用www.google.com进行常规网页搜索)

    • 点击“创建”

    • 在下一页上,点击“自定义”

    • 在设置中,启用“搜索整个网络”

    • 复制您的搜索引擎 ID (cx)

Related MCP server: MCP Server for Google Search

发展

安装依赖项:

npm install

构建服务器:

npm run build

对于使用自动重建的开发:

npm run watch

特征

搜索工具

使用 Google 自定义搜索 API 执行网络搜索:

  • 搜索整个网络或特定网站

  • 控制结果数量(1-10)

  • 通过标题、链接和摘要获取结构化结果

网页阅读器工具

从任何网页提取内容:

  • 获取并解析网页内容

  • 提取页面标题和正文

  • 通过删除脚本和样式来清理内容

  • 返回包含标题、文本和 URL 的结构化数据

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 Google 自定义搜索服务器:

npx -y @smithery/cli install @adenot/mcp-google-search --client claude

要与 Claude Desktop 一起使用,请使用您的 Google API 凭据添加服务器配置:

在 MacOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json在 Windows 上: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "google-search": {
      "command": "npx",
      "args": [
        "-y",
        "@adenot/mcp-google-search"
      ],
      "env": {
        "GOOGLE_API_KEY": "your-api-key-here",
        "GOOGLE_SEARCH_ENGINE_ID": "your-search-engine-id-here"
      }
    }
  }
}

用法

搜索工具

{
  "name": "search",
  "arguments": {
    "query": "your search query",
    "num": 5  // optional, default is 5, max is 10
  }
}

网页阅读器工具

{
  "name": "read_webpage",
  "arguments": {
    "url": "https://example.com"
  }
}

网页读者的回应示例:

{
  "title": "Example Domain",
  "text": "Extracted and cleaned webpage content...",
  "url": "https://example.com"
}

调试

由于 MCP 服务器通过 stdio 进行通信,调试起来可能比较困难。我们推荐使用MCP Inspector ,它以包脚本的形式提供:

npm run inspector

检查器将提供一个 URL 来访问浏览器中的调试工具。

Available Tools

2 tools
read_webpageA

Fetch and extract text content from a webpage

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the webpage to read

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It only states basic purpose without mentioning rate limits, authentication, dynamic content handling, or error responses.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action, no unnecessary words. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is adequate but lacks details on handling of large pages, timeouts, or what 'text content' entails (e.g., stripping HTML).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (single 'url' parameter described), so baseline is 3. The description adds no extra meaning beyond the schema, such as URL format or protocol support.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Fetch and extract') and the resource ('text content from a webpage'), distinguishing it from sibling tool 'search' which is for querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The sibling 'search' suggests a different purpose, but the description does not clarify contexts or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.0.0
    • First observedread_webpage
    • First observedsearch

TDQS

B3.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one fetches content from a specific URL, the other performs web searches. There is no overlap or ambiguity.

Naming Consistency2/5

The naming pattern is inconsistent: 'read_webpage' uses verb_noun with an underscore, while 'search' is a single verb without a noun or underscore. This lack of uniformity could confuse agents.

Tool Count3/5

With only 2 tools, the server is minimal but still covers two core web operations. The count is at the low end of what's reasonable for a focused server, but not necessarily inappropriate.

Completeness3/5

The set provides basic web search and page reading, which covers common use cases. However, it lacks features like filtering search results, handling pagination, or extracting specific elements, leaving minor gaps.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers