はじめに
Cursorは強力なAIコーディング機能を備えていますが、Model Context Protocol(MCP)を使用することで、外部サービスやツールとの連携が可能になります。GitHubのイシュー管理、Figmaのデザイン取得、Slackでの通知送信など、開発ワークフロー全体をCursorから操作できるようになります。
本記事では、MCPの基本概念を理解し、主要なMCPサーバーをCursorに導入する方法を解説します。この記事を読むことで、以下のことができるようになります。
- MCPの仕組みと役割を理解できる
- GitHub、Figma、Linear、Slack、NotionなどのMCPサーバーを導入できる
- mcp.jsonファイルを作成し、MCPサーバーを設定できる
- OAuth認証を使用するMCPサーバーを構成できる
実行環境と前提条件
本記事の内容を実践するための環境要件は以下のとおりです。
| 項目 | 要件 |
|---|---|
| オペレーティングシステム | Windows 10以上、macOS 10.15以上、Ubuntu 20.04以上/Debian 10以上 |
| Cursor バージョン | 2.3以降 |
| Node.js | 18以上(npxコマンド実行に必要) |
| Python | 3.10以上(Python製MCPサーバー使用時) |
| インターネット接続 | 必須(MCPサーバーとの通信に必要) |
前提条件
- Cursorがインストールされ、アカウントでログイン済みであること
- 連携する外部サービス(GitHub、Figmaなど)のアカウントを持っていること
- 基本的なJSON構文を理解していること
期待される結果
本記事の手順を完了すると、以下の状態になります。
- MCPを通じてCursorから外部サービスを操作できる
- 開発ワークフローがCursor内で完結し、コンテキストスイッチが減少する
- AIが外部サービスの情報を参照しながらコード生成や提案を行える
Model Context Protocol(MCP)とは
MCPは、AIアプリケーションを外部システムに接続するためのオープンスタンダードなプロトコルです。USB-Cポートが様々な電子機器を標準化された方法で接続するように、MCPはAIアプリケーションと外部システムを標準化された方法で接続します。
MCPの構成要素
MCPは以下の3つの主要コンポーネントで構成されています。
flowchart LR
A[MCPホスト<br/>Cursor] --> B[MCPクライアント]
B --> C[MCPサーバー]
C --> D[外部サービス<br/>GitHub/Figma等]| コンポーネント | 役割 |
|---|---|
| MCPホスト | AIアプリケーション(Cursor)。MCPクライアントを管理し、外部システムとの連携を調整する |
| MCPクライアント | MCPサーバーとの接続を維持し、コンテキストを取得するコンポーネント |
| MCPサーバー | 外部システムへのアクセスを提供するプログラム。ツール、リソース、プロンプトを公開する |
MCPが提供する機能
MCPサーバーは以下の3種類の機能(プリミティブ)を提供できます。
| プリミティブ | 説明 | 例 |
|---|---|---|
| Tools | AIが実行できる関数 | GitHubイシューの作成、Slack通知の送信 |
| Resources | 参照可能なデータソース | ファイル内容、データベースレコード |
| Prompts | インタラクションのテンプレート | コードレビュー用プロンプト |
Cursorが対応するMCP機能
Cursorは以下のMCPプロトコル機能をサポートしています。
| 機能 | 対応状況 | 説明 |
|---|---|---|
| Tools | 対応 | AIモデルが実行できる関数 |
| Prompts | 対応 | ユーザー向けのテンプレートメッセージおよびワークフロー |
| Resources | 対応 | 読み取り・参照可能な構造化データソース |
| Roots | 対応 | URIやファイルシステム境界に対するサーバー起点の問い合わせ |
| Elicitation | 対応 | ユーザーに追加情報を求めるサーバー起点の要求 |
MCPサーバーのトランスポート方式
CursorはMCPサーバーとの通信に3種類のトランスポート方式をサポートしています。
| 方式 | 実行場所 | ライフサイクル | ユーザー数 | 接続方法 | 認証 |
|---|---|---|---|---|---|
| stdio | ローカル | Cursorが管理 | 単一 | シェルコマンド | 手動 |
| SSE | ローカル/リモート | サーバーとしてデプロイ | 複数 | SSEエンドポイントへのURL | OAuth |
| Streamable HTTP | ローカル/リモート | サーバーとしてデプロイ | 複数 | HTTPエンドポイントへのURL | OAuth |
stdio(標準入出力)
ローカルで実行されるMCPサーバーに使用します。Cursorがプロセスを起動・管理し、標準入出力を通じて通信します。
メリット:
- セットアップが簡単
- ネットワーク設定不要
- ローカル環境で完結
デメリット:
- 複数ユーザーでの共有が困難
- Cursorを閉じるとサーバーも終了
SSE/Streamable HTTP
リモートで実行されるMCPサーバーに使用します。HTTPベースの通信により、複数ユーザーでのサーバー共有が可能です。
メリット:
- チームでの共有が可能
- 常時稼働のサーバーとして運用可能
- OAuth認証との親和性が高い
デメリット:
- サーバーのデプロイ・運用が必要
- ネットワーク設定が必要
mcp.jsonの基本設定
MCPサーバーの設定は mcp.json ファイルで行います。設定ファイルの配置場所によって適用範囲が異なります。
設定ファイルの配置場所
| 配置場所 | 適用範囲 | 用途 |
|---|---|---|
.cursor/mcp.json |
プロジェクト固有 | プロジェクト専用のツール |
~/.cursor/mcp.json |
グローバル | すべてのプロジェクトで使用するツール |
stdioサーバーの設定構文
Node.js製のMCPサーバーを設定する例です。
|
|
Python製のMCPサーバーを設定する場合は以下のようになります。
|
|
stdioサーバーの設定フィールド
| フィールド | 必須 | 説明 | 例 |
|---|---|---|---|
| type | いいえ | サーバー接続方式 | "stdio" |
| command | はい | サーバーを起動するコマンド | "npx", "node", "python" |
| args | いいえ | コマンドに渡す引数の配列 | ["server.py", "--port", "3000"] |
| env | いいえ | サーバー用の環境変数 | {"API_KEY": "value"} |
| envFile | いいえ | 環境変数を読み込むファイルパス | ".env" |
リモートサーバーの設定構文
HTTPまたはSSEを使用するリモートMCPサーバーの設定例です。
|
|
主要MCPサーバーの導入
ここでは、開発ワークフローで頻繁に使用される主要なMCPサーバーの導入方法を解説します。
GitHub MCP Server
GitHubのイシュー、プルリクエスト、リポジトリを操作するためのMCPサーバーです。
Personal Access Tokenの取得
- GitHubにログインし、Settings → Developer settings → Personal access tokens → Tokens (classic) に移動
- 「Generate new token」をクリック
- 必要なスコープを選択(repo、read:org など)
- トークンを生成してコピー
設定例
|
|
環境変数 GITHUB_TOKEN に取得したPersonal Access Tokenを設定します。
提供されるツール
create_issue: イシューの作成list_issues: イシュー一覧の取得create_pull_request: プルリクエストの作成search_repositories: リポジトリの検索get_file_contents: ファイル内容の取得
Figma MCP Server
Figmaのデザインデータを取得し、AIにコンテキストとして提供するMCPサーバーです。
Figma Access Tokenの取得
- Figmaにログインし、Settings → Account → Personal access tokens に移動
- 「Generate new token」をクリック
- トークン名を入力し、適切なスコープを選択
- トークンを生成してコピー
設定例
|
|
提供されるツール
get_file: Figmaファイルの情報取得get_images: デザインの画像エクスポートget_comments: コメントの取得
Linear MCP Server
Linear(プロジェクト管理ツール)のイシューやプロジェクトを操作するMCPサーバーです。
設定例(OAuth認証)
LinearはOAuth認証をサポートしています。
|
|
提供されるツール
create_issue: イシューの作成update_issue: イシューの更新list_projects: プロジェクト一覧の取得
Slack MCP Server
Slackのメッセージ送信やチャンネル操作を行うMCPサーバーです。
Slack Appの作成
- Slack API にアクセス
- 「Create New App」→「From scratch」を選択
- アプリ名とワークスペースを設定
- OAuth & Permissions で必要なスコープを追加
- Bot User OAuth Token を取得
設定例
|
|
提供されるツール
send_message: メッセージの送信list_channels: チャンネル一覧の取得get_channel_history: チャンネル履歴の取得
Notion MCP Server
Notionのページやデータベースを操作するMCPサーバーです。
Notion Integrationの作成
- Notion Developers にアクセス
- 「New integration」をクリック
- 名前と関連ワークスペースを設定
- Internal Integration Secret をコピー
- 連携したいページでIntegrationを招待
設定例
|
|
提供されるツール
search: ページの検索get_page: ページ内容の取得create_page: ページの作成query_database: データベースのクエリ
OAuth認証の構成
リモートMCPサーバーでOAuth認証を使用する場合の設定方法を解説します。
CursorのOAuthリダイレクトURL
すべてのMCPサーバーで共通のリダイレクトURLを使用します。
cursor://anysphere.cursor-mcp/oauth/callback
MCPプロバイダーのOAuthアプリを設定する際、このURLを許可されたリダイレクトURIとして登録してください。
静的OAuth資格情報の設定
OAuthを使用するMCPサーバーの設定例です。
|
|
OAuth設定フィールド
| フィールド | 必須 | 説明 |
|---|---|---|
| CLIENT_ID | はい | MCPプロバイダーが発行したOAuth 2.0クライアントID |
| CLIENT_SECRET | いいえ | OAuth 2.0クライアントシークレット(confidential clientの場合) |
| scopes | いいえ | リクエストするOAuthスコープの配列 |
環境変数による資格情報の管理
OAuth資格情報はハードコードせず、環境変数を使用することを推奨します。
|
|
Cursor UIからのMCPサーバー追加
Cursorは、MCPサーバーを簡単に追加できるUIを提供しています。
MCPサーバーディレクトリからの追加
- Cursor Settingsを開く(
Ctrl + Shift + J/Cmd + Shift + J) - 「MCP」セクションに移動
- 利用可能なMCPサーバー一覧から選択
- 「Add to Cursor」ボタンをクリック
- 認証が必要な場合はOAuthフローが開始される
MCPツールの有効化と無効化
チャットインターフェースからMCPツールを個別に有効・無効にできます。
- Agentパネルの「Available Tools」セクションを確認
- ツール名をクリックして有効/無効を切り替え
- 無効化されたツールはコンテキストに読み込まれない
MCPサーバーの動作確認
設定したMCPサーバーが正しく動作しているか確認する方法を解説します。
接続状態の確認
- Cursor Settingsを開く
- 「MCP」セクションでサーバーの状態を確認
- 緑色のインジケーターが表示されていれば接続成功
ツールの動作テスト
Agentに対して、MCPツールを使用するよう指示します。
GitHubリポジトリ「owner/repo」の最新イシュー5件を取得してください
デバッグ方法
MCPサーバーに問題がある場合は以下を確認してください。
- Cursor Settings → MCP でエラーメッセージを確認
- 環境変数が正しく設定されているか確認
- APIキーやトークンの有効期限を確認
- ネットワーク接続を確認
セキュリティに関する注意事項
MCPサーバーを使用する際は、以下のセキュリティ対策を考慮してください。
| 対策 | 説明 |
|---|---|
| 提供元の確認 | 信頼できる開発者やリポジトリからのMCPサーバーのみをインストール |
| 権限の確認 | サーバーがどのデータやAPIにアクセスするかを事前に確認 |
| APIキーの制限 | 必要最小限の権限だけを持つ制限付きAPIキーを使用 |
| コードの監査 | 重要な連携についてはサーバーのソースコードをレビュー |
MCPサーバーは外部サービスにアクセスし、ユーザーに代わってコードを実行できる可能性があります。インストール前に、そのサーバーが何を行うのかを必ず把握してください。
まとめ
本記事では、CursorとMCPの連携について解説しました。
- MCPはAIアプリケーションを外部システムに接続するためのオープンスタンダードなプロトコル
- CursorはTools、Resources、Prompts、Roots、Elicitationの各MCP機能をサポート
- mcp.jsonファイルでMCPサーバーを設定し、stdio/SSE/Streamable HTTPの3種類のトランスポートを選択可能
- GitHub、Figma、Linear、Slack、NotionなどのMCPサーバーを導入することで、開発ワークフローを大幅に拡張できる
- OAuth認証を使用するリモートサーバーでは、環境変数で資格情報を管理することを推奨
MCPを活用することで、Cursorから離れることなく外部サービスを操作でき、AI駆動開発の効率が大幅に向上します。