
ヘッドレスChromiumを使用したGoogle検索とページ取得のためのMCPサーバー
noapi-google-mcp や gpt-oss-20B/120B-Vision、その他パイプラインにあるオープンソースモデルをサポートしたい場合は、GPU 計算資金への寄付をお願いします。約 3000 ドルが必要です。
これが役立つと感じたら、継続的な開発と新機能のサポートをご検討ください。
BTC:16DT4AHemLyn7C6P116YepjY518gu9wUUH
ETH:
0x7287D1F9c77832cFF246937af0443622bFdACD04
38 のツール。API キーは不要。任意のローカル LLM に実際の Google 検索、ライブフィード、ビジョン、OCR、動画の完全な理解を提供します。
ローカル LLM を完全に接続されたアシスタントに変える MCP サーバー。実際の Google 検索結果、ライブニュースとソーシャルフィード、画像の逆検索、オフライン OCR、YouTube の文字起こしとクリップ抽出 — すべてヘッドレス Chromium とオープンソースの ML モデルでローカル実行。API キー不要、使用制限なし、クラウド依存なし。
LM Studio、Claude Desktop、OpenClaw、Ollama、および MCP 互換クライアントで動作します。
Google がヘッドレス Chromium ブラウザを検出し、検索結果の代わりに CAPTCHA を表示するようになりました (#2)。適切に修正し、さらにニューラルネット CAPTCHA ソルバーを追加しました(気まぐれで)。
ステルスパッチ:
navigator.webdriver を偽装、偽のブラウザプラグイン、chrome.runtime、Playwright のフィンガープリントを削除aarch64 ではなく、実際の Chromium バイナリに一致)ニューラルネット CAPTCHA ソルバー (MobileNetV2 + OpenCV):
すべての CAPTCHA を解決できるわけではありませんが、一部は突破できます。正直なところ、できるから作っただけです。
YouTube 向けの完全ローカル検索拡張生成パイプライン。任意のチャンネルを購読すると、フィードをチェックしたときにサーバーが自動的に音声をダウンロードし、Whisper で文字起こしし、全文を FTS5 全文検索付き SQLite に保存します。すべての動画のすべての単語が検索可能になり、LLM に質問すると適切な動画から回答を取得します。
面白いものを見つけましたか?LLM にそのセグメントをクリップとして抽出するよう依頼できます。LLM は文字起こしを読み、正確なタイムスタンプを見つけ、動画を切り取ります。これは AI/LLM による動画編集 の始まりです — LLM がコンテンツを理解し、タイムスタンプだけでなく発言内容に基づいてクリップをカットします。
仕組み:
subscribe — ハンドル(@3Blue1Brown)、URL、チャンネルIDのいずれかでcheck_feeds — 新しい動画が取得され、ローカルで自動文字起こし (faster-whisper 使用)。文字起こしはデータベースに書き込まれ、即時検索可能。1回のチェックで最大5本の動画、再ダウンロードを避けるためにキャッシュされます。search_feeds — すべての文字起こしに対する全文検索。AND、OR、NOT、引用符付きフレーズに対応。LLM が質問に答える正確な動画と箇所を見つけます。extract_video_clip — 関心のある内容を LLM に伝えると、動画からクリップを切り取ります。LLM は文字起こしを使用して適切なセグメントを見つけ、自動的に抽出します。```
"Subscribe to @AndrejKarpathy on YouTube"
"Check my feeds"
"Search my feeds for backpropagation explained"
"What did Karpathy say about tokenization?"
"Extract the part where he explains gradient descent"
"Cut a clip of the hardware comparison section"No embeddings, no vector database, no API — just Whisper + SQLite FTS5 running on your machine.
> **ロードマップ:** クリップ抽出は、完全なAI駆動の動画編集への第一歩です。今後のリリースでは、音楽/オーディオのオーバーレイ、動画のリミックス、マルチクリップの編集、TikTok/Reels/Shorts向けの縦型リフォーマット、自動ハイライトリールが追加される予定です。これらはすべて、あなたのLLMがコンテンツを理解することで実現します。
---
### ライブフィードの購読
ニュース、Reddit、Hacker News、YouTubeチャンネル、Twitter/Xプロフィール、GitHubリポジトリ、arXiv論文、ポッドキャストを購読できます。コンテンツは取得され、SQLiteに全文検索付きでローカルに保存され、あなたのLLMが即座に利用できます。
| 新ツール | 機能 |
|----------|-------------|
| `subscribe` | あらゆるソースを追加 — ニュースRSS、Reddit、HN、GitHub、arXiv、YouTube、ポッドキャスト、Twitter/X |
| `unsubscribe` | 購読とその保存コンテンツを削除 |
| `list_subscriptions` | 全てのアクティブなフィードとアイテム数を表示 |
| `check_feeds` | 全ての購読をポーリングし、新しいコンテンツを取得、YouTube動画を自動文字起こし |
| `search_feeds` | フィードが収集した全てのデータを全文検索 |
| `get_feed_items` | 最近のアイテムをソースやタイプでフィルタして閲覧 |
**事前設定のニュースソース** — 一言で購読: `bbc`, `cnn`, `nyt`, `guardian`, `npr`, `aljazeera`, `techcrunch`, `ars`, `verge`, `wired`, `reuters`
**arXivショートカット** — `ai`, `ml`, `cv`, `nlp`, `robotics`, `crypto`, `systems`, `hci````
"Subscribe to BBC News, r/LocalLLaMA, and Hacker News"
"Follow @elonmusk on Twitter"
"Subscribe to the YouTube channel @3Blue1Brown"
"Watch anthropics/claude-code on GitHub for new releases"
"Subscribe to the machine learning arXiv category"
"Check my feeds"
"Search my feeds for transformer architecture"
"What's new in my Reddit feeds?"
会議の文字起こし、フォーマット変換、ドキュメント読み取り — すべてローカル、クラウド不要。
| 新しいツール | 機能説明 |
|---|---|
transcribe_local | Whisperでローカルの音声・動画ファイル(mp3, wav, mp4, mkvなど)を文字起こし |
convert_media | FFmpegフォーマット変換 — 動画から音声、形式間変換、動画からGIF |
read_document | PDF、DOCX、HTML、CSV、JSON、30以上のテキスト形式からテキストを抽出 |
メール取得、QRコード生成、URL短縮、ページアーカイブ、Wikipedia検索、S3アップロード。
**フィードに追加の依存関係は一切不要。** 完全にPython標準ライブラリ上に構築 — ストレージにはSQLite、検索にはFTS5、フェッチにはurllib、パースにはxml.etreeを使用。YouTubeとTwitterは既存のPlaywrightブラウザを使用。`convert_media`にはFFmpegが必要(一般的にプリインストール済み)。
---
## 全38ツール(カテゴリ別)
### ライブフィード購読
| ツール | 説明 |
|------|-------------|
| `subscribe` | ニュース、Reddit、HN、GitHub、arXiv、YouTube、ポッドキャスト、Twitter/Xを購読 |
| `unsubscribe` | 購読とその保存コンテンツを削除 |
| `list_subscriptions` | アクティブな購読をすべて一覧表示(アイテム数付き) |
| `check_feeds` | すべてまたは特定のソースから新しいコンテンツを取得 |
| `search_feeds` | 保存されたすべてのフィードコンテンツを全文検索 |
| `get_feed_items` | ソースまたはタイプでフィルタリングした最近のアイテムを取得 |
### Google検索とWeb
| ツール | 説明 |
|------|-------------|
| `google_search` | 時間フィルター、サイトフィルター、ページネーション、言語/地域指定に対応したウェブ検索 |
| `google_news` | 記事のサムネイルをインライン表示するニュース検索 |
| `google_scholar` | 引用付きの学術論文検索 |
| `google_images` | 結果をチャット内にインライン表示する画像検索 |
| `google_trends` | トピックの経時的な関心度、関連クエリ |
| `visit_page` | 任意のURLを取得し、読みやすいテキストを抽出 |
### 旅行&ショッピング
| ツール | 説明 |
|------|-------------|
| `google_shopping` | 価格、店舗、評価、画像付きの商品検索 |
| `google_flights` | 価格と移動時間付きのフライト検索 |
| `google_hotels` | 画像、価格、評価、予約URL付きのホテル検索 |
| `google_translate` | 100以上の言語に対応した翻訳 |
| `google_maps` | 評価、レビュー、地図スクリーンショット付きの場所検索 |
| `google_maps_directions` | ステップバイステップと地図スクリーンショット付きのルート案内 |
### 金融&情報
| ツール | 説明 |
|------|-------------|
| `google_finance` | 株価、市場データ、企業情報 |
| `google_weather` | 現在の天気と数日間の予報 |
| `google_books` | 著者、ISBN、スニペット付きの書籍検索 |
### ビジョン&OCR
| ツール | 説明 |
|------|-------------|
| `google_lens` | 逆画像検索 — 物体、商品、ランドマーク、テキストを識別 |
| `google_lens_detect` | 画像内のすべての物体を検出(OpenCV)し、それぞれをLensで識別 |
| `ocr_image` | 画像からテキストをローカルで抽出(RapidOCR、完全オフライン) |
| `list_images` | ディレクトリ内の画像ファイルを一覧表示(ビジョンツールで使用) |
### 動画&音声インテリジェンス — AI駆動の動画編集
| ツール | 説明 |
|------|-------------|
| `transcribe_video` | 任意の動画をダウンロードし、タイムスタンプ付きで文字起こし(faster-whisper) |
| `transcribe_local` | ローカルの音声/動画ファイル(mp3, wav, m4a, mp4, mkvなど)を文字起こし |
| `search_transcript` | 文字起こし済みの動画をキーワードでトピック検索 |
| `extract_video_clip` | AI駆動のクリップ抽出 — LLMに欲しい部分を伝えると、文字起こしコンテキストを使って動画をカット |
| `convert_media` | FFmpeg経由で音声/動画フォーマットを変換 |
### ドキュメント&データ
| ツール | 説明 |
|------|-------------|
| `read_document` | PDF、DOCX、HTML、CSV、JSONなど30以上のフォーマットからテキストを抽出 |
### メール
| ツール | 説明 |
|------|-------------|
| `fetch_emails` | IMAP経由でメールを取得 — Gmail、Outlook、Yahoo、iCloud、任意のIMAPサーバー |
### Webユーティリティ
| ツール | 説明 |
|------|-------------|
| `paste_text` | テキストをペーストビンに投稿し、共有可能なURLを取得 |
| `shorten_url` | TinyURLで任意のURLを短縮 |
| `generate_qr` | QRコード画像の生成(URL、Wi-Fi、連絡先、任意のデータ) |
| `archive_webpage` | Wayback Machineにウェブページをアーカイブ |
| `wikipedia` | 任意の言語でのWikipedia記事検索 |
### クラウドストレージ
| ツール | 説明 |
|------|-------------|
| `upload_to_s3` | MinIO、AWS S3、DigitalOcean Spaces、Cloudflare R2、Backblaze B2にファイルをアップロード |
---
## 対応ファイルフォーマット
### ドキュメント(`read_document`)
| カテゴリ | フォーマット |
|----------|---------|
| ドキュメント | PDF(スキャンされたページはOCRフォールバック)、DOCX |
| Web | HTML、HTM |
| データ | CSV、JSON、XML、YAML、YML、TOML |
| テキスト | TXT、MD、LOG |
| 設定 | INI、CFG、CONF、ENV |
| コード | PY、JS、TS、GO、RS、C、CPP、H、JAVA、KT、RB、SQL、R、M、SWIFT |
| シェル | SH、BASH、ZSH |
### 音声&動画(`transcribe_local`、`transcribe_video`、`convert_media`)
| カテゴリ | フォーマット |
|----------|---------|
| 音声 | MP3、WAV、M4A、FLAC、OGG、AAC、WMA、OPUS |
| 動画 | MP4、MKV、WEBM、AVI、MOV |
| 特殊 | GIF(動画からGIFへの出力) |
| 入力 | FFmpegがデコード可能な任意のフォーマット(数百のフォーマット) |
### 画像(`google_lens`、`google_lens_detect`、`ocr_image`、`list_images`)
| カテゴリ | フォーマット |
|----------|---------|
| 標準 | JPG、JPEG、PNG、GIF、BMP、WEBP |
| プロフェッショナル | TIFF、TIF、SVG |
| 入力方法 | ローカルファイルパス、公開URL、base64(チャットにドラッグ&ドロップ) |
---
## APIベースの代替案ではなく、これを使う理由
| | **noapi-google-search-mcp** | APIベースのMCPサーバー | OpenClaw内蔵 |
|---|---|---|---|
| APIキーが必要 | **いいえ** | はい(Google CSE API) | はい(Brave/Perplexity) |
| コスト | **無料** | 1日100クエリ以降は有料 | API料金 |
| セットアップ時間 | **`pip install` + 実行** | Cloudプロジェクト作成、API有効化、設定 | 複数のAPIキー |
| 結果の品質 | **実際のGoogle結果** | カスタム検索エンジン | Braveインデックス |
| JavaScriptページ | **レンダリング可能(Chromium)** | JSをレンダリング不可 | JSをレンダリング不可 |
| ツール数 | **38** | 1~3 | 2(web_search、web_fetch) |
| Google検索 | 内蔵(フィルター付き) | 基本のみ | 利用不可 |
| Googleショッピング | 内蔵 | 利用不可 | 利用不可 |
| Googleフライト | 内蔵 | 利用不可 | 利用不可 |
| Googleホテル | 内蔵 | 利用不可 | 利用不可 |
| Google翻訳 | 内蔵 | 別途APIが必要 | 利用不可 |
| Googleマップ | 内蔵(スクリーンショット付き) | 利用不可 | 利用不可 |
| Googleマップ経路案内 | 内蔵(ルートマップ付き) | 利用不可 | 利用不可 |
| Google天気 | 内蔵 | 利用不可 | 利用不可 |
| Googleファイナンス | 内蔵 | 利用不可 | 利用不可 |
| Googleニュース | 内蔵 | 通常利用不可 | 利用不可 |
| Google Scholar | 内蔵 | 利用不可 | 利用不可 |
| Google Books | 内蔵 | 利用不可 | 利用不可 |
| Google画像 | 内蔵(チャット内にインライン) | 別途APIが必要 | 利用不可 |
| Googleレンズ | 内蔵(逆画像検索) | 利用不可 | 利用不可 |
| 物体検出 | 内蔵(OpenCV + Lens) | 利用不可 | 利用不可 |
| ローカルOCR | 内蔵(オフライン) | 利用不可 | 利用不可 |
| 動画文字起こし | 内蔵(ローカルWhisper) | 利用不可 | 利用不可 |
| 動画クリップ抽出 | **内蔵(AI/LLM駆動)** | 利用不可 | 利用不可 |
| YouTube RAGパイプライン | **内蔵(購読→文字起こし→検索)** | 利用不可 | 利用不可 |
| Googleトレンド | 内蔵 | 別途APIが必要 | 利用不可 |
| フィード購読 | **内蔵(8種類のソースタイプ)** | 利用不可 | 利用不可 |
| フィード全文検索 | **内蔵(SQLite FTS5)** | 利用不可 | 利用不可 |
| フィード自動文字起こし | **内蔵(YouTube→Whisper)** | 利用不可 | 利用不可 |
| ローカルファイル文字起こし | **内蔵(任意の音声/動画)** | 利用不可 | 利用不可 |
| メディアフォーマット変換 | **内蔵(FFmpeg)** | 利用不可 | 利用不可 |
| ドキュメントリーダー | **内蔵(PDF、DOCXなど)** | 利用不可 | 利用不可 |
| メール統合 | **内蔵(IMAP)** | 利用不可 | 利用不可 |
| ペーストビン | **内蔵** | 利用不可 | 利用不可 |
| URL短縮 | **内蔵(TinyURL)** | 利用不可 | 利用不可 |
| QRコード生成 | **内蔵(OpenCV)** | 利用不可 | 利用不可 |
| Webアーカイブ | **内蔵(Wayback Machine)** | 利用不可 | 利用不可 |
| Wikipedia | **内蔵** | 利用不可 | 利用不可 |
| S3/MinIOアップロード | **内蔵** | 利用不可 | 利用不可 |
| ページ取得 | 内蔵 | 通常は別途 | 基本 |
---
## ツール詳細とパラメーター
### フィード購読ツール
#### `subscribe` — コンテンツソースの追加
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `source_type` | ソースタイプ(必須) | `"news"`、`"reddit"`、`"hackernews"`、`"github"`、`"arxiv"`、`"youtube"`、`"podcast"`、`"twitter"` |
| `identifier` | ソース識別子(必須) | `"bbc"`、`"LocalLLaMA"`、`"top"`、`"anthropics/claude-code"`、`"ml"`、`"@3Blue1Brown"`、`"https://..."`、`"elonmusk"` |
| `name` | 表示名(オプション) | `"My Custom Feed"` |
**ソースタイプ別の識別子フォーマット:**
- **news:** プリセット名(`bbc`、`cnn`、`nyt`、`guardian`、`npr`、`aljazeera`、`techcrunch`、`ars`、`verge`、`wired`、`reuters`)または任意のRSS URL
- **reddit:** サブレディット名(例: `LocalLLaMA`、`programming`)
- **hackernews:** `top`、`new`、`best`
- **github:** `owner/repo`(例: `anthropics/claude-code`)
- **arxiv:** ショートカット(`ai`、`ml`、`cv`、`nlp`、`robotics`、`crypto`)またはカテゴリ(例: `cs.AI`)
- **youtube:** チャンネルハンドル(`@3Blue1Brown`)、URL、チャンネルID(`UCxxxx`)
- **podcast:** RSSフィードURL
- **twitter:** ユーザー名(`@` の有無は問わない)
#### `check_feeds` — 新しいコンテンツの取得
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `source_type` | 特定のタイプに限定(オプション) | `"news"`、`"reddit"` |
#### `search_feeds` — 全文検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 検索クエリ(必須) — FTS5対応: AND、OR、NOT、"引用符で囲んだフレーズ" | `"machine learning"`、`"GPU NOT NVIDIA"` |
| `source_type` | 特定のタイプに限定(オプション) | `"news"` |
| `limit` | 最大結果数(デフォルト20) | `10` |
#### `get_feed_items` — 最近のアイテムを参照
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `source` | ソース名でフィルター(オプション) | `"BBC"`、`"LocalLLaMA"` |
| `source_type` | タイプでフィルター(オプション) | `"reddit"`、`"hackernews"` |
| `limit` | 最大アイテム数(デフォルト20) | `10` |
---
### Google検索ツール
#### `google_search` — ウェブ検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 検索クエリ(必須) | `"best python frameworks 2025"` |
| `num_results` | 結果数(1~10、デフォルト5) | `5` |
| `time_range` | 時間範囲でフィルター | `"past_hour"`、`"past_day"`、`"past_week"`、`"past_month"`、`"past_year"` |
| `site` | 特定のドメインに限定 | `"reddit.com"`、`"stackoverflow.com"`、`"github.com"` |
| `page` | 結果ページ(1~10、デフォルト1) | `2` |
| `language` | 言語コード | `"en"`、`"de"`、`"fr"`、`"ja"` |
| `region` | 国/地域コード | `"us"`、`"gb"`、`"de"`、`"jp"` |
#### `google_shopping` — 商品検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 商品検索クエリ(必須) | `"Sony WH-1000XM5"` |
| `num_results` | 結果数(1~10、デフォルト5) | `5` |
#### `google_flights` — フライト検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `origin` | 出発都市または空港(必須) | `"New York"`、`"LAX"` |
| `destination` | 到着都市または空港(必須) | `"London"`、`"NRT"` |
| `date` | 出発日(オプション) | `"March 15"` |
| `return_date` | 帰国日(オプション) | `"March 22"` |

