mcp-research
Webリサーチ、学術論文、Twitter/X、YouTube、およびファイル取り込みのためのMCPサーバーです。AIアシスタント向けの8つのツールをすべてMCP stdioプロトコル経由で提供します。機関アクセス用の認証情報保管庫(クレデンシャル・ボルト)、CAPTCHA検出、トークン効率の高い出力を備えています。
ツール
ツール | 説明 |
| 3段階の検索カスケード: Brave API → DuckDuckGo → HTMLスクレイパー |
| URL取得 → クリーンなMarkdown変換(SSRF保護および24時間キャッシュ付き) |
| 複合パイプライン: クエリ書き換え → 検索 → 並列取得 → 要約 → 合成 |
| YouTube動画 → トランスクリプト、要約、要点、チャプター、引用 |
| ファイルからのテキスト抽出: PDF、DOCX、XLSX、PPTX、音声、動画、画像 |
| DOI / ArXiv / PubMedの解決 → メタデータ + 機関アクセス経由の全文 |
| X.com/Twitterからのツイートおよびスレッドの抽出 |
| ロードされた認証プロファイルと依存関係の状態を表示(シークレットは決して公開しません) |
すべてのツールは読み取り専用です。コンテンツを取得および変換するだけで、何も変更しません。
Related MCP server: Research Powerpack MCP
インストール
pip install mcp-researchまたは uvx を使用して直接実行します(インストール不要):
uvx mcp-researchオプションの追加機能:
pip install 'mcp-research[twitter]' # yt-dlp for Twitter extraction
pip install 'mcp-research[youtube]' # yt-dlp + faster-whisper for YouTube
pip install 'mcp-research[academic]' # PyPDF2 for academic PDFs
pip install 'mcp-research[ingest]' # PDF, DOCX, XLSX, PPTX, audio support
pip install 'mcp-research[all]' # everythingセットアップの確認:
mcp-research doctorClaude Codeでの使用
Claude CodeのMCP設定(~/.claude/settings.json またはプロジェクトの .mcp.json)に追加します:
{
"mcpServers": {
"research": {
"command": "uvx",
"args": ["mcp-research"],
"env": {
"BRAVE_API_KEY": "BSA...",
"OLLAMA_URL": "http://localhost:11434"
}
}
}
}Claude Desktopでの使用
claude_desktop_config.json に追加します:
{
"mcpServers": {
"research": {
"command": "uvx",
"args": ["mcp-research"],
"env": {
"BRAVE_API_KEY": "BSA..."
}
}
}
}設定
すべての設定は環境変数経由で行います(オプションのボルトを除き、設定ファイルは不要です)。
変数 | デフォルト | 説明 |
| (空) | Brave Search APIキー。未設定の場合はDuckDuckGoにフォールバックします。 |
|
| 要約/合成用のOllamaエンドポイント。無効にするには空に設定します。 |
|
| 要約および合成に使用するモデル。 |
|
| URL取得キャッシュディレクトリ。 |
|
| キャッシュのTTL(時間単位)。 |
|
| 検索ログディレクトリ(NDJSON)。 |
|
| デフォルトの最大検索結果数。 |
|
| 認証情報保管庫ファイルのパス。 |
|
| ファイル変更時にボルトを自動リロードします。 |
|
| セッションのアイドルタイムアウト(秒単位)。 |
ツールの詳細
web_search
web_search(query, max_results=5, summarize=False, auto_fetch_top=False)最大限の信頼性を確保するため、3段階のカスケードを使用してWebを検索します:
Brave Search API — 高速で高品質(
BRAVE_API_KEYが必要)DuckDuckGoライブラリ — APIキー不要、レート制限時に再試行
DuckDuckGo HTMLスクレイパー — 最後の手段としてのフォールバック
オプション:
summarize: Ollamaを使用して結果を要約します(Ollamaの実行が必要)auto_fetch_top: 上位結果の全コンテンツも取得して返します
fetch_url
fetch_url(url, summarize=False, max_chars=15000)URLを取得し、クリーンなMarkdownに変換します:
SSRF保護: ローカルホスト、プライベートIP、非HTTPスキームをブロック
スマート再試行: 429/5xxエラー時の指数バックオフ、ホップごとのリダイレクト検証
24時間キャッシュ: SHA-256キー付き、TTL設定可能
コンテンツサポート: HTML → Markdown、JSON → コードブロック、バイナリ → 拒否
スマート切り詰め: テキストの途中ではなく、見出しや段落の境界で分割
CAPTCHA検出: Cloudflare、hCaptcha、reCAPTCHA、Akamaiの壁をフラグ付け
トークン効率: デフォルト15K文字(約4Kトークン)、
max_charsで調整可能
research
research(query, depth="standard", context="")複合リサーチパイプライン:
クエリ書き換え — Ollamaが質問を検索キーワードに最適化
Web検索 — 関連ページを検索(結果ゼロ時の再試行拡張あり)
並列取得 — 上位Nページを並列で取得
要約 — Ollamaが各ページを要約
合成 — Ollamaが最終的な引用付き回答を作成
深度レベル:
深度 | ページ数 | 合成 |
| 2 | なし |
| 5 | あり |
| 10 | あり |
すべてのステップはOllamaなしでも正常に機能します。その場合でも検索結果とページコンテンツは取得可能です。
youtube_essence
youtube_essence(url, mode="standard")YouTube動画から構造化されたコンテンツを抽出します:
トランスクリプト: 自動字幕またはWhisperによる文字起こし(ローカル、プライベート)
要約: OllamaによるAI要約
要点: 箇条書きのまとめ
チャプター: タイムスタンプ付きセグメント
引用: 注目すべき引用(ディープモード)
モード: quick (TL;DR), standard (+チャプター), deep (+引用)
yt-dlpが必要です。オプション: 音声のみの動画にはfaster-whisper、メディア抽出にはffmpeg。
deep_ingest
deep_ingest(path, include_types="", max_files=200, summarize=False)ディレクトリ内のファイルまたは単一ファイルからテキストを抽出します:
テキストファイル:
.txt,.md,.json,.csv, ソースコードなどPDF: PyPDF2経由(オプションの依存関係)
Office:
.docx,.xlsx,.pptx(オプションの依存関係)音声/動画: Whisper文字起こし(オプション)
画像: OllamaビジョンモデルによるOCR(オプション)
タイプフィルター: text, pdf, audio, video, image, office
academic_lookup
academic_lookup(identifier, fetch_fulltext=True)複数の識別子タイプから学術論文を解決します:
DOI:
10.xxxx/...→ Crossrefメタデータ + 出版社リダイレクトArXiv:
2301.12345→ アブストラクト + PDFPubMed: PMID → E-utilitiesメタデータ → DOIチェーン
URL: 出版社ページの検出
認証情報保管庫経由の全文アクセス:
EZproxy書き換え(プレフィックスおよびサフィックスモード)
Bearerトークン、APIキー、基本認証、クッキーJar
自動出版社検出(IEEE, Springer, Elsevier, ACM, Wiley, Nature, JSTORなど)
twitter_extract
twitter_extract(url, include_thread=False)戦略カスケードを使用してX.com/Twitterからツイートとスレッドを抽出します:
yt-dlp (プライマリ) — 認証済みアクセスのためにクッキーJarと連携
Twitter API v2 — ボルトにBearerトークンが設定されている場合
HTML取得 — クッキーベースの最後の手段
戻り値: テキスト、作成者、タイムスタンプ、指標(いいね、リツイート、返信)、メディアURL。
vault_status
vault_status()ロードされた認証プロファイル、一致パターン、認証タイプを表示します。シークレットは決して公開しません。また、オプションの依存関係の可用性もチェックします。
認証情報保管庫(Credential Vault)
~/.mcp-research/vault.yaml を作成して、保護されたソースの認証を設定します:
version: 1
profiles:
# University EZproxy for IEEE
ieee-university:
match: "*.ieee.org/**"
ezproxy:
base_url: "https://ezproxy.myuniversity.edu/login?url="
mode: prefix
# Springer via API key
springer:
match: "*.springer.com/**"
auth:
type: api_key
header: "X-ApiKey"
value: "${SPRINGER_API_KEY}"
# X.com via browser cookies
twitter:
match: "*.x.com/**"
auth:
type: cookie_jar
path: "${HOME}/.mcp-research/cookies/twitter.txt"${VAR}は環境変数から解決されます。シークレットはプレーンテキストで保存されません。最初に一致したプロファイルが優先されます(順序が重要です)
認証タイプ:
bearer,basic,api_key,cookie_jar,headersEZproxyモード:
prefix(ベースURLを先頭に追加)またはsuffix(ドメイン書き換え)ホットリロード: ボルトファイルの変更は自動的に反映されます
トークン効率
すべてのツールは、AIのコンテキストウィンドウのトークンを無駄にしないよう、デフォルトでコンパクトな出力を生成します:
ツール | デフォルト出力 | オーバーライド |
| 約15K文字(約4Kトークン) |
|
| ソースあたり約500トークン | 生コンテンツより要約を優先 |
| 約10K文字の全文 | 通知付きで切り詰め |
| 15ファイル、300文字の抜粋 |
|
| 3K文字のトランスクリプト抜粋 | 結果オブジェクトに全文トランスクリプト |
安全性と堅牢性
SSRF保護: すべてのホップでローカルホスト、プライベートIP、リンクローカル、非HTTPスキームをブロック
CAPTCHA検出: Cloudflare、hCaptcha、reCAPTCHA、Akamai、DDoS-Guardの壁を識別
入力検証: サイズ制限、URL検証、安全なリダイレクト追跡
eval/execなし: 動的なコード実行は行いません
ボルトのセキュリティ: シークレットは環境変数から解決され、
repr()ですべての認証値を秘匿しますキャッシュの分離: 所有者のみのディレクトリ権限 (0o700)
正常な劣化: オプションの依存関係が欠けていてもクラッシュせず、明確なメッセージで機能が劣化します
CLI
mcp-research serve # Run MCP stdio server (default)
mcp-research search "query" # Search the web
mcp-research fetch https://example.com # Fetch URL to markdown
mcp-research youtube https://youtu.be/... # Extract YouTube video
mcp-research ingest ./docs/ # Extract text from files
mcp-research academic "10.1109/..." # Resolve academic paper
mcp-research tweet https://x.com/.../123 # Extract tweet
mcp-research vault # Show vault profiles
mcp-research doctor # Check dependencies開発
git clone https://github.com/MABAAM/Maibaamcrawler.git
cd Maibaamcrawler
pip install -e ".[all]"
pytest tests/ -v
python -m mcp_research変更履歴
v0.3.0
認証情報保管庫:
~/.mcp-research/vault.yamlでのYAML設定。環境変数の補間、glob URLマッチング、EZproxy書き換え、ホットリロードに対応セッションプーリング: ボルト認証注入、クッキーJarサポート、アイドル時の破棄を備えたドメインごとのセッション
CAPTCHA検出: Cloudflare、hCaptcha、reCAPTCHA、Akamai、DDoS-Guard、一般的なボットの壁を識別
学術検索: DOI/ArXiv/PubMedの解決、Crossrefメタデータ、ボルト経由の機関全文アクセス
Twitter/X抽出: yt-dlp、API v2、スレッドサポート付きのクッキーベースアクセス
トークン効率: AIコンテキストを維持するためのデフォルト出力上限(取得時は約4Kトークン、リサーチソースあたり約500トークン)
Doctorコマンド:
mcp-research doctorで依存関係と設定をすべてチェックWindowsエンコーディング修正: UTF-8 stdout/stderrラッパーによりcp1252クラッシュを防止
v0.2.0
YouTube essence: トランスクリプト抽出、AI要約、要点、チャプター、引用
Deep ingest: PDF, DOCX, XLSX, PPTX, 音声, 動画, 画像テキスト抽出
Ollama統合: クエリ書き換え、要約、合成、ビジョンOCR
検索ログ: すべての操作に対するNDJSONイベントログ
Brave Search: APIキーサポートを備えたプライマリ検索階層
v0.1.0
初回リリース: 3つのツール (web_search, fetch_url, research)、SSRF保護、キャッシュ
ライセンス
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MABAAM/Maibaamcrawler'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
