Skip to main content
Glama
adenot

MCP Google Server

by adenot

mcp-google-server Googleカスタム検索とウェブページ閲覧用のMCPサーバー

鍛冶屋のバッジ

Google カスタム検索 API とウェブページ コンテンツ抽出機能を使用してウェブ検索機能を提供するモデル コンテキスト プロトコル サーバー。

設定

Google APIキーと検索エンジンIDの取得

  1. Google Cloud プロジェクトを作成します。

    • Google Cloud Consoleに移動

    • 新しいプロジェクトを作成するか、既存のプロジェクトを選択してください

    • プロジェクトの課金を有効にする

  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 を使用して Web 検索を実行します。

  • ウェブ全体または特定のサイトを検索する

  • 結果の制御数(1~10)

  • タイトル、リンク、スニペットで構造化された結果を取得します

ウェブページリーダーツール

任意の Web ページからコンテンツを抽出します。

  • ウェブページのコンテンツを取得して解析する

  • ページのタイトルと本文を抽出

  • スクリプトとスタイルを削除してコンテンツを整理する

  • タイトル、テキスト、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