seekfetch について
seekfetchは、DeepSeek Search & Fetch APIを利用する非公式クライアントで、AIエージェントや開発者向けにウェブ検索、ページのMarkdown化、調査機能を提供します。MCPサーバー、CLI、TypeScriptライブラリとして利用でき、モデル向け要約や長文の分割取得に対応します。
主な機能
- 01検索結果を関連度順に表示
- 02ページをMarkdownとして取得
- 031回の調査でページ内容と出典を返す
- 04長文をオフセット指定で分割取得
- 05バックオフ付き再試行とレート制限対応
- 06CLIとTypeScriptライブラリ
活用シーン
- 01エージェント向けのウェブ情報と出典の収集
- 02ページ内容をMarkdownのノートに抽出
- 03サイトや言語を指定した検索
- 04コンテキストを管理しながら長いページを読む
MCP 対応
stdioで動作するMCPサーバーが、DeepSeekの検索、ページ取得、調査ツールをMCPクライアントに提供します。利用にはDeepSeek APIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| lang | array | いいえ | 言語コード。例:["en", "es"]。 |
| after | string | いいえ | この日付より後の日付のページのみ:YYYY、YYYY-MM、または YYYY-MM-DD。 |
| count | integer | いいえ | 返す結果数(デフォルトは 10)。 |
| query | string | はい | 検索クエリ。フィルター追加後の最大文字数は 128 文字です。 |
| sites | array | いいえ | これらのドメインの結果のみを返します。例:["github.com"]。 |
| before | string | いいえ | この日付より前の日付のページのみ:YYYY、YYYY-MM、または YYYY-MM-DD。 |
| min_score | number | いいえ | rerank_score がこの値を下回る結果を除外します。 |
| localization | string | いいえ | 結果のローカライズに使用する任意の IP アドレス。 |
| exclude_sites | array | いいえ | これらのドメインからの結果を除外します。 |
| summary_chars | integer | いいえ | 各要約の最大文字数(デフォルトは 800)。 |
| include_content | boolean | いいえ | 各ページのテキストも返します(途中で切り詰め)。追加リクエストは発生しませんが、より多くのコンテキストを使用します。 |
| original_question | string | いいえ | ユーザー自身の言葉による元の質問です。ランキングの改善に役立ちます。128 文字に切り詰められます。 |
詳細
seekfetch
DeepSeek Search & Fetch API を利用した、AI エージェント向けの Web 検索とページの Markdown 化。 1 つのパッケージを 3 通りで利用できます。MCP サーバー、CLI、TypeScript ライブラリです。
非公式のコミュニティプロジェクトです。 seekfetch は DeepSeek と提携、推奨、後援の関係にありません。 DeepSeek の公開 API を利用するクライアントであり、ご自身の API キーが必要です。
特長
- 専用エンドポイントを呼び出します(
/v1/tools/search、/v1/tools/fetch)。間にチャットモデルを挟まないため、検索のコストは API リクエスト 1 回分で、モデルのトークンは消費しません。 - 検索、取得、リサーチに対応します。
researchは 1 回の検索リクエストで、コンテンツ付きの最適なページを返し、内容が空だったページだけを取得します。 - コンテキストウィンドウ向けに設計されています。 デフォルトで DeepSeek のモデル向け要約を返し、関連性スコアで絞り込み、オフセットを使って長いドキュメントをページ分割します。
- 本番環境向けの動作を備えています。 408/429/5xx をバックオフ付きで再試行し、
Retry-Afterに従います。アカウントの上限である 5 QPS に合わせてリクエストを調整し、不正なリクエストが API 呼び出しのコストにならないよう、入力をローカルで検証します。レスポンスを柔軟に解析するため、新しいフィールドや欠落したフィールドがあっても動作に支障はありません。
クイックスタート
- platform.deepseek.com で API キーを取得します。
- seekfetch を MCP クライアントに追加するか(下記参照)、シェルから実行します。
export DEEPSEEK_API_KEY=sk-...
npx -y seekfetch search "model context protocol registry"
Node.js 22.12 以降が必要です。
MCP の設定
サーバーは npx -y seekfetch mcp を使って stdio 経由で動作します。
Claude Code
claude mcp add seekfetch -e DEEPSEEK_API_KEY=sk-... -- npx -y seekfetch mcp
Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"seekfetch": {
"command": "npx",
"args": ["-y", "seekfetch", "mcp"],
"env": { "DEEPSEEK_API_KEY": "sk-..." }
}
}
}
Cursor — ~/.cursor/mcp.json
{
"mcpServers": {
"seekfetch": {
"command": "npx",
"args": ["-y", "seekfetch", "mcp"],
"env": { "DEEPSEEK_API_KEY": "sk-..." }
}
}
}
VS Code — .vscode/mcp.json
{
"inputs": [
{ "type": "promptString", "id": "deepseek-key", "description": "DeepSeek API key", "password": true }
],
"servers": {
"seekfetch": {
"type": "stdio",
"command": "npx",
"args": ["-y", "seekfetch", "mcp"],
"env": { "DEEPSEEK_API_KEY": "${input:deepseek-key}" }
}
}
}
Codex — ~/.codex/config.toml
[mcp_servers.seekfetch]
command = "npx"
args = ["-y", "seekfetch", "mcp"]
env = { DEEPSEEK_API_KEY = "sk-..." }
Windows でクライアントが npx を見つけられない場合は、"command": "cmd" と "args": ["/c", "npx", "-y", "seekfetch", "mcp"] を使用してください。
ツール
| ツール | 機能 |
|---|---|
deepseek_search | 要約付きのランキング済み Web 検索結果(最大 800 文字。変更するには summary_chars を指定)。任意のフィルター:sites、exclude_sites、lang、after、before、min_score。include_content を指定するとページのテキストも含まれます。 |
deepseek_fetch | URL を Markdown として取得します。長いページは max_chars 単位で分割されます。続きは offset で取得できます。 |
deepseek_research | 質問 → コンテンツと番号付きソースを含む、スコア上位のページを 1 回の呼び出しで取得します。 |
すべてのツールは読み取り専用です。
CLI
npm i -g seekfetch # or prefix each command with npx -y
seekfetch search "rust async runtimes" -n 5 --min-score 1.5
seekfetch search "mcp server" --site github.com --lang en --after 2026-01-01
seekfetch research "how is the DeepSeek search API priced?" -o notes.md
seekfetch fetch https://example.com --max-chars 20000
seekfetch search "query" --json | jq '.results[].url'
すべてのフラグについては、seekfetch <command> --help を実行してください。
エージェントスキル
skills/seekfetch/SKILL.md は、シェルを使うエージェント(Claude Code、Codex、および SKILL.md を読み込むその他のエージェント)に、CLI を使うタイミングと方法を教えます。たとえば ~/.claude/skills/seekfetch/ のように、フォルダーをエージェントのスキルディレクトリにコピーしてください。
ライブラリ
import { DeepSeekWebClient, buildQuery, research } from "seekfetch";
const client = new DeepSeekWebClient({ apiKey: process.env.DEEPSEEK_API_KEY! });
const { results } = await client.search({
query: buildQuery("vector databases", { sites: ["github.com"], after: "2026" }),
count: 10,
});
const page = await client.fetch("https://example.com"); // { title, content (Markdown) }
const report = await research(client, { question: "What changed in MCP this year?", maxPages: 3 });
設定
| 変数 | デフォルト | |
|---|---|---|
DEEPSEEK_API_KEY | — | 必須です。 |
DEEPSEEK_BASE_URL | https://api.deepseek.com | プロキシ用の上書き値です。 |
DEEPSEEK_TIMEOUT_MS | 60000 | 試行ごとのタイムアウトです。 |
DEEPSEEK_MAX_RETRIES | 3 | 408、429、5xx、およびネットワークエラー時の再試行回数です。 |
API の制限と料金
2026-10-18 時点で DeepSeek が公開している情報です。最新の利用条件については、検索と取得のガイドをご確認ください。
- クエリはフィルターを含めて128文字までです。
countは1~50です。 - 実際の使用で確認された内容:要約は1,000~3,500文字(ドキュメントでは600~800文字と記載)、検索結果のページコンテンツは約20,000文字が上限で、
site:は厳密なフィルターではなく、強い優先指定として機能します。 - 検索はアカウントあたり毎秒5クエリ、取得も別途毎秒5クエリです。取得にはドメインごとの制限もあります。
- 料金は成功したリクエストごとに課金され、各APIとも1,000リクエストあたり$0.75と公開されています。結果が空の場合やエラーの場合は課金されません。
開発
npm install
npm test # unit + MCP tests against a fake API
npm run build
IssueやPRを歓迎します。
ライセンス
MITです。「DeepSeek」はその所有者の商標であり、ここではこのクライアントが呼び出すAPIを説明する目的でのみ使用しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。