mcpField
G
Google Alerts Mcp

Google Alerts Mcp

ローカル
pypi.org検索243 週間前に更新

Google Alerts Mcp について

Google Alerts Mcpは、トピック別にGoogle Alertsのニュースを検索するMCPサーバーです。ブラウザーの操作手順を再現し、検索ごとにページ状態とセッションデータを動的に取得します。

主な機能

  1. 01トピック別のGoogle Alerts検索
  2. 02言語と地域の指定
  3. 03状態とセッションデータの動的取得
  4. 04記事のタイトル、リンク、要約、出典の解析
  5. 05リダイレクトURLの任意クリーニング

活用シーン

  1. 01特定トピックのニュース追跡
  2. 02指定した言語や地域でのニュース検索
  3. 03Googleのリダイレクトを介さない記事リンクの取得

MCP 対応

MCPクライアントに `search_google_alerts` ツールを提供し、検索語、言語、地域、URLクリーニングを指定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"google-alerts": {
"command": "uvx",
"args": [
"google-alerts-mcp"
]
}
}
}
起動コマンドuvx google-alerts-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypigoogle-alerts-mcp

ツール

1

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
clean_urlsbooleanいいえtrue の場合、Google のリダイレクトパラメーターを削除して直接のリンク先 URL を取得します(デフォルト:true)
languagestringいいえ言語コード(例:'zh-CN'、'en-US')
querystringはい検索するクエリ/トピック(例:'白银'、'artificial intelligence')
regionstringいいえ地域コード(例:'US'、'CN')

詳細

Google Alerts MCP サーバー

英語版 README

MCP(Model Context Protocol)ベースの Google Alerts プラグインです。ブラウザーのワークフローをシミュレートして、特定のトピックに関するニュースを取得します。このプラグインは Google Alerts ページの状態パラメーターを動的に抽出し、検出やブロックを回避します。

この MCP サーバーは Google のサービスにアクセスする必要があり、地域によってはインターネットへのアクセス環境が必要です。

機能

  • 動的な状態の抽出:Google Alerts ページから window.STATE パラメーターを自動的に抽出します
  • 検出防止機能:リクエストごとに新しいトークンとセッション Cookie を使用して、ブロックを回避します
  • 多言語対応:中国語、英語など、複数の言語で検索できます
  • ブラウザーのワークフローをシミュレート:ホームページにアクセス → Cookie/状態を抽出 → プレビュー URL を構築する、というブラウザーのアクセス手順を完全にシミュレートします
  • パラメーターのハードコードなし:すべての認証トークンと状態パラメーターを動的に抽出し、ハードコードされた値は使用しません
  • URL のクリーンアップ:Google のリダイレクトパラメーターを削除して、ニュースのリンク先を直接取得するかどうかを設定できます

ワークフロー

  1. 初期 Cookie の取得:https://www.google.com/alerts?hl={language} にアクセスして初期 Cookie を取得します
  2. 状態パラメーターの抽出:認証トークンなどの window.STATE パラメーターをページから抽出します
  3. プレビュー URL の構築:抽出したパラメーターと検索クエリを使用してプレビュー URL を構築します
  4. コンテンツの取得:適切な Cookie と状態パラメーターを使用してプレビューページを取得します
  5. 記事の解析:HTML レスポンスから記事のタイトル、URL、要約、情報源を抽出します

インストール

UV パッケージマネージャーを使用します:

# 克隆项目
git clone https://github.com/ycrao/google-alerts-mcp.git
cd google-alerts-mcp

# 安装依赖
uv sync

# 激活虚拟环境
source .venv/bin/activate  # Windows: .venv\Scripts\activate
# 或者直接
uv run python src/google_alerts_mcp/server.py

使用方法

MCP サーバーとして実行する

MCP クライアントの設定に追加します:

{
  "mcpServers": {
    "google-alerts": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/google-alerts-mcp/src/google_alerts_mcp/",
        "run",
        "server.py"
      ],
      "env": {}
    }
  }
}

または、パッケージとして公開済みの場合:

{
  "mcpServers": {
    "google-alerts": {
      "command": "uvx",
      "args": ["google-alerts-mcp"],
      "env": {}
    }
  }
}
利用可能なツール
search_google_alerts

