siGit CLI について
siGit CLIは、sigit.siのリポジトリ、プルリクエスト、Issue、コード検索、Cloud Sessionsを操作するコマンドラインツールです。stdio経由でAIエージェントに同じ操作を公開でき、ツールの絞り込みや読み取り専用化にも対応します。
主な機能
- 01リポジトリ、PR、Issueの管理
- 02コード検索とCloud Sessionsの操作
- 03機械可読なJSON出力
- 04MCPツールセットの選択
- 05読み取り専用MCPモード
活用シーン
- 01ターミナルでリポジトリやPRを確認
- 02AIエージェントによるIssueの振り分け
- 03エージェントの読み取り専用化
MCP 対応
`si mcp`を実行すると、同じコマンドをstdio経由のMCPツールとして公開します。ツールセットの選択や読み取り専用化が可能で、認証には`si auth login`で保存したトークンを使います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
sigit-si-cli
si は sigit.si のコマンドラインインターフェースです。ターミナルからサインインし、リポジトリを管理し、プルリクエストをレビューし、イシューをトリアージし、コードを検索して、Cloud Sessions を操作できます。sigit.si の gh に相当します。
インストール
cargo install --path crates/cli
これにより、si という名前のバイナリがインストールされます。
使用方法
si auth login # sign in with your sigit.si account
si repo list # your repositories
si repo create my-project --private
# Inside a repo checkout, si infers OWNER/NAME from the sigit.si git remote —
# --repo is only needed when you're not standing in one.
si pr list
si pr view 42
si pr create --title "Fix the thing" --base main
si issue list --state open
si issue create --title "Bug: ..." --body "Steps to reproduce..."
si code search "TODO" --ref main
si code view README.md
si session new --title "Refactor auth"
si billing show
si browse # open the current repo on sigit.si
si api repos # raw escape hatch for any endpoint
読み取りコマンドでは、--json を指定すると、機械で読み取り可能な形式で出力されます。
MCP サーバーとして
si mcp は、これらと同じコマンドを stdio 経由の MCP ツールとして AI エージェントに提供します。
{
"mcpServers": {
"sigit": { "command": "si", "args": ["mcp"] }
}
}
認証は不要です。サーバーは si auth login で保存されたトークンを再利用します。エディターにチェックアウト済みのディレクトリを指定すると、リポジトリツールは現在の作業ディレクトリのリポジトリをデフォルトで使用するため、エージェントはリポジトリ名を指定せずに「オープン中のプルリクエストを一覧表示して」と指示できます。同様に、create_pull_request はチェックアウト済みブランチをデフォルトで head として使用します。
エージェントがすべてのツールを必要としない場合は、ツールリストを絞り込めます。
si mcp --read-only # drop every tool that writes
si mcp --toolsets repo,issue,pr,code # or SIGIT_TOOLSETS=repo,issue
ツールセットは account、repo、issue、pr、code、hook、session、billing です。sigit.si は /api/v1/mcp にリモート MCP サーバーもホストしており、バイナリを起動するより HTTP 経由で接続したいクライアントが利用できます。
環境
si --environment dev repo list # a local sigit.si server (localhost:3000)
SIGIT_HOST=staging.example.com si repo list
認証情報は環境ごとに ~/.sigit/token(または ~/.sigit-dev/token)に保存されます。SIGIT_TOKEN を設定すると保存済みトークンが上書きされます。これは、CI が対話型ログインなしで認証する方法です。
ワークスペースの構成
crates/sigit-si-api— sigit.si の JSON API を利用する、単独で使える型付き Rust クライアントです。CLI の依存関係(clap、dialoguer、…)はなく、デスクトップアプリを含め、sigit.si と通信するあらゆる Rust プロジェクトで使用できます。crates/cli—siバイナリです。コマンドの解析、ターミナルへの出力、git リモートの解決、認証情報の保存を担い、sigit-si-apiを基盤として構築されています。
sigit.si では、イシュー、プルリクエスト、コード検索用の REST エンドポイントはまだ提供されていません。これらは、AI エージェントが使用するものと同じ MCP(Model Context Protocol)JSON-RPC エンドポイント経由で提供されます。sigit-si-api は内部でこのトランスポートを使用しますが、呼び出し側からは見えません。
MCP レジストリへの掲載
このリポジトリは、同じツールへの接続方法ごとに 1 つずつ、公式 MCP Registry に 2 つのエントリーを公開します。これにより、レジストリ対応クライアントはどちらもワンクリックで追加できます。
| 掲載名 | ファイル | 内容 |
|---|---|---|
si.sigit/cli | server.json | この CLI です。si mcp を stdio 経由で実行する cargo パッケージの掲載情報です。 |
si.sigit/sigit | server-sigit.json | sigit.si/api/v1/mcp にあるホスト型サーバーです。リモート Streamable-HTTP の掲載情報です。sigit-si-api が通信するエンドポイントであり、公式サーバーの siGit Code に組み込まれています。 |
このリポジトリから配布するのは CLI なので、CLI は server.json を保持します。また、このファイル名は mcp-publisher のデフォルトです。関連する掲載情報にはそれぞれの末端名を付けているため、どのエントリーを公開するファイルかが分かります。
どちらも release-mcp-registry.yml ワークフローを通じて公開されます。また、どちらも GitHub OIDC ではなく、sigit.si の DNS TXT レコードによって名前空間の所有権を証明するため、1 つの認証情報で両方を公開できます。パッケージの掲載情報には、もう 1 つ条件があります。レジストリは crates.io からクレートを取得し、README に mcp-name: si.sigit/cli マーカーがあるか確認します。そのため、このマーカーはこのファイルに記載されています。クレートのバージョンは不変なので、マーカーなしでリリースすると掲載できず、修正には新しいバージョンが必要です。内部セットアップ手順とリリース手順書はサーバーのリポジトリ(非公開の sigit-si リポジトリ)にあります。
開発
make build # cargo build --workspace
make test # cargo test --workspace
make lint # cargo clippy --workspace --all-targets -- -D warnings
make fmt # cargo fmt --all
make check # fmt + lint + test
免責事項
すべての em dash は Seto Elkahfi が記述しています。
ライセンス
Apache-2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。