インストール
uvx --from git+https://github.com/adhikasp/mcp-git-ingest mcp-git-ingest誰向けか
MCP クライアントに GitHub リポジトリのディレクトリ木を先に見せ、いくつかの重要ファイルを読ませたいが、手でクローンしてディレクトリを辿りたくないなら、このサービスが合う。公開するツールは2つ。github_directory_structure は木状ディレクトリを返し、github_read_important_files は指定ファイルの内容を読む。実装は GitPython でリポジトリ URL のハッシュから決定的な一時ディレクトリを作る。既にクローン済みなら再利用し、そうでなければ clone を実行する。公開リポジトリの構造把握と重要ファイル照合に合う。未許可でプライベートリポジトリを引くのには合わず、完全な git 作業領域としても合わない。クローンとファイル読みはこのマシンで起きる。これは「ネットワーク無し、ローカル読み取り無し、プライバシー境界無し」ではない。
3分で最初の試行
公式の主経路は uvx で Git リポジトリから直接実行する。実行時は Python 3.8+ が要り、fastmcp と gitpython に依存する。クライアントではコマンドをこう書く:
uvx --from git+https://github.com/adhikasp/mcp-git-ingest mcp-git-ingest
接続後、低リスクな呼び出しを1回。公式リポジトリ自身に github_directory_structure を使い、リポジトリ住所は https://github.com/adhikasp/mcp-git-ingest
証拠はこのツールが木状ディレクトリを返すと書くが、パラメータ名は無い。クライアントが repo_url を求めるなら、上の既出住所を入れ、ブランチや token パラメータを作らない。成功の合図はディレクトリ木を見ることであり、ファイルが書き換えられたことではない。今回は GitHub に届き、ハッシュ名の一時ディレクトリにクローンを残す。要約は処理後に掃除すると書くが、証拠は掃除のタイミングと失敗残留を書いていない。一時ディレクトリを起こり得る副作用として扱う。読み取り専用ツールはゼロリスクではない。
利用事例
事例1: 先にディレクトリ木を見る。知らない公開リポジトリでは先に github_directory_structure を呼ぶ。証拠は木状表現を返すことだけ保証する。深さ制限、無視規則、サブモジュール動作は書いていない。欠けていれば完全木またはクライアントの切り詰めを受け入れ、.gitignore パラメータを作らない。
事例2: 重要ファイルを読む。パスが分かったら github_read_important_files で指定ファイルを読む。同じクローン論理を再び使う。証拠は「重要」の既定一覧を書いておらず、パスはあなたが出す。先に README または短いテキストを選び、未知ファイルを大量に指定しない。体積上限も符号化処理も書いていない。巨大ファイルが完全に返るかは、既存説明の外。
利用上の境界
これはローカル stdio サービスであり、ホストされた読み取り専用ゲートウェイではない。Git 操作能力(GitPython)が無ければクローンできない。私有リポジトリの認証方法は証拠に無い。書いていない token 環境変数を既対応と思わない。clone_repo は実装説明に現れ、URL ハッシュで一時ディレクトリに落ちる。ディスクに副本が残らないとは仮定しない。2つのツール以外の git 書き込みは範囲外。プロジェクトページ: https://github.com/adhikasp/mcp-git-ingest
最初の試行は公式の uvx --from git+... コマンドだけにし、成功の合図を公式リポジトリのディレクトリ木を見ることとする。