🪜

GitHub組織管理を助けるCLI/MCPツール ghub-desk

に公開

ghub-desk

GitHubの組織管理(メンバー、チーム、リポジトリなど)を管理画面とAPIで確認していたんですが、さすがに限界を感じたので ghub-desk CLIを作りました。MCPサーバーにも対応しているので、AIエージェントと連携すると日常的な言葉で操作できます。

経緯

管理画面やAPIを駆使すれば日々の業務は行えるものの、意外に手間がかかります。

  • GitHub組織のメンバー/チーム/リポジトリ情報を管理画面で確認
  • 棚卸しをするときには複数APIを実行して情報をまとめている
  • もっと利用状況を手軽に調べたい

情報を手軽に確認し更新も行える道具を作りました

機能

  • init: 初期設定
  • pull: APIから情報を取得し、ローカルのSQLiteに保存
  • view: SQLiteに保存された情報を参照・表示
  • push: API経由で情報を更新(例:チームへのメンバー追加・削除)
  • MCPサーバー
    • view_/pull_/push_* をそのままツールとして利用(allow_pull / allow_write で権限制御)

使い方

インストールや利用方法はリポジトリのドキュメントが詳しいです

README.md
README.ja.md

使用例(CLI)

# 全ユーザ一覧を取得保存
  ./ghub-desk pull --users
# 全チーム一覧を取得保存
  ./ghub-desk pull --teams
# 指定したリポジトリにアクセス権のあるユーザを取得保存
  ./ghub-desk pull --repos-users ghub-desk
# 全チームの所属ユーザを取得保存
  ./ghub-desk pull --all-teams-users
# 全ユーザを表示
  ./ghub-desk view --users
# 指定したチームの所属ユーザを表示
  ./ghub-desk view --team-user platform-team
# チームにユーザを追加 / DRYRUN
./ghub-desk push add --team-user platform-team/takihito
# 実行
./ghub-desk push add --team-user platform-team/takihito --exec

# チームからユーザを削除 / DRYRUN
./ghub-desk push remove --team-user platform-team/takihito
# 実行
./ghub-desk push remove --team-user platform-team/takihito --exec

MCP サーバーとして

AIエージェントへの設定方法や使い方はここにまとめました。AIにわたす権限も設定できるようになっているので閲覧系だけ許可することもできます。

mcp.md /mcp.ja.md

まとめ

GitHub組織情報を pullしてローカルに置き、CLI と MCP から同じ操作をできます。
定期的な権限棚卸しや日々の運用に役立つはずなので同じような課題を抱えている方はお試しください。

Discussion