#### `google_hotels` — ホテル検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 場所を含むホテル検索(必須) | `"Paris"`、`"Tokyo near Shibuya"` |
| `num_results` | 結果数(1~10、デフォルト5) | `5` |

#### `google_translate` — 翻訳
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `text` | 翻訳するテキスト(必須) | `"Hello, how are you?"` |
| `to_language` | 翻訳先の言語(必須) | `"Spanish"`、`"Japanese"` |
| `from_language` | 翻訳元の言語(オプション、自動検出) | `"English"` |
#### `google_maps` — 地図スクリーンショット付きの場所検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 場所検索クエリ(必須) | `"pizza near Central Park"` |
| `num_results` | 結果数(1~10、デフォルト5) | `5` |

#### `google_maps_directions` — 地図付きルート案内
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `origin` | 出発地点(必須) | `"Berlin"` |
| `destination` | 到着地点(必須) | `"Munich"` |
| `mode` | 移動手段(デフォルト"driving") | `"driving"`、`"walking"`、`"transit"`、`"cycling"` |

#### `google_weather` — 天気
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `location` | 都市または場所(必須) | `"Dubai"`、`"Tokyo"` |
#### `google_finance` — 株式&市場データ
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 株式ティッカーまたは企業名(必須) | `"AAPL:NASDAQ"`、`"TSLA:NASDAQ"` |

