agentsearch-mcp について
agentsearch-mcpは、AgentSearchのウェブ検索、即時回答、ページ本文取得をMCPクライアントに提供するリモートMCPコネクターです。呼び出しをAgentSearch APIに転送し、JSON形式の結果を返します。
主な機能
- 01正規化された結果でウェブ検索
- 02DuckDuckGoの即時回答を取得
- 03URLからテキストまたはMarkdownを取得
- 04単一のStreamable HTTPエンドポイント
活用シーン
- 01エージェント用のウェブ情報を検索
- 02事実や定義をすばやく取得
- 03RAGのコンテキスト用にページ本文を取得
MCP 対応
`/mcp`のStreamable HTTP経由で、AgentSearch APIの3つの読み取り専用エンドポイントをMCPツールとして公開します。呼び出しは上流APIに転送され、その応答がツール結果として返されます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://agentsearch-mcp.vercel.app/mcpclaude mcp add --transport http isaiahdupree-agentsearch https://agentsearch-mcp.vercel.app/mcp{"mcpServers":{"isaiahdupree-agentsearch":{"type":"http","url":"https://agentsearch-mcp.vercel.app/mcp"}}}Cursor で開く{"servers":{"isaiahdupree-agentsearch":{"type":"http","url":"https://agentsearch-mcp.vercel.app/mcp"}}}VS Code で開く{"mcpServers":{"isaiahdupree-agentsearch":{"type":"http","url":"https://agentsearch-mcp.vercel.app/mcp"}}}{"mcpServers":{"isaiahdupree-agentsearch":{"serverUrl":"https://agentsearch-mcp.vercel.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
3| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | はい | 検索クエリ。 |
| limit | integer | いいえ | 結果の最大数。1~20 に制限されます。デフォルトは 10 です。 |
| country | string | いいえ | ISO-3166 の小文字 2 文字の地域コード。デフォルトは us です。 |
| provider | enum | いいえ | 特定のプロバイダーを指定します。省略すると、運営側で設定されたプロバイダーを使用します。brave | serper |
詳細
agentsearch-mcp
AgentSearch API 用のリモート MCP(Model Context Protocol) コネクターです。エージェントや RAG パイプライン向けの LLM/MCP ネイティブなウェブツールキットで、ウェブ検索(プロバイダーを抽象化した SERP)、キー不要の即時回答、LLM のコンテキストウィンドウですぐ使える URL → クリーンなテキスト/Markdown の取得を提供します。
稼働中: https://agentsearch-mcp.vercel.app/mcp — AgentSearch の /v1 エンドポイントごとに 1 つ、計 3 つのツールを提供します。上流の AgentSearch デプロイは従量課金制(RapidAPI/Apify)で、/v1/* は RapidAPI のプロキシシークレットによるガードの背後にあります。このコネクターは同じシークレット(AGENTSEARCH_MCP_PROXY_SECRET。X-RapidAPI-Proxy-Secret ヘッダーとして送信)で独自の送信リクエストを認証し、IP ごとにソフトなレート制限(AGENTSEARCH_MCP_RATE_LIMIT、デフォルトは 1 時間あたり 30 回のツール呼び出し、メモリー内で管理)を適用します。これにより、無料 MCP プランは有料プランを無制限に迂回する手段ではなく、サービスを知るための窓口として機能します。lib/ratelimit.js を参照してください。
これは何か、なぜ独立したコネクターなのか
AgentSearch API は通常の REST API です。HTTP クライアントなら、すでに直接呼び出すことができます。このリポジトリが存在するのは、MCP クライアント(Claude、ChatGPT、その他の MCP 対応エージェント)は任意の REST API を利用せず、MCP ツールを利用するためです。 agentsearch-mcp は次の機能を備えた薄いアダプター層です。
- 各 AgentSearch エンドポイントを、LLM が理解して直接呼び出せる、検出可能で型付けされた MCP ツール(名前、説明、zod 入力スキーマ、アノテーション)として公開します。REST API の仕様を別途教える必要はありません。
- 単一の
/mcpエンドポイントで MCP の streamable-HTTP トランスポートを使用するため、Claude、ChatGPT、その他の MCP クライアントに URL 1 つでコネクターとして登録できます。 - それ以外のことは何もしません。独自のビジネスロジックはなく、すべてのツール呼び出しは AgentSearch へのパススルー
fetchであり、AgentSearch が返す JSON レスポンスはそのままツールの結果として返されます。
従量課金制 API の無料ディスカバリープラン
このコネクターは、従量課金制の AgentSearch API の前段にある無料のディスカバリー/成長プランです。上流(agentsearch-api.vercel.app)は RapidAPI/Apify で販売されています。この MCP ラッパーは、共有の RapidAPI プロキシシークレットで上流に認証し、IP ごとに利用量を制限することで、無制限に有料プランを迂回する手段ではなく、試用の場として機能します。大規模な利用や本番環境での利用には、RapidAPI/Apify の AgentSearch をご利用ください。
認証:MCP 側では不要(意図的な設計)
AgentSearch のデータにはユーザーごとの区分がありません。公開ウェブデータ(SERP の結果、DuckDuckGo の即時回答、ページから抽出したテキスト)です。呼び出し元ごとにアクセスを制限する必要がないため、このコネクターでは意図的に次の機能を提供していません。
- MCP の呼び出し元向けの OAuth、ログイン、ベアラートークン
- Supabase/データベース
- デモ用アカウントと実アカウントの区別 — すべての呼び出し元が同じ実際のライブデータを取得します
api/mcp.js はリクエストごとにステートレスな McpServer を新しく構築し、MCP の呼び出し元に対する認証チェックなしで提供します。送信リクエストに対する唯一の認証は、前述の上流の RapidAPI プロキシシークレットで、コネクターがサーバー側で保持します。
ツール一覧
AgentSearch の /v1 エンドポイントごとに 1 つのツールを提供します(agentsearch-api/openapi.yaml に基づきます。/api/health は意図的にラップしていません)。
| ツール | AgentSearch エンドポイント | 説明 |
|---|---|---|
web_search | GET /v1/search | プロバイダーを抽象化したバックエンド(Brave または Serper)を介したウェブ SERP。位置、タイトル、URL、スニペット、ドメインで正規化した結果を返します。 |
instant_answer | GET /v1/answer | キー不要の DuckDuckGo 即時回答 — 定義、エンティティ、簡単な事実を返します。 |
fetch_url | GET /v1/fetch | キー不要で SSRF 対策済みの URL 取得。RAG 用に、ボイラープレートを含まないクリーンなテキストまたは Markdown を返します。 |
3 つのツールはすべて読み取り専用で、{ readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true } とアノテーションされています。いずれもデータを書き込まず、外部の変化を反映するライブウェブデータを扱います。
agentsearch-api のラップ方法
各ツールハンドラーは、実際の AgentSearch REST API に対して通常の fetch(\${AGENTSEARCH_MCP_API_BASE_URL}${path}`, ...)` を実行し、解析した JSON を MCP ツール結果のコンテンツとして返します。
{ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] }
送信リクエストには X-RapidAPI-Proxy-Secret: <AGENTSEARCH_MCP_PROXY_SECRET> が含まれるため、/v1/* の上流ガードを通過できます。上流の HTTP エラー(4xx/5xx)は捕捉され、リクエストをクラッシュさせる代わりに、asError ヘルパーを介して型付きの MCP エラー結果として通知されます。
環境変数
| 変数 | デフォルト値 | 用途 |
|---|---|---|
AGENTSEARCH_MCP_API_BASE_URL | https://agentsearch-api.vercel.app | 上流 AgentSearch のベース URL(ローカル/セルフホストのテストでは上書きします)。 |
AGENTSEARCH_MCP_PROXY_SECRET | (empty) | RapidAPI プロキシシークレット。上流の /v1/* ガードを通過するため、X-RapidAPI-Proxy-Secret として送信されます。これを設定しない場合、ガード対象のルートは 403 を返します。 |
AGENTSEARCH_MCP_RATE_LIMIT | 30 | 1 時間あたりの IP ごとの tools/call のソフト上限(メモリ内、サーバーレスインスタンスごと)。 |
プロジェクト構成
api/mcp.js MCP endpoint (StreamableHTTPServerTransport, stateless, no MCP-caller auth)
api/health.js GET /api/health
lib/tools.js All 3 tool definitions (zod schemas + fetch-and-forward handlers, proxy-secret auth)
lib/ratelimit.js Soft per-IP tools/call rate limiter
local-server.js Plain-Node http server for local dev / smoke testing (not deployed)
test/smoke.mjs Real end-to-end smoke test (initialize, tools/list, tools/call)
vercel.json Routes /mcp -> api/mcp.js, /health -> api/health.js
server.json MCP registry manifest
ローカル開発
npm install
npm run dev # starts local-server.js on :3900
npm run smoke # runs test/smoke.mjs against the local server
上流ガードを通じて実際のエンドツーエンドのフェッチを試すには、まずプロキシシークレットを設定します。
export AGENTSEARCH_MCP_PROXY_SECRET=<the RapidAPI proxy secret>
npm run dev &
npm run smoke
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。