特定のトピックに関する Google Alerts のニュース記事を検索します。

パラメーター:

  • query(必須):検索クエリ/トピック(例:「白銀」、「bitcoin」、「人工知能」)
  • language(任意):言語コード(デフォルト:「zh-CN」)
  • region(任意):地域コード(デフォルト:「US」)
  • clean_urls(任意):Google のリダイレクトパラメーターを削除して直接リンクを取得するかどうか(デフォルト:true)

例:

{
  "query": "bitcoin",
  "language": "en-US",
  "region": "US",
  "clean_urls": true
}

URL のクリーンアップ機能:

  • clean_urls=true の場合、Google のリダイレクトパラメーターが自動的に削除され、ニュースサイトのリンク先が直接返されます
  • clean_urls=false の場合、元の Google リダイレクト URL が保持されます
  • クリーンアップ前:https://www.google.com/url?q=https://example.com/article&sa=U&ved=...
  • クリーンアップ後:https://example.com/article

技術的な詳細

動的なパラメーターの抽出

サーバーは window.STATE から次のパラメーターを抽出します:

  • domain:Google のドメイン(通常は "com")
  • language:状態に含まれる言語コード
  • region:状態に含まれる地域コード
  • number_param:数値パラメーター(言語によって異なります)
  • locale_format:地域形式の文字列
  • token:認証トークン(検出を回避するための重要な要素)
検出防止機能
  • リクエストごとに新しいトークンを抽出
  • セッション Cookie を保持
  • 適切なブラウザーヘッダーを使用
  • 認証パラメーターをハードコードしない
  • トークンの抽出に失敗した場合は、適切にフォールバック

テスト

テストスイートを実行して機能を検証します:

# 测试完整 MCP 服务器功能
python test_mcp_server.py

テスト例

# 测试搜索功能
import asyncio
from google_alerts_mcp.server import GoogleAlertsClient

async def test():
    client = GoogleAlertsClient()
    try:
        # 中文搜索
        articles = await client.get_preview_content("白银", "zh-CN")
        for article in articles:
            print(f"标题: {article.title}")
            print(f"链接: {article.url}")
            print(f"摘要: {article.snippet}")
            print(f"来源: {article.source}")
            print("-" * 50)
        
        # 英文搜索(启用URL清理)
        client_clean = GoogleAlertsClient(clean_urls=True)
        articles = await client_clean.get_preview_content("bitcoin", "en-US")
        for article in articles:
            print(f"Title: {article.title}")
            print(f"URL: {article.url}")  # 直接链接,无Google重定向参数
            print(f"Snippet: {article.snippet}")
            print(f"Source: {article.source}")
            print("-" * 50)
        await client_clean.close()
        
        # 英文搜索(保留原始URL)
        client_original = GoogleAlertsClient(clean_urls=False)
        articles = await client_original.get_preview_content("bitcoin", "en-US")
        for article in articles:
            print(f"Title: {article.title}")
            print(f"URL: {article.url}")  # 包含Google重定向参数
            print(f"Snippet: {article.snippet}")
            print(f"Source: {article.source}")
            print("-" * 50)
        await client_original.close()
    finally:
        await client.close()

asyncio.run(test())

注意事項

  1. 動的トークン:システムは現在、動的に抽出したトークンのみに完全に依存し、ハードコードされた値は一切使用しません
  2. URL のクリーンアップ:URL のクリーンアップ機能はデフォルトで有効です。clean_urls=false パラメーターを指定すると、元の Google リダイレクト URL を保持できます
  3. リクエスト頻度:リクエストを頻繁に行いすぎないようにし、適度な間隔を空けることをおすすめします
  4. エラー処理:トークンの抽出に失敗した場合、古いハードコード値を使うのではなく、リクエストは適切に失敗します
  5. リアルタイムの状態:検索ごとに新しい状態パラメーターを取得し、検出防止の効果を最大限に高めます

依存ライブラリ

  • mcp:Model Context Protocol のサポート
  • httpx:非同期 HTTP クライアント
  • beautifulsoup4:HTML 解析
  • pydantic:データの検証とシリアル化

ライセンス

MIT License

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。