CursorエディタのMCPツール40個問題を解決~n8nでMCPサーバーを作る~
はじめに:CursorエディタのMCPサーバー、ツールの数が足りない問題を解決したい!
最近はAI搭載エディタ、Cursorでシステム開発を進めている方も多いのではないでしょうか。AIと一緒に開発するのは楽しいです。
そして、AIとの対話をよりスムーズにし、外部サービスとの連携を可能にするMCP (Model Communication Protocol) という仕組みが登場して、ますます便利になりました。
AIに頼んでGitHub Issueを作成してもらったり、プルリクエストを操作してもらったりと、日々のコーディング作業がぐっと効率的になります。
ただ、CursorのMCP機能には、ひとつだけ悩ましい点があります。それは、利用できるツールの数に上限があること。Cursorが認識してくれるMCPサーバーのツールは、最大で40個までなんです。
一見すると十分な数に思えるかもしれませんが、GitHubだけでなく、LinearやJiraといった複数のプロジェクト管理ツールなどを連携させようとすると、あっという間に上限に達してしまうことがあります。
「もっと色々な操作をCursorから直接実行したいのに、ツールの数が足りない…!」
そこでこの記事では、ローコード自動化ツールのn8nを活用して、このツール数の制限をスマートに回避する方法をご紹介します。
n8nを中継役として使うことで、実質的に扱えるツールの数を増やし、Cursorエディタをもっと便利に使いましょう。
n8nって、どんなツール?
今回、私たちの助けとなってくれるn8n(エヌ・エイト・エヌと読みます)は、様々なWebサービスやアプリケーションをつなぎ合わせて、日々の定型的な作業を自動化してくれる、いわゆる「ローコード自動化ツール」です。
プログラミングの詳しい知識がなくても大丈夫。画面上で「ノード」と呼ばれる機能ごとのブロックをパズルのように繋げていくだけで、複雑そうな連携処理(ワークフローと呼びます)を作り上げることができるのが、n8nの大きな魅力なんです。
例えば、「Gmailで特定のキーワードを含むメールを受信したら、その内容をSlackの特定のチャンネルに通知する」といったワークフローも、コーディングなしで簡単に実現できます。
さらに嬉しいことに、n8nはソースコードが公開されており、Sustainable Use License というライセンスのもとで提供されています。このライセンスは、「フェアコード」モデルに基づいたもので、社内業務目的、非営利目的、個人的な使用では無料で利用できます。自分のパソコンや手元のサーバーにインストールして使うセルフホスト版であれば、追加費用なしで使えるのは嬉しいポイントですね。(もちろん、手軽に始められるクラウド版も用意されていますが、こちらは一部有料プランとなります。)
この記事では、この無料で使えるセルフホスト版n8nが持つ「Webhook(特定の出来事が起こったことをきっかけに、外部へ通知を送る仕組み)」を受け取る機能や、「外部API(Application Programming Interfaceの略で、ソフトウェア同士が情報をやり取りするための約束事のようなもの)を呼び出す機能」を駆使して、Cursorエディタからのリクエストを受け止め、GitHubやLinearといった外部サービスと連携するための「自作MCPサーバー」として活躍してもらいます。
n8nでオリジナルのMCPサーバーを作ってみよう!
さあ、いよいよn8nを使って、オリジナルMCPサーバーを構築していきましょう。まずは、n8nを自分のローカル環境で動かすための準備からスタートです。
Step 1: n8nの準備をしよう
n8nをローカル環境で動かすには、いくつかの方法がありますが、Dockerを利用するのが最も手軽でおすすめです。詳しいセットアップ手順については、下記の記事に分かりやすくまとめていますので、こちらを参考にしてn8nを起動し、最初の設定(オーナーアカウントの作成など)まで済ませておいてくださいね。
n8nがちゃんと起動しているかは、お使いのWebブラウザを開いて、アドレスバーに http://localhost:5678
と入力してアクセスしてみることで確認できます。n8nのログイン画面やダッシュボードが表示されたら、準備はバッチリです!
n8nの準備が整ったら、いよいよMCPサーバーの心臓部となるワークフローを作成していきます。
Step 2: MCPトリガーを設定する ~Cursorからの呼び出し口を作る~
n8nの準備ができたら、次はCursorエディタからのリクエストを受け付けるための「入り口」を作りましょう。これには、n8nが用意してくれている「MCP Trigger」というノードを使います。
1. MCP Triggerノードを追加する
まずは、ワークフロー編集画面の中央にある「+ Add first step」ボタンをクリックして、ワークフローの起点となる最初のノード(トリガー)を追加しましょう。
すると、ノードを検索するためのウィンドウが表示されるので、「MCP」と入力して検索し、「MCP Trigger」を選びます。
これで、ワークフローの開始点として MCP Trigger ノードが画面上に配置されました。
2. MCP Triggerノードを設定する
次に、配置した MCP Trigger ノードをダブルクリックして、設定パネルを開きましょう。ここで、Cursorエディタとの連携に必要な情報を設定していきます。
設定項目は主に以下の2つです。
-
Authentication:
MCP Triggerノードは、Cursorエディタからのリクエストを受け取るための窓口なので、特に認証は設定する必要はありません。 -
Path:
ここには、CursorエディタがこのMCPサーバーにアクセスするためのURLの一部となる、任意のパスを指定します。例えばmy-mcp-server
のような、分かりやすい名前が良いかもしれませんね(もちろん、簡潔なパスでも大丈夫です)。
この設定によって、後ほどCursorエディタに設定するアクセス用URLは、例えばhttp://localhost:5678/mcp/my-mcp-server/sse
のような形になります。)
3. Linearと連携するためのGraphQLノードを追加する
続いて、LinearのAPIと通信するためのノードを追加していきましょう。今回は、Linearが提供しているGraphQL APIを利用するので、「GraphQL」ノードを使います。
まず、連携に必要なLinearのAPIキーを取得する必要があります。Linearにログインした後、Settings > Security & access > Personal API keys のメニューから新しいキーを作成してください。
APIキーの準備ができたら、n8nのワークフロー編集画面に戻り、「MCP Server Trigger」ノードの右下にある「+」ボタンをクリックします。
先ほどと同じようにノード検索窓が表示されるので、「Graph」と検索して、「GraphQL Tool」ノードを選択します。
これで、GraphQL Tool ノードがワークフローに追加されました。
それでは、このGraphQL Toolノードの設定を行っていきましょう。
ノードをダブルクリックして設定パネルを開き、まずは「GraphQL」になっているノードの名称を変更します。
Cursorエディタで表示させたいツール名を入力します。例えば「Linear_GraphQL」のようにしておくと分かりやすいでしょう。
ここで設定した名前が、Cursorエディタの設定のMCPサーバーに表示されるツール名になります
次に、Linear GraphQL APIにアクセスするための認証情報を設定します。「Authentication」のドロップダウンメニューから「Header Auth」を選択してください。
すると「Credentials」という項目が現れるので、そこの選択欄をクリックし「+ Create New Credential」をクリックします。
認証情報(Credentials)を作成する画面が開きます。ここで、「Name」の欄に Authorization
と入力し、「Value」の欄に先ほど取得したLinearのAPIキーを貼り付けます。入力できたら、「Save」ボタンをクリックして保存しましょう。
認証設定ができたら、次はAPIのエンドポイントURLを設定します。「URL」というフィールドに、Linear GraphQL APIのエンドポイントである https://api.linear.app/graphql
を入力してください。
リクエストの形式も指定しておきましょう。「Request Format」のドロップダウンから「JSON」を選択します。
ここからが、この仕組みのキモとなる重要な設定です。CursorエディタのAIが考えたGraphQLクエリを、n8nが動的に受け取ってLinear APIに渡せるように設定していきます。
「Query」に {{ $fromAI('Query') }}
と入力します。(※カーソルを合わせたときに右上に出る「expression」をクリックして入力画面を切り替えます。)
{{ $fromAI('Query') }}
この {{ $fromAI('Query') }}
というのは、n8nが用意している特別な「式(Expression)」です。これは、CursorエディタのAIが生成したGraphQLクエリの本文 (Query
という名前で渡される情報) を、この場所に動的に埋め込む という意味になります。これがあるおかげで、AIはその場の状況に応じて様々なGraphQLクエリを組み立てて実行できるようになります。
今度は「Variables」に {{ $fromAI('Variables') }}
と入力します。
{{ $fromAI('Variables') }}
こちらも先ほどと同じn8nの式で、AIが生成したGraphQLクエリに渡すための変数 (Variables
という名前で渡される情報) を動的に埋め込む ための記述です。
これで、AIからのリクエストに応じて、GraphQLのクエリ本文とその変数をいい感じに組み立てて、Linear APIに送信するための設定ができました!
以上で、Linearと連携するためのGraphQLノードの設定は完了です。忘れずに、ワークフロー全体を一度保存しておきましょう。
4. ワークフローを有効化する
さて、ワークフローの設定がすべて完了したら、最後に忘れずに有効化しましょう。画面の右上にある「Inactive」と書かれたトグルスイッチをクリックします。これを忘れてしまうと、せっかく設定したワークフローが動作せず、Cursorからアクセスしても反応してくれないので注意してくださいね。
トグルスイッチが「Active」という表示に変われば、ワークフローが無事に有効化された証拠です。
5. MCP URLを確認する
ワークフローが有効になったら、最初のステップである MCP Server Trigger ノードの設定パネルをもう一度開いてみてください。「MCP URL」という項目に、「Test URL」と「Production URL」の2種類のURLが表示されているはずです。
このMCP URLは、外部のアプリケーション(今回はCursorエディタですね)から、このn8nワークフローを呼び出すための特別なアドレスになります。ローカル環境でテストしたり、自分で使うだけであればどちらのURLでも構いませんが、一般的には「Production URL」の方を使用します。
表示されている「Production URL」を確認し、コピーしておきましょう。
このURL(例: http://localhost:5678/mcp/7f2ad3d4-395d-4626-bce7-7cb1707b48df/sse
)を、次のステップでCursorエディタに設定します。
Step 3: Cursorエディタを設定する
最後に、Cursorエディタ側の設定を行いましょう。Cursorエディタの設定画面を開き、MCP
に関する設定ファイル(通常は mcp.json
や設定UI内のMCPセクション)に、以下のように追記または編集します。
{
"mcpServers": {
"n8n": {
"url": "ここに先ほどコピーしたProduction URLを貼り付けます"
}
}
}
"url":
の部分には、先ほどn8nのMCP Server Triggerノードで確認・コピーした「Production URL」を貼り付けてください。
設定ファイルを保存したら、CursorエディタのMCPサーバー連携の状態を確認する画面を開いてみてください。
追加した n8n
サーバーのステータスが緑色のシグナル(接続成功)になっていれば、設定は完璧です!
見ての通り、ツールとしてはこれ1つだけです。しかし、この1つのツールが、AIの指示によってLinearのタスクを取得したり、新しく作成したり、あるいは既存のタスクを編集したりと、様々な操作を実行してくれるようになるのです!
まとめ:n8nでMCPのツール数制限を乗り越えよう!
CursorエディタのMCP機能は非常に便利ですが、利用できるツール数に40個という上限があるのは、少し悩ましい点でした。特に、GitHubだけでなくLinearやJiraなど、複数のサービスを連携させたいと思っている開発者にとっては、この上限は意外とすぐに壁になってしまうこともあります。
この記事では、ローコード自動化ツールであるn8nをうまく活用することで、このツール数の制限という課題を解決し、オリジナルのMCPサーバーを構築する方法をご紹介しました。n8nのMCPトリガーを使ってCursorからのリクエストを受け取り、HTTP Requestノード(今回はGraphQLを使ってLinearと連携しました)で外部サービスと通信する、という流れでしたね。
このアプローチの素晴らしい点は、n8n上に作成した1つのツール(HTTP Requestノード)が、実際にはGraphQLのような柔軟なAPIを通じて、裏側で様々な種類の操作を実行できる「多機能ツール」として機能してくれることです。これにより、Cursorエディタ側で認識されるツール数は最小限に抑えつつ、実質的に連携できるサービスの操作の種類を大幅に増やすことができるのです。
今回はLinearとの連携を例に取り上げましたが、同じような考え方で、GitHubのGraphQL APIや他の様々なサービスのAPIと連携するノードをn8nワークフローに追加していくことも可能です。n8nを使えば、あなたのアイデア次第で、もっと複雑で便利な自動化ワークフローを実現できるはずです。
ぜひ、この方法を試して、CursorエディタでのAI開発体験をさらに快適でパワフルなものにしてみてください!
Discussion
内容はとてもいいのですが、n8nはSustainable Use Licenseという独自ライセンスでオープンソースソフトウェア(OSS)ではありません。そこだけ補足お願いします。
ご指摘いただきありがとうございます!
ご指摘の通り間違っていましたので、修正致しました。
確認しました。とても分かりやすくていいです!
対応ありがとうございます。