DuckDuckGo MCP Server
DuckDuckGo MCP Server
ホスト型のModel Context Protocol (MCP) サーバーで、Claude、Cursor、Windsurf、その他のMCPクライアントに、構造化JSONとしてDuckDuckGoの検索結果を提供します。順位付きのオーガニック結果、広告は独自の配列、DuckDuckGo独自のAI回答、ターゲット可能な37のリージョン。大量処理と解析に適しており、ローカルブラウザも設定的不要のフォールバック・チェーンもありません。
https://mcp.hasdata.com/api/mcp?apis=duckduckgo
目次
Related MCP server: duckduckgo-mcp
必要なもの
カスタムヘッダーでストリーマブルHTTPを話すMCPクライアントが必要です。HasData APIキーはダッシュボードから無料で作成できます。それ以外は不要です。これはリモートサーバーなので、最単な経路はURLとヘッダーのみで、追加するブラウザ・パッケージも、維持するローカル・プロセスもありません。stdioのみのクライアントは、代わりに@hassdata/duckduckgo-mcp( npm )またはhassdata-duckduckgo-mcp( PyPI)ランチャーを使用できます。
クイックスタート
サーバーURLはすべてのクライアントで同じです。私たちはClaude CodeとClaude Desktopで実践的に運用しています。他のブックは、各クライアントのリモートサーバー向けに文書化されたフォーマットに従っています。
項目 | 値 |
URL |
|
トランスポート | HTTP、ストリーマブル |
認証ヘッダー |
|
OAuth対応クライアントは、同じURLをコネクタとして追加し、設定フアイルにキーを入カせずにサインインできます。
claude mcp add --transport http duckduckgo "https://mcp.hasdata.com/api/mcp?apis=duckduckgo" \
--header "x-api-key: HASDATA_API_KEY"設定、コネクタ、カスタム・コネクタの追加の順に進み、https://mcp.hasdata.com/api/mcp?apis=duckduckgo を貼り付けてサインインします。
設定フアイルを使う場あ、Claude Desktopはローカル(stdio)サーバーのみを読み込むため、リモートサーバーにはstdioランチャー経由で接続します。@hassdata/duckduckgo-mcpパッケージがそのランチャーで、環境からキーを読み取ります。これを claude_desktop_config.json に追加します:
{
"mcpServers": {
"duckduckgo": {
"command": "npx",
"args": ["-y", "@hasdata/duckduckgo-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}Pythonを使いますか?Nodeの代わりに、手動イストールなしで uvx が実行するPyPIパッケージにランチャーを置き換えてください:
{
"mcpServers": {
"duckduckgo": {
"command": "uvx",
"args": ["hasdata-duckduckgo-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}全てのプロジェクト用には ~/.cursor/mcp.json、単一プロジェクト用には .cursor/mcp.json:
{
"mcpServers": {
"duckduckgo": {
"url": "https://mcp.hasdata.com/api/mcp?apis=duckduckgo",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.codeium/windsurf/mcp_config.json。WindsurfはこのフィールドをurlではなくserverUrlと呼びます:
{
"mcpServers": {
"duckduckgo": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=duckduckgo",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}{
"mcpServers": {
"duckduckgo": {
"url": "https://mcp.hasdata.com/api/mcp?apis=duckduckgo",
"type": "streamableHttp",
"headers": { "x-api-key": "HASDATA_API_KEY" },
"disabled": false
}
}
}ワークスペース内の .vscode/mcp.json:
{
"servers": {
"duckduckgo": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=duckduckgo",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}~/.codex/config.toml:
[mcp_servers.duckduckgo]
url = "https://mcp.hasdata.com/api/mcp?apis=duckduckgo"
[mcp_servers.duckduckgo.headers]
"x-api-key" = "HASDATA_API_KEY"~/.gemini/settings.json:
{
"mcpServers": {
"duckduckgo": {
"httpUrl": "https://mcp.hasdata.com/api/mcp?apis=duckduckgo",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}プロンプト例
コードではなくプロンプトです。貼り付けるとエージェントがツールを自ら呼び出します。各プロンプトには必な呼び出し数が注記されています。MCPではモデルが呼び出し回数を決 定し、成功した呼び出しごとに10クレジットがかかるためです。
DuckDuckGo で "model context protocol" を検索して、上位10件の結果を順位とドメイン付きで教えてください。
1回の呼び出し、10クレジット。
ドイツのリージョンで "vpn review" というクエリを実行し、続けて米国のリージョンでも実行して、一方にだけ表示されるドメインを教えてください。
2回の呼び出し、20クレジット。リージョンはパラメータです。同じクエリを2つのマーケットで実行するのは2回の呼び出しです。
"best crm software" を検索して、有料掲載のみをそれぞれの広告主ドメイン付きで一覧表示してください。
1回の呼び出し、10クレジット。広告は独自の配列で届くため、フィルタリングのヒューリスティックは不要です。
"model context protocol" というクエリで最初の3ページを巡回し、複数の順位を占めているドメインを教えてください。
3回の呼び出し、30クレジット。最初のページ以降はカーソルを使った新し い呼び出しになり、カーソルを取得したら引数からqを削除します。
"who invented the transistor" を検索して、DuckDuckGo独自のAI回答を、それが参照したオーガニック結果の横に表示してください。
1回の呼び出し、10クレジット。
これらうち2つが、このサーバーが存在する理由です。リージョン・ターゲティングは37市場にわたる第一級のパラメータです。1つのクエリを複数国で比較するのはループであって、プロキシの設定ではありません。また、有料掲載はオーガニックとは別に返されるため、ランク・トラッキングがどの結果が広告だったかを推測する必用に依存しません。
ページングには毎回1回の呼び出しがかかります。10ページを巡回するプロンプトは10回の呼び出し、100クレジットです。
ツール
ツールは1つです。以下のサンプルは実際の呼び出しから抜粋したもので、そこに含まれる結果はWebの変化に応じて変わります。形として読んでください。
サンプルはペイロードであり、レスポンス全体ではありません。tools/call の結果には1つのテキストブロックが含まれ、そのテキスト自体が url、status、text、json を保持するJSONであり、スクレイピングされたデータは json の下にあります。生のJSON-RPCレスポンスからは、パスは result.content[0].text をパースした後、.json です。チャットクライアントはそれを自働で展カイしますが、エンドポイントに直接話すコードは自働では展カイしません。
DuckDuckGoの検索結果を取得する
hasdata_duckduckgo_serp_getSearchResults
DuckDuckGoの結果ページを取得し、パースして返します。
パラメータ | 型 | 備考 |
| string | 検索語。 |
| string | 前回のレスポンスの |
| string | リージョンを |
| string | 2文字の国コード、36値。 |
| string | インターフェースと結果の言語、33値 |
| string |
|
| string |
|
qまたはnextPageTokenのいずれかを送信します。どちらも送らなかい場あは両フィールドを指定して422が返ります。この要件は条件付きであり、スキーマはそれを単純な必すリストとして表現できないためです。両方送ってもエラーにはならず、カーソルが優先されクエリはどこにも使われません。そのため、ページング中にqを引数に残したエージェントは、静かに間違った結果セットを読取ります。
positionは、それが取得されたページ内での番号であり、結果セット全体を通した番号ではありません。2ページ目は再び1から始まるpositionで返り、ページサイズも固定ではないため、10件、15件、14件のページが混在します。したがって絶対順位は、既に収集したオーガニック結果の数にpositionを足したものであり、ページ番号から導き出せるものではありません。これを考慮せずに順位データセットを構築すると、各ページが独自の1位を生み出します。
organicResults、ads、searchAssist、paginationを返します。オーガニックのエントリにはposition、title、link、displayedLink、source、snippetが含まれ、DuckDuckGoが表示する場所では日付、サイトリンク、ビデオのメタデーータも含まれます。searchAssistは、クエリに対するDuckDuckGo独自のAI回答を保持します。
adsとsearchAssistは、ページにその両方がない場合は存在しないため、読取る前にキーを確認してください。organicResultsも存在しない可能性があるため、存在を前提とせず、デフォルト値付きで読取ってください。実際の一致が何もないクエリでも、ゆるく関連したエントリの完全なページとして返るため、「何も見つからない」という通常の見た目ではありません。
{
"organicResults": [
{
"position": 1,
"title": "What is the Model Context Protocol (MCP)?",
"link": "https://modelcontextprotocol.io/docs/getting-started/intro",
"displayedLink": "modelcontextprotocol.io › docs › getting-started › intro",
"source": "modelcontextprotocol.io",
"snippet": "MCP is an open-source standard for connecting AI applications to external systems."
}
],
"ads": [
{ "position": 1, "title": "Make Agents Accountable", "link": "https://www.gravitee.io/platform/ai-agent-management" }
],
"searchAssist": {
"answer": "Model Context Protocol (MCP) is an open standard from Anthropic that lets LLMs connect to external tools, systems, and data sources using a shared interface."
},
"pagination": { "nextPageToken": "eyJ1cmwiOiJodHRwczovL2xpbmtzLmR1Y2tkdWNrZ28uY29t…" }
}エラーと失敗の経路
ツール呼び出しでHTTPエラーコードがクライアントに表示されることはほとんどありません。MCPレイヤは200を返し、失敗を結果の中にisErrorをtrueに設定して理由をテキストとして入れます。エージェントは、ステータス行を期待する場所でメッセージを読み取ります。
誤ったキーは接続失敗ではなく、ツール出力として現れます。 ツール一覧の取得は空でないキーを受理するため、クライアントはハンドシェイクを完了して緑表示になります。その後の最初のツール呼び出しでisError: trueとテキストHasData API error: 401 Unauthorizedが返ります。その文字列に注意してください。それ以前のフローでは問題が報告されないためです。
キーが欠けている場合は、唯一の実際のHTTPエラーです。 認証はどのツールよりも前に実行され、接続自体が401で失敗します。
スキーマに反する引数は、検索になる前に拒否されます。 サーバーはisError: trueとテキストMCP error -32602: Input validation errorで応答し、フィールド名を指定します。何も取得されず、課金もされません。
qとnextPageTokenの両方がない場あ、両方のフィールドと、それらを結び付けるrequiredIfNotExistsルールを指定したerrors配列を伴う422が返ります。
背後に何もないクエリでも結果は返ります。 DuckDuckGoが関連性を判断するため、意味のない文字列でも、adsとsearchAssistが存在しない、緩く関連した10件のエントリからなる通常のページとして返ります。それをミスと示すものは何もないため、「このブランドのカバレッジなし」というアラートを構築している場あには重要です。
有料プランは月額 $49 からで、200,000クレジット(20,000回の検索)が含まれます。単価は量に応じて下がり、エントリープランでは 1,000回の検索あたり $2.45、Business では $0.99、Growth では $0.83、最大のハイボリュームプランでは $0.75 になります。現在の数字は価格ページにあります。
プランは同時実行数も決定します。無料トライアルは同時1リクエスト、Startup は15、Business は30、Growth は50、ハイボリュームプランは200〜1,500です。無人で実行されるものでは、オーバーフローに防御的に対処してください。ファンアウトするエージェントは、あなたよりも先に上限に達するからです。
200以外のステータスで返ってきたリクエストは課金されません。成功した呼び出しでも何も見つからなければ、それでも1回の呼び出しです。
ツール選択
apis クエリパラメータは、エージェントが参照するツールを決定します。ツールが少なければ、ツール定義に使うコンテキストが減り、モデルが誤ったツールに手を伸ばす可能性も減ります。
?apis=duckduckgo the one tool in this repo
?apis=duckduckgo,google_serp add Google search
?apis=duckduckgo,bing_serp,google_serp three engines side by sideこのパラメータは、duckduckgo のようなプロバイダ名と、google_maps_search のような個別のAPI名を受け付けます。綴りを間違えた名前は無視されます。すべての名前が誤っている場合、リクエストは400で失敗し、ボディには認識できなかった名前と有効な値の一覧の両方がリストされます。パラメータを省略すると、同じエンドポイントで HasData の57ツールすべてが公開されます。
1つのエージェントに3つのエンジンを入れるのが、ここでリストを広げる一般的な理由です。DuckDuckGo、Google、Bing の3つがすべて公開されれば、同じクエリを3つで比較するのは1つのプロンプトで済むからです。
比較
現実的な代替案は、セルフホストサーバーです。人気のあるものは、ローカルで実行するPythonパッケージで、自分のマシンから DuckDuckGo にアクセスし、モデルに整形されたテキストブロックを渡します。これは、一度に1つの質問に答えるリサーチアシスタントにはうまく機能します。量と安定した出力形式が求められると、機能しなくなります。
セルフホストサーバー | 本サーバー | |
検索が返すもの | モデルが読むために作られた整形済みテキスト文字列 |
|
有料掲載 | 他のノイズと一緒に除去される | 別の |
ページネーション | 単一ページの | すべてのレスポンスにカーソル |
リージョン | 1つの | 37のリージョンコード、または国と言語を個別に設定 |
SafeSearch | サーバー起動時に固定され、エージェントからは意図的に呼び出せない | 呼び出しごとに設定 |
ページを取得するのは | あなたのマシン( | 当社 |
スループット | 毎分30回の検索に自己スロットル | プランの同時実行数(トライアルの1から1,500まで) |
実行するもの | Python環境、オプションの追加パッケージ、localhost 以外ではコンテナまたはプロキシ設定 | URL とヘッダー |
ページコンテンツ抽出 |
| 提供なし |
コスト | 無料 | 1回の呼び出しにつき10クレジット |
この表の中でも、2つの行が判断の大部分を左右します。テキストの塊はチャット回答には適した出力ですが、ランキングデータセットには不適です。散文から position を再構築するのは、あなたがやるべきでない作業だからです。また、フェッチを当社が行うことで、バックエンドの課題はなくなります。httpx とブラウザを装うクライアントの選択、フォールバックが依存する追加パッケージのインストール、プレーンなHTTPクライアントがページを取得できなくなったときのスタックトレースを読むことも同様に不要になります。
この表の他のすべては、実際のトレードオフです。セルフホストサーバーは無料で、アカウント不要で、クエリを自分のマシン上に保ち、ページコンテンツも取得します。これは本サーバーにはない機能です。1日に数回程度の検索を1つのアシスタント内で行うなら、そちらの方が適しています。本サーバーは、検索回数、リージョン数、または出力の形が重要になり始める場合向けです。
DuckDuckGo 自身の API との比較。 api.duckduckgo.com は Instant Answer API であり、結果ページではなく、百科事典的な抄録が存在する場合にはそれを返します。ランキングされたウェブ結果を返す公式エンドポイントは存在しません。そのため、ここのすべての選択肢はページをパースします。
本サーバーが行わないこと。 ページの取得やコンテンツ抽出、画像・ニュースの専門検索、オートコンプリートはありません。結果ページをパースして返します。
FAQ
公式の DuckDuckGo MCP サーバーはありますか?
いいえ。DuckDuckGo は MCP サーバーを公開していません。すべての選択肢は誰かが作ったものです。大半はローカルで動くオープンソース・プロジェクトで、これは HasData が管理するホスト型サーバーです。
DuckDuckGo MCP サーバーとは何ですか?
DuckDuckGo の検索を、AI クライアントが呼び出せるツールとして公開するサーバーです。クライアントは Model Context Protocol 経由でツール呼び出しを送り、サーバーは検索を実行して構造化された JSON を返します。モデルはその結果を扱い、HTML ページを目にすることはありません。
DuckDuckGo アカウントや API キーは必要ですか?
いいえ。唯一の認証情報は、あなたの HasData キーです。DuckDuckGo には登録する開発者プログラムはなく、公開されている Instant Answer API も検索結果を返しません。
何かをホストまたは実行する必要がありますか?
いいえ。これはストリーマブルHTTP上のリモート MCP サーバーです。インストールするものも、Python環境も、ブラウザパッケージも、再起動するプロセスもありません。
データはライブですか、それともキャッシュされていますか?
ライブです。各呼び出しはリクエスト時に結果ページを取得し、独自の requestMetadata.id を持ちます。同じ呼び出しを2回行うと、それは別々の2回のフェッチであり、保存済みコピーの再生ではありません。
同じクエリを複数のリージョンで比較できますか?
はい、できます。それが、プロキシではなくパラメータを使う主な理由です。kl は37のリージョンコードを受け付け、cc と setLang を組み合わせると、国と言語を分けて設定できます。各リージョンはそれぞれ個別の呼び出しになります。
DuckDuckGo がレイアウトを変更したらどうなりますか?
あなた側では何も起きません。当社が変更を追跡し、レスポンス・スキーマを安定に保つため、フィールド名や型は変わりません。報告するものがないブロックはレスポンスから省かれるので、ads と searchAssist はデフォルト値を指定して読んでください。
他の HasData API と一緒に使えますか?
はい。apis パラメータはリストを受け付け、?apis=duckduckgo,google_serp,bing_serp を指定すると、エージェントに一度に3つの検索エンジンを提供します。
キーを貼り付ける代わりに OAuth でサインインできますか?
はい、対応しているクライアントなら可能です。Claude Desktop と Cursor は、エンドポイントをコネクタとして追加してサインインできます。無人で動くエージェントやスクリプトは x-api-key ヘッダーを使います。
コンプライアンスと個人データ
HasData は公開データのみにアクセスします。プラットフォームの利用規約が自動アクセスを制限する場合があり、コンプライアンスの責任はあなたにあります。収集するデータに個人情報が含まれる場合は、GDPR、CCPA、またはお住まいの管轄区域の同等の規則に基づく法的根拠があることを確認してください。
HasData リンク
プロダクトページとリクエストビルダー | |
サーバードキュメント | |
57のツールを1つのサーバーに | |
クライアント・ウォークスルー | |
当社がパースする他の検索エンジン | |
プランとクレジット費用 | |
キーと利用状況 | |
npm 上の Node ランチャー | |
PyPI 上の Python ランチャー |
開発
このリポジトリは、リモートサーバーの設定とドキュメントです。ビルドステップも、コンテナ化するものもありません。
test/ 内のテストは、ツール契約を検証します。これは、ここへのコミットなしに壊れ得る部分です。?apis=duckduckgo が正確に1つのツールを返すこと、その名前が変わっていないこと、この README が文書化しているパラメータが引用している enum とともにまだ存在すること、使用中のキーが実際に受け入れられることを確認します。最後のチェックは実際の検索を実行し、10クレジットを消費します。これは、正しい理由で失敗できるカナリアの代価です。
# macOS and Linux
HASDATA_API_KEY=your_key_here npm test
# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test同じテスト群は、プッシュのたびに CI で実行され、さらに週1回のスケジュールでも実行されます。誰もこのリポジトリに触れなくても、上流のツール一覧が変わり得るからです。失敗は、ツール一覧が変わった、キーが使えなくなった、またはエンドポイントに到達できなかったことを意味し、アサーションメッセージがどれかを示します。
コントリビューション
パラメータ表とレスポンス例の訂正が最も有用なコントリビューションです。それらの部分はズレが生じやすいからです。実行した呼び出しと得られたレスポンスを含めてください。フォークからのプルリクエストは、キーなしでテスト群を実行し、ライブチェックは赤にならずにスキップされます。
ライセンス
MIT。LICENSE をご覧ください。
Available Tools
1 toolhasdata_duckduckgo_serp_getSearchResultsduckduckgo_serp: GET /AInspect
Get DuckDuckGo Search Results
Fetches DuckDuckGo SERPs for a query with region targeting (kl, or cc+setLang), safesearch (off/moderate/strict), device type, and page-based pagination. Returns organic results (title, url, snippet, displayed url, position, date, sitelinks, video metadata), ads, and the Search Assist AI answer. Use for SEO rank tracking, SERP feature monitoring, DuckDuckGo-specific visibility audits, and training/eval data for search agents.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Specify the search term for which you want to scrape the SERP. Required unless `nextPageToken` is provided (which carries the query of the page it continues). | |
| cc | No | The two-letter country code for the country to search from. Combined with `setLang` to form the DuckDuckGo region. Ignored if `kl` is set. | |
| kl | No | DuckDuckGo region code in `<country>-<language>` form (e.g. `us-en`, `de-de`). Sets country and interface language at once; takes precedence over `cc`/`setLang`. Use `wt-wt` for no region. | |
| setLang | No | The preferred result/interface language code — usually two letters (e.g. `en`, `de`), with script-tag variants for some languages (e.g. `zh-hans`, `zh-hant`). Combined with `cc` to form the DuckDuckGo region. Ignored if `kl` is set. | |
| deviceType | No | Specify the device type for the search. | |
| safeSearch | No | Adult Content Filtering option. | |
| nextPageToken | No | Opaque token returned in each response as `nextPageToken`. Pass it back (in place of `q`) to fetch the next page of results. It carries a pre-signed page URL bound to the original request's session, so it must be used as-is and cannot be constructed manually. Absent when there are no further pages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It clearly indicates a read-only fetch operation and describes what is returned, including pagination behavior via 'nextPageToken' context. It does not mention rate limits or auth, but the read-only nature and output behavior are clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact three-sentence summary with no redundant fluff. The title repeats the purpose, but the body adds useful detail about parameters, return contents, and use cases without excessive length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers what the tool returns (organic results, ads, AI answer) and mentions pagination. It also covers the main parameter dimensions and intended use cases. Minor gaps like explicit note that 'q' is needed for the first page are covered by the schema itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful grouping and relationships (e.g., 'kl, or cc+setLang' for region targeting, and explicit mention of safesearch and device type). This helps the agent understand how parameters relate beyond the individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it fetches DuckDuckGo SERPs for a query, lists the main search controls (region, safesearch, device type, pagination), and describes the result contents. This makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases ('SEO rank tracking, SERP feature monitoring, DuckDuckGo-specific visibility audits, and training/eval data'), giving clear guidance on when to use it. There are no sibling tools to contrast against, so no alternative exclusions are needed.
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 tool update
v1.0.0- First observed
hasdata_duckduckgo_serp_getSearchResults
TDQS
Scored across 1 tool
With only a single tool, there is no possibility of ambiguity or misselection. The tool's purpose is clearly defined as fetching DuckDuckGo search results, making it trivially distinct.
The single tool name follows a consistent pattern using underscores and includes a clear verb (getSearchResults) and resource hierarchy (duckduckgo_serp). While not a classic verb_noun structure, it is internally consistent and descriptive within its own scope.
The server exposes only one tool, which is below the typical 3-15 tool range for a fully featured server. However, given the focused purpose of a DuckDuckGo SERP API, a single comprehensive endpoint is arguably sufficient, earning a borderline score.
The tool covers the core search lifecycle: querying with pagination, region targeting, safesearch, and device options, plus returning organic results, ads, and AI answers. Minor gaps exist (e.g., no dedicated news or image search), but the primary search functionality is complete for typical use cases.
Maintenance
Related MCP Connectors
Free web search for AI agents. No API key required. Hosted MCP in active development.
MCP server for Google search results via SERP API
Official SerpApi MCP server for Google, Bing, and other search engines.
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Related MCP Servers
- AlicenseBqualityDmaintenanceThis MCP server utilizes DuckDuckGo for web searches, providing structured search results with metadata and features like smart content classification and language detection, facilitating easy integration with AI clients supporting the MCP protocol.115 npm2MIT
- AlicenseNot gradedqualityCmaintenanceA MCP server for DuckDuckGo HTML search. Unlike other DuckDuckGo MCP servers, this one isn't just AI slop.ISC

HasData MCP Serverofficial
AlicenseAqualityAmaintenanceDirect access to 40+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.6320MIT- AlicenseNot gradedqualityDmaintenanceDuckDuckGo Search MCP Server. Scrapes DuckDuckGo Lite directly — no API key required, no rate limits, robust anti-bot protection.3MIT