Maigret MCP Server について
mcp-maigret は、AI エージェントが Docker 上の maigret を実行し、ユーザー名やプロフィール URL から公開情報を調べて レポートを保存できる MCP サーバーです。許可された OSINT 調査での利用を想定しており、入力の検証とシェルを介さない実行を特徴としています。
主な機能
- 01多数のサイトに対するユーザー名検索
- 02タグによる検索対象サイトの絞り込み
- 03プロフィール URL の解析と関連ユーザー名の探索
- 04複数のレポート形式による指定ディレクトリへの保存
- 05入力検証と execFile による Docker 呼び出し
活用シーン
- 01許可された OSINT 調査でユーザー名の登録先を確認する
- 02プロフィール URL から関連するユーザー名を抽出する
- 03検索結果を HTML や JSON のレポートとして保存する
MCP 対応
MCP サーバーとして search_username と parse_url のツールを MCP クライアントに公開し、保存されたレポートのパスまたは maigret の出力テキストを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
クイックスタート · ツール · 形式 · セキュリティ · トラブルシューティング · ドキュメント
mcp-maigret は、AI エージェントが maigret を実行できる MCP サーバーです。maigret は、数千のサイトでユーザー名を検索する OSINT ツールです。ハンドル名がどこに登録されているかの検索や、プロフィール URL の分析をエージェントに依頼すると、保存されたレポートを受け取れます。maigret は Docker で実行されるため、Docker と Node 以外にインストールするものはありません。
警告
これは、公開情報を対象とした正当かつ許可済みの OSINT 調査に使用してください。法律および各サイトの利用規約に従い、個人のプライバシーを尊重してください。一部のサイトでは、自動検索の頻度が制限されたり、ブロックされたりする場合があります。
特長
- ユーザー名検索。数百から数千のサイトを対象に検索でき、タグ(
photo、dating、us、……)で絞り込めます。 - URL 分析。プロフィール URL を渡すと、maigret が可能な情報を抽出し、関連するユーザー名を検索します。
- 6 種類のレポート形式(
txt、html、csv、json、xmind、pdf)。指定したディレクトリに保存されます。現在利用できる形式をご確認ください。 - 強化された入力処理。厳格な検証と、引数配列を使った
execFileを採用しています。シェルは一切使用しません。セキュリティをご覧ください。 - Docker ベース。初回使用時に maigret イメージが取得されるため、どのマシンでも同じ maigret が実行されます。
仕組み
flowchart LR
A["AI agent<br/>(Claude Desktop, Claude Code, any MCP client)"] -->|"MCP over stdio"| S["mcp-maigret"]
S -->|"validate input,<br/>execFile docker run"| D["soxoj/maigret<br/>(Docker)"]
D -->|"checks sites"| W(("Public<br/>websites"))
D -->|"writes report"| R[("MAIGRET_REPORTS_DIR")]
S -->|"report path + scan output"| A
クイックスタート
要件: Node.js 18 以降、およびインストール済みで実行中の Docker。macOS で開発・テストされています。Linux と Windows(Docker Desktop)でも動作するはずですが、テストされていません。
1. レポート保存先ディレクトリを選択します。 サーバーはここにレポートを保存します。ディレクトリがない場合は作成されます。この変数は必須です。
export MAIGRET_REPORTS_DIR="$HOME/maigret-reports"
2. サーバーをクライアントに追加します。
Claude Code
claude mcp add maigret -e MAIGRET_REPORTS_DIR="$HOME/maigret-reports" -- npx -y mcp-maigret
Claude Desktop
設定ファイル(macOS:~/Library/Application Support/Claude/claude_desktop_config.json、Windows:%APPDATA%\Claude\claude_desktop_config.json)を編集し、Claude Desktop を再起動します。
{
"mcpServers": {
"maigret": {
"command": "npx",
"args": ["-y", "mcp-maigret"],
"env": { "MAIGRET_REPORTS_DIR": "/absolute/path/to/maigret-reports" }
}
}
}
Smithery
npx -y @smithery/cli install mcp-maigret --client claude
ソースから実行
git clone https://github.com/w0h1v/mcp-maigret && cd mcp-maigret
npm install && npm run build
次に、同じ MAIGRET_REPORTS_DIR 変数を指定して、クライアントから node /absolute/path/to/mcp-maigret/build/index.js を実行します。
3. 試してみましょう。 エージェントに次のように依頼します。「maigret を使って、ユーザー名 octocat がどこに登録されているか、coding タグに絞って調べてください。」
初回の検索では maigret イメージ(約 800 MB)が取得されるため、時間がかかります。
ツール
search_username
ソーシャルネットワークやサイト全体からユーザー名を検索します。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
username | string, required | 文字、数字、_、-、. のみ使用でき、最大100文字です | |
format | enum | txt | txt、html、csv、json、xmind、pdf のいずれかです(形式を参照) |
use_all_sites | boolean | false | 上位500サイトではなく、maigretのデータベースにあるすべてのサイトを確認します |
tags | string[] | none | 指定したタグを持つサイトのみを確認します。使用できるのは文字、数字、_、- のみです |
{ "username": "octocat", "format": "html", "tags": ["coding"] }
結果には、保存されたレポートのパスとmaigretのコンソール出力が含まれます。レポートファイルが生成されなかった場合は、成功を報告する代わりに、その旨が結果に表示されます。
parse_url
URLを解析し、情報を抽出して、関連するユーザー名を検索します。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
url | string, required | シェルのメタ文字を含まないhttpまたはhttpsのURLです | |
format | enum | txt | 上記と同じオプションです |
{ "url": "https://github.com/octocat" }
結果は、maigretのスキャン出力テキストとして返されます。
出力形式
レポートはMAIGRET_REPORTS_DIRに書き込まれます。ファイル名はMaigretが決定し、形式によっては接尾辞が追加されます。Maigretが関連するユーザー名を見つけた場合、メインのレポートと同じ場所に追加のレポートを書き込むことがあります(例:report_octocatsup.txt)。
| 形式 | search_usernameが書き込むファイル | 状態 |
|---|---|---|
txt | report_<username>.txt | 使用できます。デフォルトです。 |
csv | report_<username>.csv | 使用できます |
json | report_<username>_simple.json | 使用できます |
html | report_<username>_plain.html | 使用できます |
xmind | report_<username>.xmind | 使用できます |
pdf | report_<username>.pdf | 標準イメージでは利用できません。Maigretにはオプションのpdf追加パッケージが必要ですが、soxoj/maigretには含まれていません。このツールはファイルが生成されなかったことを報告します。 |
状態はmaigret 0.6.6(イメージsoxoj/maigret:latest、2026年10月)で確認しています。Maigretのコマンドラインはリリースごとに変更されるため、状況が変わる可能性があります。
セキュリティ
ユーザー名、URL、タグはAIエージェントから渡されるため、信頼できない入力として扱います。
- 検証。 ユーザー名に使用できるのは
[A-Za-z0-9_.-]のみです(最大100文字)。タグに使用できるのは[A-Za-z0-9_-]のみです(最大50文字)。URLはhttpまたはhttpsとして解析でき、シェルのメタ文字を含まない必要があります。 - シェルを使用しません。 Dockerの起動には
execFileと引数配列を使用し、連結したコマンド文字列は使用しません。 - 書き込み範囲の制限。 レポートはコンテナから、マウントした単一のディレクトリに書き込まれます。サーバーはそれ以外の場所を読み書きしません。
この仕組みで対処できないこと:サーバーはエージェントに代わってお使いのマシン上でDockerを実行し、お使いのIPアドレスから多数のサードパーティサイトにネットワークリクエストを送信します。信頼できるエージェントとクライアントに対してのみ実行してください。
脆弱性を発見した場合は、非公開で報告してください。SECURITY.mdを参照してください。
トラブルシューティング
| メッセージ | 対処方法 |
|---|---|
Docker is not installed or not running | Docker をインストールして、デーモンを起動してください。docker --version と docker ps で確認できます。Linux では、sudo usermod -aG docker $USER を実行して、自分を docker グループに追加してください。 |
MAIGRET_REPORTS_DIR environment variable must be set | クライアントの env ブロックに変数を追加し、クライアントを再起動してください。 |
Error creating reports directory | パスと、ユーザーにそのパスへの書き込み権限があることを確認してください。末尾にスラッシュを付けず、絶対パスを使用してください。 |
Invalid username / Invalid tag / Invalid URL | 入力値が検証に失敗しました。ツールに記載されている文字のみを使用してください。 |
No report file was produced ... | 指定した形式はイメージで利用できません(形式を参照)。txt、json、または html を試してください。 |
Error executing maigret | メッセージに含まれている Docker の出力を確認してください。多くの場合、ネットワークの問題か、maigret のオプションが変更されたことが原因です。 |
| 検索に時間がかかる | 初回実行時にイメージが取得されます。検索範囲を tags で絞り込み、必要がない限り use_all_sites は避けてください。 |
詳細はドキュメントをご覧ください。
コントリビューション
コントリビューションを歓迎します。CONTRIBUTING.mdから始めてください。
- 変更履歴
- 質問とサポート:SUPPORT
- セキュリティに関する報告:SECURITY.md(非公開のアドバイザリーを利用し、公開 issue は作成しないでください)
ライセンス
MIT。maigret プロジェクトとは無関係の独立したプロジェクトです。Maigret は soxoj によるもので、独自のライセンスがあります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。