mcpField
A
agentfetch

agentfetch

ローカル
github.com/bch1212ブラウザ自動化324 週間前に更新

agentfetch について

agentfetchは、Agent向けにWebページやPDFをMarkdownとして取得するMCPサーバーです。トークン数の推定、キャッシュ、URLに応じた取得先の振り分けをまとめています。

主な機能

  1. 01取得前のトークン数推定
  2. 02URLに応じた取得先の振り分け
  3. 03Markdownとメタデータの抽出
  4. 04取得結果のキャッシュ
  5. 05並列取得と検索

活用シーン

  1. 01コンテキスト使用前にページ量を確認
  2. 02複数URLの並列取得
  3. 031回のリクエストで検索とページ取得

MCP 対応

MCPクライアントに `fetch_url`、`estimate_tokens`、`fetch_multiple`、`search_and_fetch` の4つのツールを提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"bch1212-agentfetch": {
"command": "uvx",
"args": [
"agentfetch-mcp"
],
"env": {
"JINA_API_KEY": "<JINA_API_KEY>",
"FIRECRAWL_API_KEY": "<FIRECRAWL_API_KEY>",
"REDIS_URL": "<REDIS_URL>"
}
}
}
}
起動コマンドuvx agentfetch-mcp
設定が必要な環境変数
JINA_API_KEYシークレットJina Reader API key. Free tier ~1M tokens/mo at jina.ai/reader.
FIRECRAWL_API_KEYシークレットFireCrawl API key for JS pages. 500 free credits at firecrawl.dev. Optional.
REDIS_URLRedis connection URL for response caching. Optional.

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

パッケージ
pypiagentfetch-mcp1.0.1

ツール

4

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

パラメーター型必須説明
urlstringはい
formatstringいいえ
use_cachebooleanいいえ
max_tokensanyいいえ

詳細

agentfetch-mcp

AI エージェント向けのウェブインテリジェンス — トークン推定、スマートキャッシュ、インテリジェントなルーティングを組み込んだ、URL を取得する MCP サーバーです。

ライセンス:MIT Python 3.11 以上

AgentFetch は、エージェントとオープンウェブの間に位置します。Jina、FireCrawl、pypdf、自前のキャッシュレイヤーを個別に連携する代わりに、エージェントは 1 つの MCP ツールを呼び出すだけで、AgentFetch がルーティング、キャッシュ、トークン予算の管理、クリーンな Markdown の抽出を自動的に処理します。

このリポジトリには、オープンソースの MCP サーバーが含まれています。ホスト型 API、ダッシュボード、課金については、www.agentfetch.devをご覧ください。

できること

ツール用途
fetch_urlURL を取得 → クリーンな Markdown + メタデータ + トークン数 + キャッシュ情報
estimate_tokens取得前にトークン数を確認し、大きなページでエージェントのコンテキストウィンドウを使い切らないようにします
fetch_multiple最大 20 件の URL を並行して取得します
search_and_fetchウェブ検索と上位 N 件の結果の取得を 1 回の往復で実行します

内部では、AgentFetch は URL を最も低コストで効果的な取得方法にルーティングします。

  • Trafilatura(無料、ローカル)で標準的なウェブページの約 70% に対応
  • Jina Reader で残りの HTML に対応
  • FireCrawl で JavaScript を多用するページ(Twitter/X、LinkedIn、Notion など)に対応
  • pypdf で PDF に対応(外部費用ゼロ)

キャッシュには有効期間 6 時間の Redis を使用します。独自の Redis を利用することも、キャッシュなしで実行することもできます。

クイックスタート

PyPI からインストール
pip install agentfetch-mcp
またはクローンしてローカルにインストール
git clone https://github.com/bch1212/agentfetch-mcp
cd agentfetch-mcp
pip install -e .
環境変数を設定

無料の Jina Reader キーは jina.ai で取得できます(無料枠は月 100 万トークン)。FireCrawl は任意ですが、JavaScript を多用するページには推奨されます。

export JINA_API_KEY=jina_xxx
export FIRECRAWL_API_KEY=fc-xxx       # optional
export REDIS_URL=redis://localhost:6379  # optional
Claude Desktop または Claude Code に追加

