CursorにGitHubのMCPを追加して、Pull Requestの作成までやらせてみた

AIエディターCursorを利用してGitHubへのPull Request作成を自動化する方法が紹介されています。GitHubのAPIを利用し、MCPを使って個人用アクセストークンを取得して設定することで、指示したタスクをエージェントに実行させることが可能です。エージェントはコードを書いてプルリクエストを作成し、他のエージェントがコードレビューを行う機能も備えています。MCPを使用することでGitHub上のリソース操作が自動化され、便利な機能を利用できます。

広告ここから
広告ここまで

目次

    CursorなどのAIエディター便利ですよね。Agentモードにすると、要求に対して実装内容やドキュメントの確認から本実装までサクサク進めてくれます。どうせ任せるなら、GitHubへのpull request作成もやらせたいなと思ったので、MCPを使ってGitHubにもアクセスしてもらうようにしてみました。

    Cursorにつなぐ

    GitHubのAPIを利用してCursorからPull Request作成などを行います。そのため、個人用アクセストークン( Personal Access Token )を取得しておきましょう。設定する権限については、MCPとGitHubのドキュメントを参考に操作したいリソース・アクションを選びます。今回はPull Request / Issue / ContentsにWrite権限を付与しました。

    取得したトークンを使って、以下のコマンドを完成させましょう。github_pat_xxx部分を自分のトークンに書き換えます。

    env GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_xxx npx -y @modelcontextprotocol/server-github

    書き換えたコマンドを、Cursorの設定ページにある Add new MCP server から追加します。

    このようにMCP Serverが追加されていればOKです。

    これでCursorのエージェントがGitHubリポジトリにアクセス・操作できるようになりました。

    エージェントに指示してみる

    早速使ってみましょう。まずはIssueの情報を読めるか聞いてみます。git remote addしているプロジェクトなのですが、リポジトリのパスを聞いてきました。この辺りはエージェントやモデル次第なのかもしれません。

    とはいえリポジトリ情報を渡すと、どんなissueがあるかを調べてくれました。今回はリストアップだけですが、「#xのIssueに対応するpull requestを作って」みたいな指示もできそうですね。

    Cursorに指示したタスクを、そのままpull requestとして作らせる

    では今回一番やりたかった、pull request作りをやらせてみましょう。ちょうどエージェントに作業させていたタスクがあったので、「MCPを使ってpull requestを作って」と指示してみます。今回はgitコマンドを触らせていたからか、リポジトリの特定までエージェントがやってくれました。

    作業が完了したと表示されたので、GitHubにアクセスしてみましょう。ただpull requestを作るだけでなく、何を変更したかを書いてくれているのがわかります。そしてよくみるとgemini-code-assistがコードレビューを始めていますね。エージェントがコードを書いてプルリクエストを作り、別のエージェントがレビューをするという不思議な光景が広がっていました。

    Issueへの対応もCursor x MCPで

    「Issueが読めて、Pull Requestを作れるということは・・・?」と思ったので、Cursorに「MCPをつかって、GithubにあるIssue #8を修正して。作業は新しいブランチを作って行うこと。」と指示を出してみました。すると予想通り、Issueの内容を確認してコードの変更を開始しています。

    そのままpull request作成までやってくれました。

    ありがたい限りではありますが、ここまでの自動化をすると「これって結局何が問題で、何をやったんだっけ?」みたいな事態にならないかは少し心配になりそうです。今回は個人開発系なので思い切りよく行きましたが、実際の現場では一旦「このIssueってどういうこと?なにをすべき?」みたいな相談をClaudeなどにしてから、Cursorに指示を出すべきかなとは思います。

    触ってみて

    MCPをはじめて触ったのですが、GitHub上のリソース操作などもまとめてやってくれるのは想像以上に便利でした。ブラウザを開いて情報やデータをコピーし、それをCursorやClineなどに渡すようなタスクをしている場合は、そのサービスのMCPがないかを調べてみると良さそうです。

    ただ、生成されるpull requestはあくまで「何をどうやったか( What / How )」に限定されています。そのため、チームでプロダクト開発を行う場合は、「なぜそれをやるのか?( Why )」の情報を人間がちゃんと足してやる必要はありそうです。この辺りも自動化させる方法・プロンプトやRulesがあるかもしれませんが、いきなり最適化させるよりは、少しずつ慣れていくのが良いかと思います。

    参考

    余談: MCPサーバーを自分で用意する場合

    今回の記事では、npxコマンドを利用してコマンドを実行できるようにしました。もう1つのやり方として、該当コマンドをnpm i -gでインストールする方法もあります。この場合は次のようなコマンドで追加しましょう。

    % npm install -g @modelcontextprotocol/server-github

    動作確認は、mcp-server-githubコマンドを実行することで行えます。

    % mcp-server-github 
    GitHub MCP Server running on stdio
    

    もしコマンドが見つからないと言われた場合は、npm ls -gでどこにファイルがあるか調べましょう。

    % npm ls -g @modelcontextprotocol/server-github
    /Users/okamotohidetaka/.anyenv/envs/nodenv/versions/22.1.0/lib
    └── @modelcontextprotocol/[email protected]

    あとはそこからbin/mcp-sever-githubコマンドを探せばOKです。

    %  /Users/okamotohidetaka/.anyenv/envs/nodenv/versions/22.1.0/bin/mcp-server-github 
    GitHub MCP Server running on stdio

    ここまで作業してから、npxで済むことを知ったので、結局これは使いませんでした。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark