プロダクト開発

MCPでCursorをプロジェクト管理ツールに接続する:チケットを読み、実装し、コメントを返す

.cursor/mcp.jsonにリモートMCPサーバーを追加し、OAuthでサインインして、エージェントに実装中のissueを読ませコメントを返させる手順。Atrix・Linear・Jiraのエンドポイント付き。

執筆 Atrix team公開日 10分で読めます
目次
  1. 接続で実際に得られるもの
  2. ステップ1:サーバーとURLを選ぶ
  3. ステップ2:.cursor/mcp.jsonに追加する
  4. ステップ3:キーの貼り付けではなくOAuthで認証する
  5. ステップ4:エージェントにissueを読ませ、コメントを返させる
  6. Atrix側のスコープ、監査、制限
  7. よくある失敗の対処
  8. よくある質問
  9. 次のステップ

Cursorをプロジェクト管理ツールに接続するには、ツールのリモートMCPサーバーを .cursor/mcp.json に url 1行で追加し、CursorにOAuthのブラウザを開かせます。それ以降、エージェントは実装中のissueを読み、受け入れ基準をコンテキストに取り込み、作業が終わればコメントを投稿したりステータスを変えたりできます。APIキーをどこかに貼り付けることはなく、Cursorが保存するトークンはスコープ付きで失効可能です。

これはAtrixで私たちが実際に運用している方法で、トラッカーは自社のワークスペースです。同じ手順はLinearとJiraでも使え、エンドポイントは後述します。設定の詳細は2026年10月にCursorのドキュメントで確認しました。

接続で実際に得られるもの

MCPなしのループはこうです。ブラウザのタブでチケットを開き、説明をチャットにコピーし、実装し、戻ってチケットを手で更新する。コピーの段階でコメント、紐づく要件、ラベルが失われ、更新の段階は疲れていると飛ばされます。

リモートMCPサーバーを接続すると、Cursorのエージェントは「issueを取得」「issueを一覧」「issueにコメント」「ステータスを設定」といったツールを持ちます。「ATR-212を実装して」と書けば、エージェントがissueを取得し、受け入れ基準とスレッドを読み、作業を行い、最後に何をどのファイルで変えたかのコメントを書きます。チケットは引き続き唯一の正とされ、エージェントは言い換えではなく原文を読みます。

得られないのは判断力です。書き方の悪いチケットは、エージェントが喜んで悪く実装します。接続がなくすのはコピーであって、考えることではありません。

ステップ1:サーバーとURLを選ぶ

各トラッカーはリモートMCPエンドポイントを公開しています。2026年10月時点:

トラッカーリモートMCP URL認証読み取り専用の選択肢
Atrix AIhttps://atrix.dev/api/mcpOAuth 2.1、スコープ付きトークン*.read スコープのみ付与
Linearhttps://mcp.linear.app/mcp動的クライアント登録付きOAuth 2.1、APIキーも可https://mcp.linear.app/mcp/readonly
Jira(Atlassian Rovo MCP)https://mcp.atlassian.com/v2/mcpOAuth 2.1、APIトークンは任意別エンドポイントなし

3つともStreamable HTTPを使い、Cursorはこれをネイティブにサポートします。Linearのドキュメントは旧SSEエンドポイントを非推奨のフォールバックとしています。トラッカーがローカル(stdio)サーバーしか提供しない場合もCursorは動かせますが、OAuthフローを失い、環境変数でAPIキーを管理することになります。

ステップ2:.cursor/mcp.jsonに追加する

Cursorは2つのファイルを読みます。プロジェクト固有のサーバーはプロジェクトルートの .cursor/mcp.json、どこでも使うサーバーは ~/.cursor/mcp.json です。リポジトリが1つのプロダクトに対応するならプロジェクト側、複数をまたいで作業するならグローバル側に置きます。

リモートのエントリは mcpServers 配下の url です。headers は任意で、静的トークンのときだけ必要です。

