mcpField
M
MCP Server Boilerplate

MCP Server Boilerplate

ローカル
github.com/cds-id開発ツール151 週間前に更新

MCP Server Boilerplate について

MCP Server Boilerplate は、MCP サーバーを開発・拡張する開発者向けの TypeScript と Express によるテンプレートです。HTTP と stdio のトランスポートに加え、リソース、ツール、プロンプトのサンプルを含みます。

主な機能

  1. 01HTTP と stdio のトランスポート
  2. 02TypeScript と Express
  3. 03リソース・ツール・プロンプトのサンプル
  4. 04拡張可能なモジュール構成

活用シーン

  1. 01新しい MCP サーバープロジェクトの開始
  2. 02サーバーへの独自リソースやツールの追加
  3. 03HTTP または stdio モードでのサーバーテスト

MCP 対応

HTTP または stdio で MCP クライアントと通信する MCP サーバーを実装しており、リソース、ツール、プロンプトのサンプルを備えています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP サーバーのボイラープレート

MCP TypeScript SDK NPM Version MIT License

TypeScript と Express で構築された、Model Context Protocol(MCP)に準拠するサーバーのボイラープレート実装です。

サーバーのボイラープレート MCP サーバー

目次

概要

このプロジェクトは、アプリケーションが標準化された方法で LLM にコンテキストを提供できるようにする Model Context Protocol(MCP)に準拠するサーバーを実装しています。次の機能が含まれます。

  • HTTP と stdio のトランスポートオプションを備えた、設定済みの MCP サーバー
  • 主な機能を示すサンプルのリソース、ツール、プロンプト
  • 型安全性と開発者エクスペリエンスを向上させる TypeScript サポート
  • HTTP トランスポート層の Express 統合

プロジェクト構成

mcp-server-boilerplate/
├── .env                  # Environment variables
├── .env.example          # Example environment variables
├── .gitignore            # Git ignore file
├── package.json          # Project dependencies and scripts
├── tsconfig.json         # TypeScript configuration
├── src/
│   ├── index.ts          # Main HTTP server entry point
│   ├── stdio.ts          # Stdio server entry point
│   ├── resources/        # MCP resources
│   │   ├── index.ts      # Resource registration
│   │   ├── infoResource.ts # Static info resource
│   │   └── greetingResource.ts # Dynamic greeting resource
│   ├── tools/            # MCP tools
│   │   ├── index.ts      # Tool registration
│   │   ├── calculatorTool.ts # Sample calculator tool
│   │   └── timestampTool.ts # Sample timestamp tool
│   └── prompts/          # MCP prompts
│       ├── index.ts      # Prompt registration
│       ├── greetingPrompt.ts # Sample greeting prompt
│       └── analyzeDataPrompt.ts # Sample data analysis prompt
└── dist/                 # Compiled JavaScript output

はじめに

前提条件
  • Node.js(v18 以降)
  • npm または yarn
インストール

リポジトリをクローンし、依存関係をインストールします。

git clone https://github.com/yourusername/mcp-server-boilerplate.git
cd mcp-server-boilerplate
npm install
環境変数

環境ファイルのサンプルをコピーし、必要に応じて変更します。

cp .env.example .env

使用可能な環境変数:

  • PORT:HTTP サーバーのポート(デフォルト:3000)
  • NODE_ENV:環境モード(development、production)
  • OAuth 設定(必要な場合)

サーバーの実行

HTTP サーバー

HTTP サーバーをビルドして起動します。

npm run build
npm start

自動再起動を有効にして開発する場合:

npm run dev

サーバーは http://localhost:3000/mcp(または .env ファイルで指定したポート)で利用できます。

Stdio モード

stdio モードでサーバーを実行するには(コマンドラインツール向け):

npm run start:stdio

自動再起動を有効にして開発する場合:

npm run dev:stdio

リソース

このボイラープレートには、次のリソース例が含まれます。

  1. 静的情報リソース:info://server

    • サーバーに関する基本情報を提供します
  2. 動的な挨拶リソース:greeting://{name}

    • 指定された name パラメーターを使って、個別にカスタマイズされた挨拶を生成します

リソースにアクセスする方法:

  • MCP プロトコル経由
  • MCP クライアントライブラリを使用

ツール

このボイラープレートには、次のツール例が含まれます。

  1. 電卓:基本的な算術演算を実行します

    • パラメーター:
      • operation:実行する演算(add、subtract、multiply、divide)
      • a:1 つ目の数値
      • b:2 つ目の数値
  2. タイムスタンプ:さまざまな形式で現在時刻を提供します

    • パラメーター:
      • format:出力形式(iso、unix、readable)

プロンプト

このボイラープレートには、次のプロンプト例が含まれます。

  1. 挨拶:個別にカスタマイズされた挨拶プロンプトを作成します

    • パラメーター:
      • name:挨拶する相手の名前
      • formal:フォーマルな挨拶スタイルを使用するかどうか(任意)
  2. データ分析:データ分析用のプロンプトを作成します

    • パラメーター:
      • data:分析するデータ
      • format:データ形式(json、csv、text)
      • instructions:追加の分析指示(任意)

サーバーの拡張

リソースの追加

新しいリソースを追加するには:

  1. src/resources/ に新しいファイルを作成します(例:myResource.ts)
  2. リソースハンドラーを実装します
  3. src/resources/index.ts に登録します

例:

// myResource.ts
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';

export function myResource(server: McpServer): void {
  server.resource('my-resource', 'my-resource://path', async uri => ({
    contents: [
      {
        uri: uri.href,
        text: 'My resource content',
      },
    ],
  }));
}

// Then add to resources/index.ts
import { myResource } from './myResource.js';

export function registerResources(server: McpServer): void {
  // ...existing resources
  myResource(server);
}
ツールの追加

新しいツールを追加するには:

  1. src/tools/ に新しいファイルを作成します(例:myTool.ts)
  2. ツールハンドラーを実装します
  3. src/tools/index.ts に登録します

例:

// myTool.ts
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';

export function myTool(server: McpServer): void {
  server.tool('my-tool', { param: z.string() }, async ({ param }) => ({
    content: [
      {
        type: 'text',
        text: `Processed: ${param}`,
      },
    ],
  }));
}

// Then add to tools/index.ts
import { myTool } from './myTool.js';

export function registerTools(server: McpServer): void {
  // ...existing tools
  myTool(server);
}
プロンプトの追加

新しいプロンプトを追加するには:

  1. src/prompts/ に新しいファイルを作成します(例:myPrompt.ts)
  2. プロンプトハンドラーを実装します
  3. src/prompts/index.ts に登録します

例:

// myPrompt.ts
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';

export function myPrompt(server: McpServer): void {
  server.prompt('my-prompt', { topic: z.string() }, ({ topic }) => ({
    messages: [
      {
        role: 'user',
        content: {
          type: 'text',
          text: `Please explain ${topic} in simple terms.`,
        },
      },
    ],
  }));
}

// Then add to prompts/index.ts
import { myPrompt } from './myPrompt.js';

export function registerPrompts(server: McpServer): void {
  // ...existing prompts
  myPrompt(server);
}

テストとデバッグ

MCP サーバーをテストするには、次のものを使用できます。

  • MCP Inspector ツール
  • MCP クライアントライブラリ
  • 直接の HTTP リクエスト(デバッグ用)

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。