Xmp4 について
Xmp4 は、SCIP でインデックス化されたオープンソースライブラリを意味的に検索できるホスト型 MCP サーバーです。コーディングエージェントに実際のソース、呼び出し元、型階層を提供し、ローカル複製やテキスト検索の手間を減らします。
主な機能
- 01インデックス済みライブラリの検索
- 02シンボル情報とソースの確認
- 03呼び出し元と呼び出し先の検索
- 04型階層と使用箇所の分析
- 05関連テストと依存関係の検索
- 06行範囲を指定したソース表示
活用シーン
- 01関数の実際の呼び出し元を特定
- 02ライブラリ内のシンボル定義とソースを確認
- 03型階層とシンボルの使用箇所を追跡
- 04シンボルに関連するテストを特定
MCP 対応
Xmp4 はホスト型 MCP サーバーを通じて、検索、ソース、呼び出し元、使用箇所、階層、テストなど17種類のコード検索ツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.example4.ai/mcpclaude mcp add --transport http lsai-xmp4.public https://mcp.example4.ai/mcp{"mcpServers":{"lsai-xmp4.public":{"type":"http","url":"https://mcp.example4.ai/mcp"}}}Cursor で開く{"servers":{"lsai-xmp4.public":{"type":"http","url":"https://mcp.example4.ai/mcp"}}}VS Code で開く{"mcpServers":{"lsai-xmp4.public":{"type":"http","url":"https://mcp.example4.ai/mcp"}}}{"mcpServers":{"lsai-xmp4.public":{"serverUrl":"https://mcp.example4.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
17| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| docs | string | いいえ | ドキュメントを含める:none(デフォルト)| summary | full(xmp4_info のみ) |
| file_path | string | いいえ | 曖昧さを解消するためのファイルパス |
| output_format | string | いいえ | 出力形式:Compact(デフォルト)または Verbose |
| page | integer | いいえ | ページ番号(1 から始まります。デフォルトは 1 です。xmp4_info/xmp4_source では無視されます) |
| page_size | integer | いいえ | 1ページあたりの結果数(デフォルト 20、最大 100) |
| project | string | はい | xmp4_projects のプロジェクト(例:'requests/requests') |
| symbol_name | string | はい | シンボル名 |
詳細
xmp4
ライブラリのソースを grep するのはやめましょう。
MCP を通じて、AI が856 のオープンソースライブラリをコンパイラーの視点で利用できます。
実際の呼び出し元。実際のソース。実際の階層。わずか3回のツール呼び出しで。
30秒でわかる概要
AI コーディングエージェントは、ほとんど使わない OSS ライブラリを grep するためにトークンを浪費しています。xmp4 は、Sourcegraph が使用するセマンティックコード形式である SCIP を使って、人気のオープンソースライブラリ856件を事前にインデックス化し、17個のツールを通じて提供するホスト型 MCP サーバーです。クローン不要。grep 不要。誤検出もありません。
ASK: "Who calls Flask.wsgi_app in the flask repo and what does it do?"
with grep + local clone:
git clone flask/flask ~40 MB, ~2 min
grep -rn "wsgi_app" . 200+ matches, mostly noise
cat src/flask/app.py | sed ... read 1000+ lines to find the body
filter false positives model spends tokens deciding what's real
──────────────────────────────────────
total: ~15,000 tokens + disk + wall time
with xmp4:
xmp4_info(symbol_name="Flask", file_path="src/flask/app.py") → signature, 20 tok
xmp4_source(symbol_name="wsgi_app", file_path="src/flask/app.py") → body, 180 tok
xmp4_callers(symbol_name="wsgi_app", file_path="src/flask/app.py") → 1 caller, 50 tok
──────────────────────────────────────
total: ~250 tokens
xmp4 is 60× cheaper here — and every result is SCIP-resolved, not text-matched.
実測値(主要な OSS ライブラリ4件 · 再現可能)
spring-boot · tokio · django · efcore について、同じ現実的な質問をしました。「X のシグネチャ、関数本体、実際の呼び出し元を教えてください。」
| xmp4 | grep + クローン | GitMCP | Context7 | |
|---|---|---|---|---|
| 合計トークン数(同じ質問) | 1 558 | 2 978 | 65 629 | — |
| xmp4 との比較 | 1× | 1.9×多い | 42×多い | 回答できない |
| 実際のソースの関数本体を返すか | ✅ | ✅ ノイズあり | ✗ ファイルパスのみ | ✗ 厳選されたドキュメントのみ |
| セマンティックな呼び出し元 | ✅ | ✗ | ✗ | ✗ |
| 型の階層 | ✅ | ✗ | ✗ | ✗ |
| セットアップコスト | 0 | クローンに数 GB | 0 | 0 |
GitMCP と Context7 が1回の呼び出しあたりでは低コストに見えるのは、返す情報が少ないためです。同じ回答を得ようとすると、GitMCP はトークン数が42倍に膨れ上がり、それでもセマンティックな呼び出し元の一覧は取得できません。Context7 は、どれだけコストをかけても取得できません。Python ハーネス付きのホワイトペーパー全文 →
30秒で接続
// Claude Code / Cursor / Claude Desktop — project `.mcp.json` or client config
{
"mcpServers": {
"xmp4": {
"type": "http",
"url": "https://mcp.example4.ai/mcp"
}
}
}
(すぐに貼り付けて使える設定は、このリポジトリの .mcp.json にもあります。)
Claude に xmp4 の使い方を教える(任意ですが推奨)
バージョンごとに xmp4 のスキルを一度インストールしてください。Claude は自動的に最も低コストなツールの使い方を選択します(grep より tests_for + view)。
# Claude Code
mkdir -p ~/.claude/skills/xmp4 && \
curl -sfL https://example4.ai/xmp4-skill.md -o ~/.claude/skills/xmp4/SKILL.md
# Other clients: just tell Claude to read the URL when using xmp4 tools
# https://example4.ai/xmp4-skill.md
クライアントを再起動してください。その後、次の例を試してください(すべての手順を2026-04-24にライブ環境で検証済みです)。
「xmp4 を使って、
flask/Flaskの Flask クラスを見つけて、使用箇所を一覧表示してください。」
Type Flask src/flask/app.py:81 と、33ページにわたる結果に165件の使用箇所が表示されます。質問1つにつき、セマンティックな呼び出しは1回。grep の繰り返しはゼロです。
Cursor · Claude Desktop · Continue · Windsurf のセットアップ → docs/connect-instructions.md
17個のツール
セマンティックコア(価値の中心)
xmp4_projects · xmp4_search · xmp4_info · xmp4_usages · xmp4_callers · xmp4_callees · xmp4_hierarchy · xmp4_outline · xmp4_source · xmp4_tests_for · xmp4_deps · xmp4_symbol_at
便利ツール
xmp4_view(行範囲を指定してファイルの抜粋をそのまま表示) · xmp4_grep(セマンティック検索だけでは足りない場合に使う、サーバー側の正規表現検索)
メタ
xmp4_guide(https://example4.ai/xmp4-skill.md へのバージョン付きスキルポインターを返します。バージョンごとに一度取得し、Claude Code のローカルスキルとして保存してください。オフライン時の代替として、最小限のチートシートも埋め込まれています) · xmp4_server(バージョン + 統計情報)
対応言語
Tier 1 — 完全対応を保証
C# · TypeScript · Python · Java · Rust · PHP
Tier 2 — ベストエフォート対応、既知の制約を文書化
Go · JavaScript · Dart · Ruby · C++
既知の制限事項 — TS/Rust/Java/PHP で hierarchy.base が空になること、Python でモジュールをまたぐ usages が過少にカウントされること、C# の明示的インターフェイス実装でのドット区切り名の挙動 — はすべて docs/tiers-and-quirks.md に原文どおり記載しています。レビュアーに不足を見つけられ、全体が誇張されていると思われるより、期待値を正しく設定したいと考えています。
推測ではなく需要に基づいて対応範囲を拡大
現在、インデックスには 856 のリポジトリ/SCIP でインデックス化された 15 921 のプロジェクトが含まれています。新しいライブラリの追加は、次の 2 つのシグナルを組み合わせて判断します。
- クエリログの集計 — シンボル名とプロジェクトフィルターのみで、PII やユーザーコードは含みません。未対応のライブラリを多くの AI エージェントが検索していれば、それを把握できます。
- リクエスト — GitHub URL、言語、実行したい具体的なクエリを 1 つ添えて、リポジトリリクエストの Issue を作成してください。ユーザーからのリクエストが 1 件でもあり、下流のクエリ需要があれば、ほぼ必ず数日以内にインデックス化されます。
成長を促す仕組みの透明性を完全に確保するため、公開 /stats/top-missing エンドポイントを計画しています。
プライバシー — 要約
- ✓ 記録するもの:需要に基づいてインデックスを拡大するためのクエリ数の集計(シンボル名/プロジェクト名/ツール名、概略のタイムスタンプ)。
- ✗ 記録しないもの:コードベースの内容 · 個人を特定できる情報 · 宣言済みのツールパラメーターを超えるリクエスト本文。
- 不正利用防止のため、標準の nginx アクセスログは 7 日間保持した後に削除します。クエリ集計とは結合しません。
詳細 → docs/privacy.md。
ステータス
- 🟢 稼働中 —
mcp.example4.aiv1.2.1 · 856 リポジトリ · 15 921 プロジェクト · 17 ツール · 11 言語 - 🟢 ベンチマーク公開済み — 再現可能なホワイトペーパーと Python ハーネス
- 🟢 公式 MCP Registry に掲載 —
ai.example4/xmp4として掲載(example4.aiで DNS 認証済み) - 🟢 Smithery — smithery.ai/servers/0ics-srl/xmp4
- 🟢 Cursor Directory — cursor.directory/plugins/lsai-xmp4public
- 🔧 その他のレジストリへの申請を進行中 — MCP.so、mcpservers.org、[email protected]、awesome リスト(punkpeye/jaw9c/appcypher で PR をオープン中)
- 🔧 需要に基づく成長の仕組み — 進行中
このリポジトリの内容
| パス | 目的 |
|---|---|
docs/connect-instructions.md | 5 つの MCP クライアント、接続確認手順、トラブルシューティング |
docs/tool-reference.md | 実環境で検証済みの例とワークフロールールを含む 17 のツール |
docs/tiers-and-quirks.md | 言語の Tier 別一覧と既知の制限事項のすべて(原文どおり) |
docs/privacy.md | 記録する内容、記録しない内容、GDPR に関する連絡先 |
docs/request-repo.md | 需要に基づくキューの実際の仕組み |
.mcp.json | すぐに貼り付けて使える MCP クライアント設定(type: http、URL) |
skills/xmp4/SKILL.md | Claude Code スキル — ワークフロー、コスト予算、grep 方針、よくある間違い |
html/xmp4-skill.md | 同じスキルを https://example4.ai/xmp4-skill.md で公開 |
server.json | 公式 MCP Registry マニフェスト(DNS 認証済み ai.example4/xmp4) |
glama.json | Glama カタログの自動インデックスフック |
.github/ISSUE_TEMPLATE/ | バグ · 機能リクエスト · リポジトリリクエストのテンプレート |
関連項目
- LSAI protocol — AI エージェント向けのセマンティックコードインテリジェンスのオープン仕様です。
- SCIP — xmp4 の基盤となるセマンティックコード形式です(Sourcegraph が開発、BSD-3)。
- Model Context Protocol — xmp4 が通信に使用するオープンなトランスポート仕様です。
ライセンス
このドキュメントリポジトリは Apache 2.0 です。詳しくは LICENSE をご覧ください。
ホストされている mcp.example4.ai エンドポイントは、個人利用および商用利用で無料です(TOS のリンクは後日掲載予定)。
商用ライセンスまたはセルフホスト可能なデプロイに関するお問い合わせ → このリポジトリで commercial ラベルを付けた GitHub イシューを作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。