TypeScript MCP Demo Server について
TypeScript MCP Demo Serverは、Bunで構築されたTypeScript製のMCPサーバー例です。サーバーツールを学ぶ開発者や試作向けに、挨拶と加算のツールをstdioで提供します。
主な機能
- 01Bunランタイム
- 02stdioトランスポート
- 03型安全なTypeScript実装
- 04greetとadd_numbersのサンプルツール
- 05MCP Inspectorによるデバッグ
活用シーン
- 01MCPサーバー初期化の学習
- 02TypeScriptツールの試作
- 03MCP Inspectorでの機能テスト
MCP 対応
stdio経由でMCPサーバーを実装し、クライアントが呼び出せるツールを登録します。サンプルツールは、指定ユーザーへの挨拶と2つの数値の加算です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
TypeScript MCP デモサーバー
TypeScript SDK と Bun ランタイムを使用した、基本的な Model Context Protocol(MCP)サーバーの実装です。
概要
このプロジェクトでは、以下の機能を備えた TypeScript による MCP サーバーの構築方法を紹介します。
- stdio トランスポートによるサーバーの初期化
- ツールの登録と処理
- TypeScript の型安全性
- 高速な実行を実現する Bun ランタイム
前提条件
インストール
# Clone the repository
git clone https://github.com/gedankrayze/ts-demo-mcp.git
cd ts-demo-mcp
# Install dependencies
bun install
プロジェクト構成
ts-demo-mcp/
├── src/
│ └── index.ts # Main MCP server implementation
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── Taskfile.yaml # Task runner configuration
└── README.md # This file
利用可能なツール
このサーバーには、2 つのツールの例が実装されています。
1. greet
ユーザーの名前を使って挨拶します。
入力スキーマ:
{
"name": "string" // Required: The name of the person to greet
}
応答例:
Hello, John! Welcome to the TypeScript MCP demo server.
2. add_numbers
2 つの数値を足します。
入力スキーマ:
{
"a": "number", // Required: The first number
"b": "number" // Required: The second number
}
応答例:
The sum of 5 and 3 is 8.
使用方法
npm/bun スクリプトを使用する場合
# Start the MCP server
bun start
# Run TypeScript type checking
bun typecheck
Task ランナーを使用する場合
# Start the MCP server
task start
# Inspect server capabilities with MCP inspector
task inspect-server
# Send a raw initialization request
task inspect
Claude Desktop との連携
このサーバーを Claude Desktop で使用するには、以下を Claude Desktop の設定に追加します。
{
"mcpServers": {
"ts-demo-mcp": {
"command": "bun",
"args": ["run", "/path/to/ts-demo-mcp/src/index.ts"]
}
}
}
開発
新しいツールの追加
サーバーに新しいツールを追加するには、以下の手順に従います。
ListToolsRequestSchemaハンドラーのツールリストを更新しますCallToolRequestSchemaハンドラーにツールの実装を追加します
例:
// In ListToolsRequestSchema handler
{
name: "my_tool",
description: "Description of what the tool does",
inputSchema: {
type: "object",
properties: {
param1: { type: "string", description: "Parameter description" }
},
required: ["param1"]
}
}
// In CallToolRequestSchema handler
case "my_tool": {
const param1 = request.params.arguments?.param1 as string;
return {
content: [{
type: "text",
text: `Tool output for ${param1}`
}]
};
}
型チェック
このプロジェクトでは、厳格モードを有効にした TypeScript を使用しています。次のコマンドで型チェックを実行します。
bun typecheck
MCP Inspector
このプロジェクトには、デバッグ用の MCP Inspector が含まれています。これを使って、サーバーの機能を確認できます。
task inspect-server
これにより、MCP サーバーをテストするためのインタラクティブな Web インターフェースが起動します。
ライセンス
このプロジェクトは公開されており、https://github.com/gedankrayze/ts-demo-mcp で利用できます。
リソース
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。