{
  "mcpServers": {
    "atrix": {
      "url": "https://atrix.dev/api/mcp"
    }
  }
}

Linearなら名前とURLを https://mcp.linear.app/mcp に、Jiraなら https://mcp.atlassian.com/v2/mcp に置き換えます。Cursorのドキュメントはすべてのリモートサーバーで同じ形を示しており、ヘッダーが必要になった場合は url と headers の中で ${env:NAME} の展開が使えます。

ファイルを保存します。Cursorは再起動なしで読み込み、サイドバーの Customize にサーバーを表示し、トグルで有効・無効を切り替えられます。無効なサーバーは読み込まれず、ツールもチャットに現れません。

ステップ3:キーの貼り付けではなくOAuthで認証する

エージェントが初めてツールを呼ぶと、サーバーは認可サーバーへのポインタ付きで401を返し、Cursorはパブリッククライアントとして自身を登録(動的クライアント登録)してブラウザを開きます。サインインし、要求されるスコープを確認して承認すると、トークンがCursorに保存されます。CursorはPKCE付きの認可コードフローを使い、リダイレクトURLは2つに固定されています。WebとCloud Agents向けが https://www.cursor.com/agents/mcp/oauth/callback、デスクトップアプリ向けが http://localhost:8787/callback です。

headers のキーより優れている理由:トークンは承認した範囲に限定され、自動で更新され、トラッカー側で失効させれば即座にCursorのアクセスが切れます。JSONファイル内のパーソナルアクセストークンは、そのプロジェクトのあらゆるエージェントが読めるディスク上の長期シークレットです。ヘッダー方式はブラウザのないCI用に取っておきましょう。

サーバーが動的登録に対応していない場合、Cursorはリモートエントリに CLIENT_ID、任意の CLIENT_SECRET、scopes を持つ auth オブジェクトも受け付けます。

ステップ4:エージェントにissueを読ませ、コメントを返させる

まず読み取りツールを承認し、次に書き込みを1つずつ承認します。CursorはデフォルトでMCPツールの使用前に承認を求めます。ターミナルコマンドを管理するRun ModesはMCPツールにも適用されるので、auto-reviewモードでは許可リストのツールは即時実行され、それ以外は分類器を通ります。

実際に使えるプロンプト:

ATR-212を実装して。まずissueとコメントを読み、受け入れ基準に従い、
終わったら変更したファイルとできなかったことをissueにコメントすること。

エージェントは work_get_issue(Linearなら get_issue、Atlassianなら getJiraIssue)を呼び、実装し、コメントツールを呼びます。ステータス変更は自律的にはさせていません。コメントは取り消せるノイズですが、中途半端な作業に付いた「完了」はトラッカー上の嘘です。ステータス変更は人が行うか、少なくとも呼び出しごとの承認の後ろに置きます。

役立つ習慣を2つ:

  1. ブランチ名にissueキーを入れる。 atr-212-booking-reminders。エージェントもあなたもどのチケットが対象か分かり、コメントが正しい場所に届きます。
  2. チャットでの要約ではなくコメントを求める。 チャットは流れて消えます。次の人が見るのはチケットです。

Atrix側のスコープ、監査、制限

Atrix AIのMCPサーバーはOAuth 2.1の上で85のツールを公開し、Official MCP RegistryとGlamaに掲載されています。Cursorが接続すると、付与可能な49のスコープ(2026年10月時点)から選びます。書き込みスコープは読み取りを含み(work.write は work.read を含む)、feed.post のような名前付きスコープは決して暗黙には含まれず、意図して付与する必要があります。トークンは作成者本人以上のことはできず、権限は呼び出しごとに解決されるため、ある人から取引金額へのアクセスを外せば、その人が発行したすべてのトークンからも外れます。給与の記録はそもそも付与できません。

Cursor接続では、まず work.read と projects.read を付与し、コメント返しのステップがそれに値すると分かってから work.write を加えます。すべての呼び出しはツール、結果、対象の種類とidで監査され、内容は記録されません。制限はトークンごとに毎分120呼び出し、30書き込みです。開発者ドキュメントにツールとスコープの一覧があり、Cursor連携ページにはワンクリック追加があります。

