MCP Test Server について
テストとデモ向けの TypeScript・Express.js 製 MCP サーバーです。Streamable HTTP 経由で BMI 計算、天気検索、エコーのツールを提供し、環境変数で設定できます。
主な機能
- 01BMI 計算ツール
- 02都市の天気検索
- 03メッセージのエコーツール
- 04Streamable HTTP トランスポート
- 05環境変数による設定
活用シーン
- 01サンプル機能で MCP ツール呼び出しをテスト
- 02Streamable HTTP MCP サーバーのデモ
- 03API キーを使った天気検索の試用
MCP 対応
`/mcp` エンドポイントの Streamable HTTP 経由で、BMI、天気、エコーのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Test Server
テストとデモを目的とした、複数のツールを備えたModel Context Protocol(MCP)サーバーの実装です。
概要
このサーバーでは、主に次の3つのツールを利用できます。
- BMI Calculator:体重と身長からBMIを計算します
- Weather Service:任意の都市の気象情報を取得します(APIキーに対応)
- Echo Tool:テスト用のシンプルなエコー機能です
特長
- TypeScriptとExpress.jsで構築
- MCP用のストリーミング可能なHTTPトランスポート
- 環境変数による設定
- ホットリロードによる開発に対応
- モジュール式のツールアーキテクチャ
前提条件
- Node.js(v18以降)
- npmまたはyarnのパッケージマネージャー
インストール
-
このリポジトリをクローンまたはダウンロードします
-
依存関係をインストールします。
npm install -
環境変数のサンプルファイルをコピーします。
cp .env.example .env -
(任意)
.envに気象APIキーを追加します。WEATHER_API_KEY=your_openweathermap_api_key_here
ビルドと実行
開発モード
# Build and start with hot reload
npm run dev
本番モード
# Build the project
npm run build
# Start the server
npm start
サーバーはhttp://localhost:3000(またはPORT環境変数で指定したポート)で起動します。
APIエンドポイント
MCPサーバーには次のエンドポイントからアクセスできます。
POST http://localhost:3000/mcp
利用可能なツール
1. BMI Calculator(calculate-bmi)
体重と身長からBMIを計算します。
パラメーター:
weightKg(数値):体重(キログラム)heightM(数値):身長(メートル)
2. Weather Service(get-weather)
都市の現在の気象情報を取得します。
パラメーター:
city(文字列):都市名country(文字列、任意):国コード(例:"IN"、"US")
3. Echo Tool(echo)
テスト用のシンプルなエコー機能です。
パラメーター:
message(文字列):エコーとして返すメッセージ
サーバーのテスト
MCP Inspectorを使用する
MCPサーバーをテストするためのGUIインターフェースを利用するには:
-
サーバーを起動します。
npm start -
別のターミナルでMCP Inspectorを実行します。
npm run inspector
VS Codeとの連携
MCPに対応したVS Codeを使用している場合は、このサーバーを設定に追加します。
{
"mcp": {
"servers": {
"mcp-test-server": {
"url": "http://localhost:3000/mcp"
}
}
}
}
プロジェクト構成
├── src/
│ ├── index.ts # Main server file
│ └── tools/ # Tool implementations
│ ├── bmi.ts # BMI calculator tool
│ ├── weather.ts # Weather service tool
│ └── echo.ts # Echo tool
├── build/ # Compiled JavaScript files
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── .env.example # Environment variables example
└── README.md # This file
開発
新しいツールの追加
-
src/tools/に新しいツールファイルを作成します。import { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; import { z } from 'zod'; export const myTool = { name: 'my-tool', schema: { param1: z.string(), param2: z.number(), }, handler: async ({ param1, param2 }: { param1: string; param2: number }): Promise<CallToolResult> => { return { content: [ { type: 'text', text: `Result: ${param1} - ${param2}`, }, ], }; }, }; -
src/index.tsでインポートして登録します。import { myTool } from './tools/my-tool.js'; // In the getServer() function: server.tool( myTool.name, 'Description of my tool', myTool.schema, myTool.handler );
利用可能なスクリプト
npm run build- TypeScriptをJavaScriptにコンパイルしますnpm run watch- 変更を監視して再コンパイルしますnpm run dev- ホットリロード対応の開発モードで起動しますnpm start- コンパイル済みのサーバーを起動しますnpm run inspector- MCP Inspectorを起動します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。