
GitHub MCP Server をカスタマイズして Organization にメンバーを招待できる様にした
目次
最近は AI エージェント関連の調査をしていて、MCP サーバーもよく触っていますが、少し前に GitHub MCP Server が GA になったので早速ある業務の効率化に使えないか試してみました。
その業務では所定の Organization に新しいメンバーを追加する必要があるのですが、調べてみると執筆時点(2025年10月)では Organization への Invitation を送る機能には対応していませんでした。Organization 関連のツールは search_orgs だけの様です。
このままでは使えないと思ったのですが、幸いサーバーのコードはオープンソースとして github/github-mcp-server で公開されておりローカルでも動作させる事ができる様です。そこで、今回は必要な機能を自分で実装する事にしました。
準備
まずは GitHub で github/github-mcp-server を Fork してチェックアウトし、ビルドします。ビルドはシンプルに以下でできました:
go build -o github-mcp-server cmd/github-mcp-server/main.go

起動と動作確認
バイナリができたので、これを起動します。
なお、このコードベースでは stdio モードのみサポートしています。GitHub はこのコードベースをベースに内部の非公開リポジトリでリモートサーバーを別途開発しているみたいです。
The remote GitHub MCP server is built using this repository as a library, and binding it into GitHub server infrastructure with an internal repository.
認証は GitHub の PAT(Personal Access Token)を GITHUB_PERSONAL_ACCESS_TOKEN 環境変数に設定する事ができるのでそれを使いました。
export GITHUB_PERSONAL_ACCESS_TOKEN="your_token_here"
stdio なのでこんな感じでテストできます(結構長々と出力されます):
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | ./github-mcp-server stdio --toolsets all | jq
Organization 招待の機能実装
さて、今回は Organization に招待する API を呼び出すツールを実装します。ドキュメントは こちらになります。
いきなり完成形になってしまいますが、実装した物が以下になります。
https://github.com/github/github-mcp-server/pull/1226
※一応今回プルリクとして出していますが、反応がイマイチなのでマージはされないかもしれません。使ってみたい方はこのブランチをチェックアウトして go build -o github-mcp-server cmd/github-mcp-server/main.go してください。
動作確認
PAT についての注意点
その前に PAT について注意があります。今回は Organization への招待を行うので、事前にその権限が付いた PAT を用意する必要があります。これが結構わかりづらい(と個人的に思った)んですが、自分自身のユーザーの PAT ではなく、対象となる Organization の PAT を発行する必要があります。ちなみにこれには自分自身がその Organization の Owner である必要があります。具体的には GitHub の Fine-grained token 作成ページから新規に Fine-grained token を作る際、”Resource owner” で自分自身ではなく、対象の Organization を選択します。

なお、必要な権限は “Members” の Read and write 権限になります。

modelcontextprotocol/inspector を使って動作確認
先ほどは stdio の簡単なチェックで echo を使いましたが、今回はもう少し複雑になるので @modelcontextprotocol/inspector を使いたいと思います。
以下を実行します:
npx @modelcontextprotocol/inspector -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PERSONAL_ACCESS_TOKEN ./github-mcp-server stdio --toolsets orgs
うまく動作するとブラウザが立ち上がります。

左下の “Connect” で接続します。そうすると右側の画面が変わります。

メニューから “Tools” を選択し、”List Tools” を実行してみます。

実装した “create_org_invitation” が確認できます。これを早速実行してみましょう。一覧からこれをクリックします。そうすると右側にフォームが出てくるので、必要な情報を入れて Submit してみます。email または invitee_id(GitHub User ID)のいずれかは必須になります。今回は email を使って mobalab org に招待したいと思います。値を入れて “Run Tool” を実行します。

成功しました。見切れていますが、”Total Result: Success” の下に JSON で結果が出力されています。
早速 GitHub の方を確認してみましょう。Organization の People から “Invitations” を見てみると、無事に招待が飛んでいる様です。

メールによる通知も飛んできました。

番外:AI エージェントで動作させてみる
単体テストで動作確認できたので、一応 AI エージェントとも連携してみようと思います。適当なエージェントの MCP 設定に今回ビルドした MCP Server を stdio モードで追加します。今回は Claude Desktop を使いました。以下は設定例です:
{
"mcpServers": {
"github": {
"command": "/path/to/github-mcp-server",
"args": ["stdio", "--toolsets", "orgs"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
}
}
}
}
以下は実際に動かしてみた所です。無事に招待ができました。

まとめ
- GitHub MCP Server は公式がホストしている Remote Server が存在するが、ローカルで stdio として動作させる事もできる
- コードは OSS として公開されているので自分でカスタマイズも可能
- カスタマイズしたコードは本体にプルリクを投げる事ができる。このコードは Remote Server でも使われているので、もしかしたら自分の成果物が取り込まれるかもしれない
コメントを残す