MCP Server について
Node.jsとTypeScriptで構築された、ツール、リソース、プロンプトの実装を学ぶためのMCPサーバー例です。計算機、システム情報とエコーのリソース、挨拶とコードレビューのプロンプトを備え、stdioとHTTP/SSEに対応しています。
主な機能
- 01算術計算ツール
- 02システム情報とエコーのリソース
- 03挨拶とコードレビューのプロンプト
- 04stdioとHTTP/SSEのトランスポート
- 05ログ機能
活用シーン
- 01MCPクライアントからの算術ツール呼び出しのテスト
- 02リソース経由でのシステム情報やメッセージの確認
- 03開発中のプロンプトテンプレートと接続方式の試用
MCP 対応
MCPクライアントに計算機ツール、システム情報とエコーのリソース、挨拶とコードレビューのプロンプトを提供します。stdioとHTTP/SSEのトランスポートに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー
Node.js と TypeScript を使用した Model Context Protocol(MCP)サーバーの実装です。
MCP とは?
Model Context Protocol(MCP)は、アプリケーションが LLM(大規模言語モデル)にコンテキストを提供する方法を標準化するオープンプロトコルです。AI アプリケーションと、さまざまなデータソースやツールとのシームレスな通信を可能にします。
機能
このサーバー実装では、次の機能を提供します。
- 基本的な算術演算(加算、減算、乗算、除算)を行う計算ツール
- システムメトリクスを含むサーバー情報リソース
- メッセージを反復するエコーリソース
- フォーマル/カジュアルのオプションを備えた挨拶プロンプトテンプレート
- コードレビュー用プロンプトテンプレート
- stdio と HTTP/SSE の両方のトランスポート方式をサポート
- 包括的なロギングシステム
はじめに
前提条件
- Node.js 18+ と npm
インストール
- リポジトリをクローンします
- 依存関係をインストールします。
npm install
- プロジェクトをビルドします。
npm run build
サーバーの実行
stdio を使用する場合(MCP クライアントとの連携用)
npm start
HTTP/SSE を使用する場合(Web ベースでの利用)
npm start -- --http
サーバーはデフォルトでポート 3000 で起動します。PORT 環境変数を設定すると変更できます。
PORT=8080 npm start -- --http
API
ツール
calculate:算術演算を実行します- パラメーター:
operation(add/subtract/multiply/divide)a(数値)b(数値)
- パラメーター:
リソース
server://info:次の情報を含むサーバー情報を取得します。- サーバー名とバージョン
- 稼働時間
- Node.js のバージョン
- プラットフォーム
- メモリ使用量
echo://{message}:指定されたメッセージをそのまま返します
プロンプト
greeting:パーソナライズされた挨拶を生成します- パラメーター:
name(文字列):挨拶する相手の名前formal(任意の文字列):フォーマルな言葉遣いを使用するかどうか
- パラメーター:
code-review:コードをレビューし、改善点を提案します- パラメーター:
code(文字列):レビューするコードlanguage(文字列):プログラミング言語focus(任意の文字列):レビューの重点項目
- パラメーター:
開発
自動再読み込みを有効にして開発モードでサーバーを実行するには:
npm run dev
開発モードで HTTP/SSE トランスポートを使用するには:
npm run dev -- --http
ライセンス
ISC
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。