MCP Server in Node.js について
Node.js で実装された MCP サーバーのサンプルで、カスタムのプロンプトとツールを備えたサーバーの構築方法を示します。MCP を学ぶ開発者向けで、Cursor IDE などの AI 支援環境から利用できます。
主な機能
- 012 つの数値の合計を返す add ツール
- 02API_KEY 環境変数を読み取る getApiKey ツール
- 03モデルのツール利用を推論させる add_numbers プロンプト
- 04Zod によるスキーマ検証
- 05StdioServerTransport による接続
活用シーン
- 01Node.js による MCP サーバーの基本構成の学習
- 02Cursor のエージェントモードからのカスタムツールの呼び出し
- 03MCP Inspector によるツールとプロンプトの動作確認
MCP 対応
本プロジェクトは MCP サーバーとして、add と getApiKey のツールおよび add_numbers プロンプトを stdio 経由で Cursor などの MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🟢 MCP Server in Node.js
わずか 2 分で Node.js のカスタム MCP サーバーを構築して実行 ⏱️
概要 · 機能 · インストール · MCP Inspector でのテスト · テスト用環境変数の設定 · Cursor AI との統合 · Cursor での MCP ツールの使用(エージェントモード) · コードの概要 · 参考資料とリソース · ライセンス
概要
MCP(Model Context Protocol) は、Cursor AI などの AI 支援開発環境にカスタムツールを統合できるフレームワークです。MCP サーバーは、データ取得やコード解析などの機能を公開するため、LLM ベースの IDE が必要に応じてこれらのツールを呼び出せます。MCP の詳細については、Model Context Protocol の概要をご覧ください。
このプロジェクトでは、Node.js を使用して JavaScript で実装された MCP サーバーを紹介します。2 つのツールを定義しています。add は 2 つの数値を受け取り、その合計を返します。getApiKey は API_KEY 環境変数から API キーを取得します。また、AI モデルが加算ツールの使い方を推測できるようにする、定義済みプロンプト add_numbers も提供します。
要件
- Node.js: バージョン 20 以上が必要です。
機能
- MCP 統合: LLM ベースの IDE にツールの機能を公開します。
- 加算ツール: 2 つの数値パラメーターを受け取り、その合計を返します。
- MCP プロンプト: AI モデルがツールの使い方を推測できるように、定義済みプロンプト(「add_numbers」)を提供します。
- 環境変数の取得: 設定ファイルから環境変数の例を読み込む方法を紹介します。
- 入力検証: スキーマ検証に Zod を使用します。
- 標準入出力トランスポート:
StdioServerTransportを介して接続し、開発環境と統合します。
インストール
-
リポジトリをクローンする
git clone <repository_url> cd <repository_directory> -
依存関係をインストールする
プロジェクトの依存関係は、次のいずれかの方法でインストールできます。
オプション 1:既存の
package.jsonを使ってインストールする次のコマンドを実行するだけです。
npm installオプション 2:依存関係を手動でインストールする
必要に応じて、既存の
package.jsonを削除し、必要なパッケージを手動でインストールできます。npm install @modelcontextprotocol/sdk zod次に、新しく生成された
package.jsonファイルを更新し、ES Modules を有効にして mcp inspector コマンドを追加するため、以下の行を含めます。"type": "module", "scripts": { "inspector": "npx @modelcontextprotocol/inspector node ./mcp-server.js" }
MCP Inspector でのテスト
MCP Inspector は、IDE と統合する前にサーバーのツールを対話的にテストできるデバッグツールです。
オプション 1:npx で直接実行する
npx @modelcontextprotocol/inspector node ./mcp-server.js
オプション 2:npm スクリプトを使用する
npm run inspector
これにより、次の処理が行われます。
- MCP inspector サーバーを起動します
- ブラウザーで Inspector のインターフェースを開きます
- ツール、リソース、プロンプトをテストできます
ブラウザーで MCP Server Inspector を開きます。 http://localhost:6274/
テスト用環境変数の設定
異なる API キーで getApiKey ツールをテストするには、Inspector の実行前に環境変数を設定します。
Linux/macOS(Bash/Zsh):
# Temporary (current session only)
export API_KEY="your-test-key"
npm run inspector
# Or set for single command
API_KEY="your-test-key" npm run inspector
Windows(コマンドプロンプト):
# Set for current session
set API_KEY=your-test-key
npm run inspector
Windows(PowerShell):
# Set for current session
$env:API_KEY="your-test-key"
npm run inspector
# Or set for single command
$env:API_KEY="your-test-key"; npm run inspector
Cursor AI との統合
この MCP サーバーを Cursor IDE と統合するには、Cursor の設定インターフェースから構成を追加する必要があります。
- Cursor IDE を開きます
- Settings → Tools & Integrations に移動します
- Add Custom MCP Server をクリックします
- 以下の構成を追加します
重要: すでに他の MCP サーバーを構成している場合は、構成全体を上書きしないでください。代わりに、既存の "mcpServers" オブジェクトに "MCP Server Boilerplate" オブジェクトを追加します。
サンプル構成ファイル: このプロジェクトには、参照またはコピーできるサンプル構成ファイル ./cursor/mcp.json が含まれています。
構成の構造
追加が必要な構成は以下のとおりです。
Linux/macOS の例:
{
"MCP Server Boilerplate": {
"command": "node",
"args": ["/home/john/mcp-server-node/mcp-server.js"],
"env": {
"API_KEY": "abc-1234567890"
}
}
}
Windows の例:
{
"MCP Server Boilerplate": {
"command": "node",
"args": ["C:\\Users\\john\\mcp-server-node\\mcp-server.js"],
"env": {
"API_KEY": "abc-1234567890"
}
}
}
すでに MCP サーバーを構成している場合、構成全体は次のようになります。
{
"mcpServers": {
"existing-server": {
"command": "python",
"args": ["/path/to/existing/server.py"]
},
"MCP Server Boilerplate": {
"command": "node",
"args": ["/home/john/mcp-server-node/mcp-server.js"],
"env": {
"API_KEY": "abc-1234567890"
}
}
}
}
構成パラメーター
-
MCP Server Boilerplate:
サーバー構成のキーです。任意の名前を付けることができます。 -
command:
サーバーの実行に使用する Node.js 実行ファイルです。次のいずれかを指定できます。"node"(Node.js が PATH に含まれている場合)- Node.js 実行ファイルのフルパス(必要な場合)
Node.js のパスの確認方法:
Linux/macOS:
which node # Example output: /home/john/.nvm/versions/node/v20.13.1/bin/nodeWindows(コマンドプロンプト):
where node # Example output: C:\Program Files\nodejs\node.exeWindows(PowerShell):
Get-Command node # Example output: C:\Program Files\nodejs\node.exe -
args:
MCP サーバーファイルへの絶対パスを含む配列です。Linux/macOS の例:
["/home/john/mcp-server-node/mcp-server.js"]Windows の例:
["C:\\Users\\john\\mcp-server-node\\mcp-server.js"] -
env:(任意)
MCP サーバープロセスの環境変数を定義します。この例では、API_KEYに"abc-1234567890"を設定しています。環境に応じてこの値を調整してください。
コードの概要
このプロジェクトは、次の主要な部分で構成されています。
-
MCP サーバーの初期化:
MCP SDK のMcpServerを使用して MCP サーバーをインスタンス化し、StdioServerTransportを介して接続します。 -
ツールの定義:
- add:
2 つの数値(aとb)を受け取り、その合計をテキストとして返す Zod スキーマで定義されています。 - getApiKey:
環境変数API_KEYから API キーを取得し、テキストとして返します。
- add:
-
プロンプトの定義:
- add_numbers:
AI モデルが加算ツールの使い方を推測できるようにする、事前定義済みのプロンプトです。
- add_numbers:
重要な注意事項:ツールにプロンプトを定義する必要はありません。この例では、入力に基づいて AI モデルが使用するツールを推測できるようにするという、プロンプトの機能の一つを示しています。AI は、タスクに必要だと判断した場合、ツールを直接使用することもできます。
Cursor で MCP ツールを使用する(エージェントモード)
MCP サーバーを Cursor IDE に統合し、エージェントモードを有効にすると、いくつかの方法でツールを使用できます。
加算ツールの使用方法
方法 1:自然言語のプロンプト 次のような自然言語のプロンプトを使用します。
add 3 and 5
または
what is 7 plus 12?
方法 2:プロンプトベースのツール呼び出し チャットに次のプロンプトを入力します。
/add_numbers
このプロンプトを入力して Enter キーを押すと、Cursor は次の処理を自動的に行います。
- Node Server の
addツールを使用したいことを認識します - 2 つの数値パラメーターの入力を求める GUI プロンプトを表示します
- AI モデルは、結果を計算するために
addツールを使用する必要があると推測します
加算ツールのパラメーター:
- パラメーター
a:加算する最初の数値 - パラメーター
b:加算する 2 番目の数値 - 戻り値:2 つの数値の合計をテキストとして返します
API キーツールの使用方法
getApiKey ツールには、次のように入力できます。
what is my API key?
または
get my API key
AI エージェントは、リクエストに基づいて適切なツールを自動的に推測します。
参考資料とリソース
ライセンス
このプロジェクトはMIT Licenseの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。