hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides tools for Git repository operations including browsing directory structures, reading files, searching code, comparing branches, viewing commit history, and checking local changes.
Enables browsing and analyzing GitHub repositories, including retrieving file contents, searching code, and examining commit history across branches.
Integrates with GitHub Actions for CI/CD workflows, specifically for automating npm package publishing when changes are pushed to the master branch.
MCP Git リポジトリ ブラウザ (Node.js)
モデル コンテキスト プロトコル (MCP) を使用した Git リポジトリ ブラウザーの Node.js 実装。
インストール
NPM(推奨)
手動インストール
構成
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ファイルを参照してください。
リンク
This server cannot be installed
モデル コンテキスト プロトコルを介して Git リポジトリを参照できるようにする Node.js 実装。ディレクトリ構造の表示、ファイルの読み取り、コードの検索、ブランチの比較、コミット履歴の表示などの機能を提供します。