mcpField
R
repoport

repoport

ローカル
github.com/CloudCorpRecordsその他01 日前に更新

repoport について

repoportは、AgentがMCP経由でローカルGitリポジトリを操作するためのツールで、CLIも備えています。状態確認、差分、ステージング、コミット、ログ、ブランチ操作を扱い、シェルを介さずGitを呼び出します。

主な機能

  1. 01リポジトリの状態と差分の確認
  2. 02ファイルのステージングとコミット
  3. 03コミットログとリビジョンの確認
  4. 04ブランチの作成・一覧・切り替え
  5. 05リポジトリパスとリビジョン引数の検証

活用シーン

  1. 01Agentによる作業ツリーの変更確認
  2. 02ファイルをステージして内容をコミット
  3. 03コミット履歴やリビジョンの確認
  4. 04ブランチの作成や作業ツリーの切り替え

MCP 対応

stdio MCPサーバーを提供し、ローカルGitの状態、差分、ステージング、コミット、ログ、リビジョン、ブランチ操作のツールをクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-repoport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/repoport"
]
}
}
}
起動コマンドnpx -y @reneturcios/repoport

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/repoport0.1.0
ocighcr.io/cloudcorprecords/repoport:0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

repoport

repoport により、エージェントはシェルを使わずにローカルの git リポジトリを直接操作できます。ステータスの確認、差分の読み取り、ファイルのステージング、コミット、ログの読み取り、リビジョンの確認、ブランチ間の切り替えといった日常的な作業をカバーします。これらは git CLI を直接呼び出して実行し、すべての引数をシェル文字列に組み立てるのではなく、データとして渡します。

処理を実行する前にリポジトリのパスを検証します。パスが存在し、git の作業ツリー内にある必要があります。ダッシュで始まるリビジョン形式の値は拒否されるため、ブランチ名やリビジョンを使って呼び出しに git のフラグを紛れ込ませることはできません。

インストール

npx @reneturcios/repoport status .

または、コンテナイメージを実行します。

docker run -i ghcr.io/cloudcorprecords/repoport

コンテナはデフォルトで MCP サーバーを起動します(下記を参照)。CLI として使うには、CLI 引数を渡してください。イメージと npm パッケージはいずれも git バイナリと、指定したリポジトリへのアクセスを必要とします。ローカルのチェックアウトを適切にマウントするか、それに対して実行してください。

CLI

# Working tree status for a repository
repoport status ~/src/my-project

# Recent commits (default 10, pass a count to change it)
repoport log ~/src/my-project
repoport log ~/src/my-project 25

repoport --version

終了コード:成功時は 0、git またはリポジトリの検証に失敗した場合は 1(エラーには git 独自のメッセージが含まれます)、使い方に誤りがある場合は 2 です。

MCP サーバー

1 つのバイナリで両方の機能を提供します。mcp サブコマンドで stdio MCP サーバーを起動します。

npx -y @reneturcios/repoport mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "repoport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/repoport", "mcp"]
    }
  }
}
ツール
ツール入力戻り値
git_statusrepo_path(必須)リポジトリの詳細形式の git status 出力です。
git_diff_unstagedrepo_path(必須)、context_lines(省略可、デフォルトは 3)ステージングされていない作業ツリーの変更の統一形式の差分です。
git_diff_stagedrepo_path(必須)、context_lines(省略可、デフォルトは 3)次のコミットに向けてステージングされた変更の統一形式の差分です。
git_diffrepo_path、target(両方必須)、context_lines(省略可)指定された対象リビジョンとの差分を統一形式で返します。
git_addrepo_path、files(文字列の配列、両方必須)指定されたファイルをステージングします。パスは -- の後に渡されます。
git_resetrepo_path(必須)すべての変更をステージング解除します(git reset)。作業ツリーの編集内容はそのまま残ります。
git_commitrepo_path、message(両方必須)現在ステージングされている内容を、指定されたメッセージでコミットします。
git_logrepo_path(必須)、max_count(省略可、デフォルトは 10)、start_timestamp、end_timestamp(省略可、ISO 形式の文字列)新しい順の最近のコミットです。タイムスタンプの範囲は各コミットの作成者日時に適用されます。
git_showrepo_path、revision(両方必須)指定されたリビジョンの git show 出力です。
git_create_branchrepo_path、branch_name(両方必須)、base_branch(省略可)ブランチを作成しますが、そのブランチには切り替えません。
git_checkoutrepo_path、branch_name(両方必須)作業ツリーを指定されたブランチに切り替えます。
git_branchrepo_path(必須)、branch_type(省略可:local、remote、all のいずれか。デフォルトは local)、contains、not_contains(省略可)ブランチ一覧を返します。コミットを含むブランチ、または含まないブランチに絞り込むこともできます。

すべてのツールは、git の標準出力をテキスト結果として返します。パスが存在しない、パスがリポジトリではない、git エラーが発生した、ダッシュで始まる値が拒否されたといった場合は、元のメッセージを含むツールエラーが返されます。

安全性に関する注意
  • どの処理でもシェルは使用しません。引数は execFile の引数配列として渡されます。
  • branch_name、target、revision、contains、not_contains の値が - で始まる場合、git に渡される前に拒否されます。
  • git_commit はすでにステージングされている内容のみをコミットし、代わりにステージングすることはありません。

開発

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network
npm run dev     # run the CLI from source via tsx

テストでは、一時ディレクトリに使い捨てのリポジトリを作成(そこで git を初期化し、テスト用のローカル ID を設定)し、それに対して一連の作業全体をテストします。そのため、PATH 上に git バイナリが必要ですが、ネットワーク接続や既存のチェックアウトは必要ありません。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。