この用途でAtrixがLinearより弱い点:Linearのエンドポイントには専用の読み取り専用URLがあり、慎重なメンバーはスコープ選択画面を見ることなく接続できます。Atrixでは読み取りスコープだけを付与すれば同じ結果になりますが、判断が1つ増えます。JiraのサーバーはConfluenceとBitbucketにも届くので、仕様がそこにあるなら重要です。

よくある失敗の対処

  • サーバー追加後に「ツールなし」。 Customizeのトグルと、JSONが有効かを確認してください。末尾のカンマがファイル全体を静かに壊します。
  • OAuthのループや「invalid redirect」。 プロバイダーがCursorの固定コールバックURLを受け入れる必要があります。localhost へのリダイレクトを遮断する企業SSOはデスクトップのフローを壊します。
  • ツールは動くが403が返る。 スコープです。読み取りだけ付与したのにエージェントが書き込もうとしました。書き込みスコープで再認可するか、書き込みは自分で行います。
  • エージェントが違うissueを読む。 曖昧なプロンプトから推測したのです。「予約のバグ」ではなくキーを渡してください。
  • ツールが多すぎてモデルが混乱する。 今日使わないサーバーは無効にします。Cursorは有効なものだけを読み込みます。

よくある質問

CursorはOAuth付きのリモートMCPサーバーに対応していますか?

はい。2026年10月時点で、Cursorのドキュメントは mcp.json の url エントリで設定するリモートサーバー、PKCE付き認可コードフローのOAuth、サーバーが対応していれば動的クライアント登録を説明しています。Cursorはパブリッククライアントとして登録します。

CursorのMCP設定ファイルはどこにありますか?

そのプロジェクト用はプロジェクトルートの .cursor/mcp.json、全プロジェクト用はホームディレクトリの ~/.cursor/mcp.json です。どちらも自分で決めた名前をキーにした mcpServers オブジェクトを使います。

CursorはMCP経由でLinearやJiraのチケットを読めますか?

はい。Linearのサーバーは https://mcp.linear.app/mcp(読み取り専用は /mcp/readonly)、AtlassianのJira・Confluence向けRovo MCPサーバーは https://mcp.atlassian.com/v2/mcp です。どちらもCursorを対応クライアントとして文書化し、OAuth 2.1を使います。

エージェントにチケットを閉じさせるべきですか?

私たちはデフォルトでは許可していません。コメントは安全ですが、ステータス変更は人か、呼び出しごとの承認を通すべきです。Cursorは許可リストに入れない限りMCPツールの実行前に確認します。

mcp.jsonにAPIキーを書いてもよいですか?

ブラウザのないCIなら、環境変数に置いて ${env:NAME} で展開する形で可です。ラップトップではOAuthを優先してください。トークンはスコープ付きで更新・失効が可能で、長期のシークレットがファイルに残りません。

リモートMCPサーバーとは何ですか?

ローカルプロセスとして起動するのではなく、HTTPS経由で到達するMCPサーバーです。OAuthで認証し、チーム全体で共有できます。定義とstdioサーバーとの違いは用語集の項目を参照してください。

次のステップ

今日、読み取りスコープでサーバーを1つ追加し、「このissueを実装して」というプロンプトを1回だけ走らせてください。コメント返しを有効にする価値があるかは1時間で分かります。トラッカーがAtrixなら、Cursor連携ページに貼り付けるべき正確なエントリがあり、MCP機能ページには各スコープで何ができるかが載っています。

この記事をシェア

この記事をシェア

あわせて読みたい

すべての記事

この記事の考え方を、今日から実践に。

まずは7日間お試し。開始にはカード登録が必要で、解約しなければトライアル終了時に課金されます。トライアル中の解約は無料です。

7日間お試し · カード登録が必要 · いつでも解約可