#### `google_news` — ニュース検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | ニュース検索クエリ(必須) | `"AI regulation"` |
| `num_results` | 結果数(1~10、デフォルト5) | `5` |

#### `google_scholar` — 学術検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 学術検索クエリ(必須) | `"transformer attention mechanism"` |
| `num_results` | 結果数(1~10、デフォルト5) | `5` |
#### `google_books` — 書籍検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 書籍検索クエリ(必須) | `"machine learning"` |
| `num_results` | 結果数(1~10、デフォルト5) | `5` |
#### `google_images` — 画像検索(チャット内にインライン表示)
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | 画像検索クエリ(必須) | `"sunset over ocean"` |
| `num_results` | 結果数(1~10、デフォルト5) | `5` |


#### `google_trends` — トレンド
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `query` | トピック(必須) | `"artificial intelligence"` |
---
### ビジョン&OCRツール
#### `google_lens` — 逆画像検索
物体、商品、ブランド、ランドマーク、テキストを識別します。URL、ローカルファイル、base64のドラッグ&ドロップに対応。
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `image_source` | 画像のURL、ファイルパス、またはbase64(必須) | `"https://example.com/photo.jpg"`、`"/home/user/image.jpg"` |

#### `google_lens_detect` — 物体検出+識別
画像内のすべての物体を検出(OpenCV)し、それぞれを切り取ってLensで個別に識別。
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `image_source` | ローカルファイルパスまたはbase64(必須) | `"/home/user/photo.jpg"` |
#### `ocr_image` — ローカルOCR(オフライン)
RapidOCRを使用して画像からテキストを抽出。インターネット不要。
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `image_source` | ローカルファイルパスまたはbase64(必須) | `"/home/user/screenshot.png"` |

