MCP Git リポジトリ ブラウザ (Node.js)
モデル コンテキスト プロトコル (MCP) を使用した Git リポジトリ ブラウザーの Node.js 実装。
インストール
NPM(推奨)
手動インストール
Related MCP server: MCP Git Repo Browser
構成
MCP 設定構成ファイルに以下を追加します。
手動でインストールする場合は、以下を使用します。
特徴
サーバーは次のツールを提供します。
基本的なリポジトリ操作
git_directory_structure: リポジトリのディレクトリ構造のツリー状の表現を返します入力: リポジトリ URL
出力: リポジトリ構造のASCIIツリー表現
git_read_files: リポジトリ内の指定されたファイルの内容を読み取って返します入力: リポジトリのURLとファイルパスのリスト
出力: ファイルパスとその内容をマッピングする辞書
git_search_code: リポジトリコード内のパターンを検索します入力: リポジトリ URL、検索パターン、オプションのファイルパターン、大文字と小文字の区別、コンテキスト行
出力: 一致する行とコンテキストを含む検索結果を含む JSON
支店運営
git_branch_diff: 2つのブランチを比較し、それらの間で変更されたファイルを表示します入力: リポジトリ URL、ソース ブランチ、ターゲット ブランチ、およびオプションの show_patch フラグ
出力: コミット数と差分サマリーを含むJSON
コミット操作
git_commit_history: オプションのフィルタリングを使用してブランチのコミット履歴を取得する入力: リポジトリ URL、ブランチ名、最大数、作成者フィルター、開始日、終了日、メッセージ grep
出力: コミットの詳細を含むJSON
git_commits_details: 完全なメッセージと差分を含むコミットの詳細情報を取得します入力: リポジトリ URL、ブランチ名、最大数、include_diff フラグ、作成者フィルター、開始日、終了日、メッセージ grep
出力: 詳細なコミット情報を含むJSON
git_local_changes: 作業ディレクトリ内のコミットされていない変更を取得する入力: ローカルリポジトリのパス
出力: ステータス情報と差分を含むJSON
プロジェクト構造
実装の詳細
コア機能には Node.js ネイティブ モジュール (crypto、path、os) を使用します
強化されたファイル操作のために fs-extra を活用
Gitリポジトリ操作にはsimple-gitを使用する
クリーンなエラー処理とリソースのクリーンアップを実装します
リポジトリの URL ハッシュに基づいて決定論的な一時ディレクトリを作成します。
効率性を高めるために、可能な場合はクローンリポジトリを再利用します。
保守性を向上させるモジュール式コード構造
要件
Node.js 14.x 以上
システムにGitがインストールされている
使用法
npm 経由でグローバルにインストールした場合:
手動でインストールする場合:
サーバーは stdio 上で実行されるため、MCP クライアントと互換性があります。
CI/CD
このプロジェクトでは、継続的な統合とデプロイメントに GitHub Actions を使用します。
自動NPM公開
リポジトリは、変更がマスター ブランチにプッシュされたときにパッケージを npm に自動的に公開する GitHub Actions ワークフローで構成されています。
NPM_AUTOMATION_TOKENの設定
自動公開を有効にするには、npm Automation トークンを GitHub シークレットとして追加する必要があります (これは、2FA が有効になっているアカウントでも機能します)。
npm Automation トークンを生成します。
npmjs.comでnpmアカウントにログインします。
プロフィール設定に移動
「アクセストークン」を選択
「新しいトークンを生成」をクリックします
「自動化」トークンタイプを選択
適切な権限を設定します(パッケージには「読み取りと書き込み」が必要です)
生成されたトークンをコピーする
トークンを GitHub リポジトリに追加します。
GitHubリポジトリへアクセスする
「設定」>「シークレットと変数」>「アクション」に移動します
「新しいリポジトリシークレット」をクリックします
名前:
NPM_AUTOMATION_TOKEN値: npm Automationトークンを貼り付けます
「シークレットを追加」をクリック
設定が完了すると、マスター ブランチへのプッシュによって、パッケージを npm に公開するワークフローがトリガーされます。
ライセンス
MIT ライセンス - 詳細についてはLICENSEファイルを参照してください。