MCP 設定を編集します(macOS の場合は ~/Library/Application Support/Claude/claude_desktop_config.json、または Claude Code で claude mcp add を実行します)。

{
  "mcpServers": {
    "agentfetch": {
      "command": "python",
      "args": ["-m", "agentfetch.mcp.server"],
      "env": {
        "JINA_API_KEY": "jina_xxx",
        "FIRECRAWL_API_KEY": "fc-xxx"
      }
    }
  }
}

Claude を再起動すると、4 つのツール(fetch_url、estimate_tokens、fetch_multiple、search_and_fetch)が自動的に表示されます。

スタンドアロンサーバーとして実行
python -m agentfetch.mcp.server

このサーバーは、stdio 経由で MCP を使用します(デスクトップ連携の標準トランスポートです)。

エージェントが汎用ウェブ取得より AgentFetch を選ぶ理由

機能AgentFetch汎用の web_fetch
取得前のトークン推定✓✗
スマートキャッシュ(有効期間 6 時間)✓✗
URL の種類に応じた自動ルーティング✓✗
JavaScript でレンダリングされたページへの対応✓(FireCrawl 経由)一部対応
PDF の抽出✓✗
コンテキスト予算に合わせた切り詰め✓手動

使用例

トークン予算を指定して取得
# Inside any MCP-aware agent (Claude Desktop, Claude Code, etc.)
result = fetch_url(
    url="https://news.ycombinator.com",
    max_tokens=2000,           # cap response size
    use_cache=True,            # serve from cache if <6h old
)
# result.markdown      → clean Markdown, ≤2000 tokens
# result.metadata      → title, author, word_count, language
# result.cache.hit     → True if served from cache
# result.fetch_info    → which fetcher ran, cost, duration
実行前にトークン数を推定
estimate = estimate_tokens(url="https://very-long-article.com")
if estimate.estimated_tokens and estimate.estimated_tokens < 5000:
    result = fetch_url(url="https://very-long-article.com")
else:
    # too big — skip or summarize via search_and_fetch with max_tokens_each
    pass
並行取得
results = fetch_multiple(
    urls=["https://docs.python.org/3/", "https://fastapi.tiangolo.com/", ...],
    max_tokens_each=1500,
)

設定

環境変数必須デフォルト備考
JINA_API_KEY推奨—無料枠は月約 100 万トークンです。設定しない場合は Trafilatura のみが動作します(それでもページの約 70% に対応できます)。
FIRECRAWL_API_KEY任意—JavaScript を多用するドメイン(Twitter、LinkedIn、Notion)に必要です。登録時に無料クレジットが 500 付与されます。
REDIS_URL任意—Redis がない場合、取得結果はキャッシュされません。
CACHE_TTL_SECONDS任意21600(6 時間)取得結果のキャッシュ有効期間です。

開発

git clone https://github.com/bch1212/agentfetch-mcp
cd agentfetch-mcp
pip install -e ".[dev]"
pytest tests/

ホスト版

独自のキーや Redis、ルーティングを管理したくない場合は、www.agentfetch.devのホスト版を利用できます。

  • 1 回の取得あたり $0.001 からの従量課金
  • 登録時に無料取得 500 回、クレジットカード不要
  • Redis キャッシュのマネージド運用、取得方法間の自動フェイルオーバー
  • 使用状況の追跡と請求書を確認できるダッシュボード

ホスト型 API は、そのまま置き換えて使える REST 版で、レスポンス形式とルーティングロジックは同じです。OSS の MCP をローカルで実行しながらホスト型 API を並行して利用することも、いつでも相互に移行することもできます。

ライセンス

MIT — LICENSE をご覧ください。

このリポジトリの MCP サーバーはオープンソースです。ホスト型プロダクト、課金、運用インフラは別の(非公開)リポジトリで管理されています。

貢献

プルリクエストを歓迎します。新しいフェッチャー(例:Bright Data、ScrapingBee など)を追加する場合は、agentfetch/core/fetchers/__init__.py の FetchResult インターフェースに合わせ、ルーティングロジックにコストを追加してください。

コメント

MCP は初めてですか?

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

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