Skip to main content
Glama

mcp-web-search

インターネット検索のためのMCP(Model Context Protocol)サーバー。Vercel にステートレスなHTTP APIとして公開されています。Antigravity などのAIエージェントは、ウェブ検索、ページの読み取り、REST APIの利用、リンクの抽出をアンチボットブロックの問題なしに行えます。


利用可能なツール

ツール

説明

web_search

Tavily API経由でインターネットを検索し、各結果のタイトル、URL、スニペットを返します

read_webpage

Tavily Extractを使用してアンチボットブロックを回避しながらページをダウンロードし、Markdown、プレーンテキスト、またはHTMLでコンテンツを返します

fetch_json

Axios経由で任意のURLにGETリクエストを行い、レスポンスのJSONを返します(公開REST APIに最適)

extract_links

Tavily Extractを使用してページを読み取り、ドメインによるフィルタリングに対応したすべてのリンクを抽出します


Related MCP server: Spider MCP Server

技術スタック

  • Next.js 16(App Router)— サーバーフレームワーク

  • mcp-handler — MCPプロトコル用のHTTPアダプター

  • @modelcontextprotocol/server — MCP v2 SDK

  • Tavily API — 公式の検索・ページ抽出メカニズム(アンチボットブロックに耐性あり)

  • axios + cheerio + turndown — REST APIの利用とHTMLコンテンツのパース

  • Zod v4 — ツールのスキーマ検証

  • Vercel Hobby — 無料ホスティング(リクエストごとに60秒のタイムアウト)


Tavily APIの設定

Vercelなどのデータセンターは、ウェブコンテンツをスクレイピングしようとするとファイアウォールによってブロックされることが多いため、このプロジェクトでは、ページの読み取りとインターネット検索を100%信頼して実行できるAI特化型APIであるTavilyを使用しています。

完全に機能させるには:

  1. tavily.com で無料アカウントを作成します(月1,000リクエストが無料で利用できます)。

  2. ホスティングのダッシュボード(例:Vercel)に移動し、次の環境変数を追加します:

    • TAVILY_API_KEY: sua_chave_aqui


Vercelへのデプロイ

前提条件

  • Node.js 20+

  • pnpm

1. リポジトリのクローン

git clone https://github.com/suportebono/mcp-web-search.git
cd mcp-web-search
pnpm install

2. ローカルでのテスト

pnpm dev

MCPエンドポイントは http://localhost:3000/api/mcp で利用できます。

ツールを視覚的に確認するには:

npx @modelcontextprotocol/inspector http://localhost:3000/api/mcp

3. Vercelで公開

npx vercel

デプロイ後、https://mcp-web-search-xxx.vercel.app 形式のURLが発行されます。TAVILY_API_KEY の設定を忘れないでください!


Antigravityでの設定

~/.gemini/config/mcp_config.json ファイルを編集します(存在しない場合は作成):

{
  "mcpServers": {
    "web-search": {
      "serverUrl": "https://seu-projeto.vercel.app/api/mcp"
    }
  }
}

Antigravityを再起動し、... > MCP Servers で確認します — 4つのツールがリスト表示されるはずです。


他のMCPクライアントでの設定

Claude Desktop / Cursor / Windsurf

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

{
  "mcpServers": {
    "web-search": {
      "url": "https://seu-projeto.vercel.app/api/mcp"
    }
  }
}

stdioのみをサポートするクライアント

mcp-remote パッケージをプロキシとして使用します:

{
  "mcpServers": {
    "web-search": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://seu-projeto.vercel.app/api/mcp"]
    }
  }
}

ツールリファレンス

Tavily APIを使用してインターネットを検索します。

パラメーター:

名前

型

必須

説明

query

string

✅

検索語句

num_results

number

❌

結果数(デフォルト:5)

戻り値の例:

[
  {
    "title": "Next.js 15 — Blog",
    "url": "https://nextjs.org/blog/next-15",
    "snippet": "Next.js 15 introduces...",
    "source": "nextjs.org"
  }
]

read_webpage

Tavily Extractを使用してペイウォールやアンチボットを回避しながら、URLのコンテンツを読み取って抽出します。

パラメーター:

名前

型

必須

説明

url

string

✅

ページのURL

mode

"markdown" | "text" | "raw_html"

❌

出力形式(デフォルト:markdown)

コンテンツを返す前に、スクリプト、スタイル、広告、ナビゲーション、フッターを自動的に削除します。


fetch_json

Axios経由でGETリクエストを行い、生のJSONを返します。

パラメーター:

名前

型

必須

説明

url

string

✅

APIのURL

headers

Record<string, string>

❌

オプションのHTTPヘッダー


Tavily Extractを使用してページの実際のHTML(動的サイトも含む)を読み取り、すべてのリンクを抽出します。

パラメーター:

名前

型

必須

説明

url

string

✅

ページのURL

filter

string

❌

この部分文字列を含むリンクをフィルタリングします(例:"github.com")

戻り値の例:

[
  {
    "text": "Documentação",
    "href": "/docs",
    "absolute_url": "https://exemplo.com/docs"
  }
]

プロジェクト構成

mcp-web-search/
├── app/
│   └── api/
│       └── mcp/
│           └── route.ts        ← Endpoint MCP (GET + POST)
├── lib/
│   ├── mcp-server.ts           ← Registro de todas as ferramentas
│   └── tools/
│       ├── web-search.ts       ← Busca via Tavily API
│       ├── read-webpage.ts     ← Leitura e parsing de páginas (Tavily Extract)
│       ├── fetch-json.ts       ← Fetch de APIs REST genéricas
│       └── extract-links.ts    ← Extração de links via Tavily Extract HTML
├── next.config.ts
└── package.json

サポートされているMCPプロトコル

このサーバーはMCP 2026-07-28仕様をStreamable HTTP statelessトランスポートで実装しており、最新のクライアントと互換性があります。また、2025年世代のStreamable HTTP仕様を使用するクライアント向けの自動フォールバックも提供します。


ライセンス

MIT

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to access real-time web data through search, markdown scraping, and browser automation while bypassing anti-bot protections. It provides tools for web research, e-commerce monitoring, and data extraction from across the globe.
    4
    15,737 npm
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to perform web searches, extract webpage content, and conduct end-to-end search-and-extract operations using multiple search providers and content extraction methods.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to perform web searches, fetch and extract page content, and crawl sites with caching, rate limiting, and robots.txt compliance, all without needing API keys.
    11
    325 PyPI
    1
    MIT

Appeared in Searches