💭

Asana MCP と GitHub MCP を連携させて、Claude Desktopから 半自動で Pull Request を生成する

に公開

最近ホットなMCPサーバーを使って、自動で Pull Requestを作成させる手順を解説します。

これによって Claude Desktop などの client から、Asana チケットを参照させ、要件に基づいてAIに実装させることができます。

都度MCPコマンドを承認するのが若干めんどうなものの、基本半自動で実装までしてもらうことができます。

なお、MCP自体に関しては先人たちのわかりやすい解説が多々ありますので、ここでは割愛させていただきます。

Claude Desktop の導入

下記から Claude Desktop をダウンロードします。
https://claude.ai/download

が、エンジニアたるもの brew で管理することを個人的にはおすすめします。

brew install --cask claude

AsanaからPATを払い出す

少し導線がわかりづらいので、スクショをベースに解説していきます。

※ なお、ブラウザではなくAsanaアプリを使った場合で進めます。

Asanaの個人アイコンをクリックし、「設定」を開きます。

「アプリ」セクションを開き、一番下までスクロールします。
一番下に「デベロッパーコンソールを表示」という外部リンクがあるので、開きます。

すると、「個人アクセストークン」という箇所があるので、ここから新規の Personal Access Token(以下PAT)を払い出します。

名前を入れて作成すると、トークンが払い出されるのでメモっておきましょう。

GitHubからPATを払い出す

下記から PAT を払い出します。
https://github.com/settings/personal-access-tokens

Resource Ownerを指定します。
操作したいリポジトリが参照できるOwnerにする必要があることに注意してください。

Repository accessを設定して、このPATがタッチするリポジトリを選択します。

最後に Permission を設定します。
デフォルトでは全てが No access なので、プロジェクト方針に従って最小限の権限をONにします。

今回の主題である「Pull Requestの作成」を満たすためには、「Repository permissions
」の 「contents」セクションの権限を、Read and write にする必要があります。

Permissionが設定できたら、PATを払い出してメモします。

GitHubのPATも同様に一度しか表示されないので注意してください。

Claude Desktop に MCP サーバーを設定

それでは、払い出した2つのPATを使って Claude Desktop に MCP サーバーを設定していきます。

Claude → 設定を開きます。

一般と開発者のタブが出てくるので、「開発者」を選択します。

「構成を編集」というボタンがあるので押すと、Claudeの内部ファイルが編集できます。
claude_desktop_config.json というファイルを編集していきます。

ここに具体的なMCPの設定を書いていきます。

MCPサーバーの具体的な設定

下記のように設定してください。

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT_HERE"
      }
    },
    "asana": {
      "command": "npx",
      "args": ["-y", "@roychri/mcp-server-asana"],
      "env": {
        "ASANA_ACCESS_TOKEN": "YOUR_ASANA_PAT_HERE"
      }
    }
  }
}

GitHubは公式のMCPサーバーを、Asanaは有志が作ってくださった下記を採用します。
https://github.com/roychri/mcp-server-asana

上記を npx で扱います。

設定ができたら、一度 Claude Desktop を再起動します。
(2025年4月23日時点では、再起動しないとMCPが有効にならないようです)

もう一度、設定→開発者タブを選択してください。
すると、下記のようにGitHubとAsanaのMCPサーバーが設定されているはずです。

成功していれば画像のように、「running」になっています。
逆に赤色になっていたら失敗しています。

GitHub・Asanaともに running になっていることが確認できたら、実際に使ってみます。

Claude Desktopで半自動実装してみる

MCPの設定ができたら、Claudeとのチャットボックスにこのような表示が出ているはずです。

MCPと連携できていると、利用できるツール・MCPがUIとして見れるようになります。

では、実際に実装して「もらって」みます。

「MCPから添付」を押すと連携サービスが選択できます。

ここで、「task-summary」を選択すると、対象チケットのtaskIdを入力するボックスが出てきます。

ここで対象のチケットのみを選択することで、与える知識を限定することができます。

例えばhttps://app.asana.com/1/123456/project/54321/task/55555

というリンクの場合、55555 を指定します。

すると、下記のように添付されたことが確認できるはずです。

ではプロンプトを実行してみます。
例えば下記のように入れます。

添付の asana チケットの内容を満たす実装を、your_api リポジトリに対して行い、Pull Request を立ててください。

するとチャットが始まります。
何度か下記のようなモーダルにて、コマンドを実行していいか聞かれるので、内容を確認して問題なければ許可してください。

Claude Desktopの不安定さも含めて乗り越え、明確かつシンプルな要件がチケットに定義されていれば、Pull Requestが作成されるはずです。

期待する今後の変化と代替案

方法としてはこれでいいものの、前述した通り不安定さはどうしても否めません。
技術・業界として新規性が高いので、この点はしょうがないと思っています。

そこで現時点で私が期待している今後の変化と、それまでの代替案を提案することで締めます。

この世界線ができれば、人間が注力すべきは「明確な要件定義」と「生成の妥当性判断」に収束していき(マクロな視点ではその限りではありません)、開発体験のパラダイムシフトとなることを確信しているからです。

期待する今後の変化

AIに実装の主体を移していく中で、今後期待したい変化は下記です。

  1. Claude Desktop MCP の安定化
  2. 公式の Asana MCP 提供
  3. CursorでのMCP接続ログの確認機構
  4. ChatGPT Desktop での MCP 導入
  5. MCPサーバー群の管理レイヤー

安定性や信頼性などは時代を待ちつつ、現段階だとClaude Desktop や Cursor など呼び出し元ごとに定義する必要があるため、これを統合する汎用レイヤーができたら一気に楽になるかなと思っています。

とはいいつつ、圧倒的な強者(ex. ChatGPT)が全ての interface になる予感もしています。

予想しすぎてもしょうがないので、ここは時代の流れを見つつ、上記の変化が徐々に起きるのをウォッチします。

代替案

不安定さが無視できないうちは、足元は Cursor x GitHub MCP が使い勝手いいと感じています。

MCPの設定は全く同じで、Asanaセクションを抜くだけです。

Cursor → 基本設定 → Cursor Settingsを選び

Add global MCP server にて、全く同じ設定を行います。

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT_HERE"
      }
    }
}

あとは、Cursor の Agent モードにて、Asana の内容をコピペして実装指示するだけです。

まとめ

Claude Desktopを client として、Asana MCP と GitHub MCP を使って、半自動で Pull Request を生成してもらう手順を説明しました。

不安定さがあるため、今後期待したい変化や足元の代替案も提供しました。

いずれにせよ、AIエージェントによるコーディングの未来は明るいです。

逆にいうと、いつまでもマニュアルでやっていると業界のスピード感に100%ついていけなくなるでしょう。

いち早く仕組みを取り入れて、業界変化に追従していきたいところです。

Discussion