#### `list_images` — 画像の発見
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `directory` | スキャンするフォルダ(デフォルト `~/lens/`) | `"/home/user/photos"` |
---
### 動画インテリジェンスツール
#### `transcribe_video` — 動画文字起こし
任意のYouTube動画(または動画URL)をダウンロードし、faster-whisperを使用してタイムスタンプ付きで文字起こし。
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `url` | YouTubeまたは動画のURL(必須) | `"https://youtube.com/watch?v=..."` |
| `model_size` | Whisperモデルサイズ(デフォルト: tiny) | `"tiny"`、`"base"`、`"small"`、`"medium"`、`"large"` |
| `language` | 言語コード(オプション、自動検出) | `"en"` |
#### `search_transcript` — 文字起こし検索
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `url` | transcribe_videoで使用したものと同じURL(必須) | `"https://youtube.com/watch?v=..."` |
| `query` | キーワードまたはフレーズ(必須) | `"memory bandwidth"` |
| `context_segments` | 前後のセグメント数(デフォルト2) | `3` |
#### `extract_video_clip` — トピックによるクリップ抽出
「Xの部分を抽出して」と依頼すると、LLMが文字起こしからタイムスタンプを見つけ、クリップをカット。
| パラメーター | 説明 | 例 |
|-----------|-------------|---------|
| `url` | YouTube URLまたはローカル動画(必須) | `"https://youtube.com/watch?v=..."` |
| `start_seconds` | 開始時間(秒)(必須) | `150` |
| `end_seconds` | 終了時間(秒)(必須) | `315` |
| `buffer_seconds` | 前後の余分な秒数(デフォルト3) | `5.0` |
| `output_filename` | カスタムファイル名(オプション) | `"hardware_overview"` |
---
## サンプルプロンプト
### フィード購読
| 入力内容 | 呼び出されるツール |
|--------------|-------------|
| *"BBCニュースとCNNを購読して"* | `subscribe` |
| *"Redditのr/LocalLLaMAをフォロー"* | `subscribe` |
| *"Hacker Newsのトップ記事を監視"* | `subscribe` |
| *"anthropics/claude-codeの新リリースをチェック"* | `subscribe` |
| *"YouTubeで@3Blue1Brownを購読"* | `subscribe` |
| *"Twitterで@elonmuskをフォロー"* | `subscribe` |
| *"arXivのMLカテゴリを購読"* | `subscribe` |
| *"フィードを確認"* | `check_feeds` |
| *"購読に新しいものは?"* | `check_feeds` |
| *"フィードからtransformer architectureを検索"* | `search_feeds` |
| *"最新のReddit投稿を見せて"* | `get_feed_items` |
| *"購読一覧は?"* | `list_subscriptions` |
| *"BBCニュースの購読を解除"* | `unsubscribe` |
### Web検索
| 入力内容 | 呼び出されるツール | 使用されるパラメーター |
|--------------|-------------|-----------------|
| *"最高のPythonウェブフレームワークを検索して"* | `google_search` | `query` |
| *"ホームラボのセットアップに関するRedditの議論を探して"* | `google_search` | `query` + `site="reddit.com"` |
| *"非同期Pythonの例をStack Overflowで検索"* | `google_search` | `query` + `site="stackoverflow.com"` |
| *"今週のAIの新着情報は?"* | `google_search` | `query` + `time_range="past_week"` |
| *"Rustに関するHacker Newsの投稿を検索"* | `google_search` | `query` + `site="news.ycombinator.com"` |
| *"MLチュートリアルの結果の2ページ目を取得"* | `google_search` | `query` + `page=2` |
| *"東京のレストランを日本語で検索"* | `google_search` | `query` + `language="ja"` + `region="jp"` |
### ショッピング&旅行
| 入力内容 | 呼び出されるツール |
|--------------|-------------|
| *"一番安いMacBook Airを探して"* | `google_shopping` |
| *"ニューヨークからロンドンへのフライトを検索"* | `google_flights` |
| *"来週末のパリのホテルを探して"* | `google_hotels` |
| *"「hello world」を日本語に翻訳して"* | `google_translate` |
### マップ&ルート案内
| 入力内容 | 呼び出されるツール |
|--------------|-------------|
| *"タイムズスクエア近くのイタリアンレストランを探して"* | `google_maps` |
| *"ベルリンからミュンヘンまでのルートを教えて"* | `google_maps_directions` |
| *"エッフェル塔からルーブル美術館までの徒歩ルート"* | `google_maps_directions` |
### 金融、天気&情報
| 入力内容 | 呼び出されるツール |
|--------------|-------------|
| *"Appleの株価は?"* | `google_finance` |
| *"ドバイの天気は?"* | `google_weather` |
| *"今日のトップニュースは?"* | `google_news` |
| *"Transformerアテンション機構に関する論文を探して"* | `google_scholar` |
| *"機械学習に関する本を探して"* | `google_books` |### 画像とビジョン
| 入力内容 | 呼び出されるツール |
|--------------|-------------|
| *"オーロラの画像を見せて"* | `google_images` |
| *"これは何の製品? /path/to/photo.jpg"* | `google_lens` |
| *"この写真内のすべての物体を検出して"* | `google_lens_detect` |
| *"このスクリーンショットのテキストを読み取って"* | `ocr_image` |
| 画像をチャットにドラッグ + *"これは何?"* | `google_lens` |
| 画像をチャットにドラッグ + *"テキストを読んで"* | `ocr_image` |
> **ヒント:** LM Studioのテキストのみモデルでドラッグ&ドロップ画像を有効にするには、モデルディレクトリに `model.yaml` ファイルを追加し、`metadataOverrides: { vision: true }` を設定します。画像はbase64として送信され、MCPツールが自動的に処理します。
### 動画インテリジェンスとAIによるクリップ抽出
| 入力内容 | 呼び出されるツール |
|--------------|-------------|
| *"この動画を文字起こしして:https://youtube.com/watch?v=..."* | `transcribe_video` |
| *"この動画では何について話していますか?"* | `transcribe_video` |
| *"メモリ帯域幅について話している部分を探して"* | `search_transcript` |
| *"価格について話している部分を抽出して"* | `extract_video_clip` |
| *"ハードウェア比較セクションのクリップを切り出して"* | `extract_video_clip` |
| *"~/meeting.mp3を文字起こしして"* | `transcribe_local` |
| *"video.mp4をmp3に変換して"* | `convert_media` |
| *"この動画をGIFに変換して"* | `convert_media` |
### ドキュメントとメール
| 入力内容 | 呼び出されるツール |
|--------------|-------------|
| *"このPDFを読んで:~/report.pdf"* | `read_document` |
| *"~/contract.docxからテキストを抽出して"* | `read_document` |
| *"この記事を読んで:https://..."* | `visit_page` |
| *"[email protected]のメールをチェックして(パスワード:xxxx)"* | `fetch_emails` |
| *"Outlookから最新のメール10件を取得して"* | `fetch_emails` |
### ウェブユーティリティとクラウド
| 入力内容 | 呼び出されるツール |
|--------------|-------------|
| *"このURLを短縮して:https://very-long-url..."* | `shorten_url` |
| *"https://mysite.comのQRコードを生成して"* | `generate_qr` |
| *"Wi-FiネットワークのQRコードを作成して"* | `generate_qr` |
| *"このコードをペーストビンに投稿して"* | `paste_text` |
| *"この記事をアーカイブして:https://news.example.com/story"* | `archive_webpage` |
| *"Wikipedia:量子コンピューティング"* | `wikipedia` |
| *"アポロ11号のミッションをドイツ語版Wikipediaで調べて"* | `wikipedia` |
| *"report.pdfをMinIOバケットにアップロードして"* | `upload_to_s3` |
| *"backup.tar.gzをS3バケットmy-backupsに保存して"* | `upload_to_s3` |
---
## インストール
### クイックインストール(pipx推奨)```bash
pipx install noapi-google-search-mcp
playwright install chromium
python3 -m venv ~/.local/share/noapi-google-search-mcp ~/.local/share/noapi-google-search-mcp/bin/pip install noapi-google-search-mcp ~/.local/share/noapi-google-search-mcp/bin/playwright install chromium
### Python 3.13 / OCR
コアパッケージは、3.13を含むすべてのサポートされているPythonにインストールされます。OCRはオプトインです。これは、`rapidocr-onnxruntime`が上流でまだPython 3.13用のホイールを提供していないためです([RapidAI/RapidOCR#579](https://github.com/RapidAI/RapidOCR/issues/579))。OCRツール(`ocr_image`および`read_document`内のスキャンPDFフォールバック)を除くすべての機能は、それがなくても動作します。
OCRを有効にするには、互換性のあるPython(3.10~3.12)で`[ocr]`エクストラを追加してください:```bash
pipx install "noapi-google-search-mcp[ocr]"
コアパッケージをインストールし、後で追加機能なしでOCRツールを呼び出すと、ツールはクラッシュする代わりに "noapi-google-search-mcp[ocr]" をインストールするよう促す短いメッセージを返します。
以下を ~/.lmstudio/mcp.json に追加してください:```json
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp",
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
### Claude Desktop
Claude Desktop 設定 (`claude_desktop_config.json`) に追加してください:```json
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp"
}
}
}
エージェント設定に追加してください:```yaml mcp_servers: google-search: command: "noapi-google-search-mcp" env: PYTHONUNBUFFERED: "1"
これにより、OpenClawエージェントは、リアルなGoogle検索、ライブフィード、ビジョン、OCR、ビデオインテリジェンスを含む全38のツールに、APIキーを一切使わずにアクセスできます。
### CLIとして```bash
noapi-google-search-mcp
または:```bash python -m google_search_mcp
## 開発```bash
git clone https://github.com/VincentKaufmann/noapi-google-search-mcp.git
cd google-search-mcp
pip install -e .
playwright install chromium
MIT
| 新しいツール | 機能説明 |
|---|
fetch_emails | IMAP経由でメールを取得 — Gmail、Outlook、Yahoo、任意のIMAPサーバー |
paste_text | テキストをペーストビンに投稿し、共有可能なリンクを取得 |
shorten_url | TinyURLで任意のURLを短縮 |
generate_qr | URL、Wi-Fi、連絡先、任意のデータ用のQRコード画像を生成 |
archive_webpage | ウェブページのスナップショットをWayback Machineに保存 |
wikipedia | 任意の言語のWikipedia記事を要約付きで検索 |
upload_to_s3 | MinIO、AWS S3、DigitalOcean Spaces、Cloudflare R2にファイルをアップロード |
| "Transcribe this recording: ~/meeting.mp3" | |
| "Convert video.mp4 to mp3" | |
| "Read this PDF: ~/report.pdf" | |
| "Check my email: [email protected] password: xxxx" | |
| "Shorten this URL: https://very-long-url..." | |
| "Generate a QR code for https://mysite.com" | |
| "Archive this article: https://news.example.com/story" | |
| "Wikipedia: quantum computing" | |
| "Upload report.pdf to my MinIO bucket" |