Skip to main content
Glama
stevennevins

MCP Server Template

by stevennevins

MCP サーバー テンプレート

TypeScriptでモデルコンテキストプロトコル(MCP)サーバーを作成するためのテンプレートです。このテンプレートは、適切なツール、型安全性、そしてベストプラクティスを用いて、MCP互換サーバーを構築するための強固な基盤を提供します。

特徴

  • 🚀 TypeScriptの完全サポート

  • 🏗️ コンテナベースの依存性注入

  • 📦 DataProcessor インターフェースを使用したサービスベースのアーキテクチャ

  • 🛠️ テストを含むツール実装の例

  • 🧪 Vitest テストフレームワーク

  • 📝 型定義

  • 🔌 MCP SDK 統合

Related MCP server: MCP Server Starter

はじめる

発達

  1. 依存関係をインストールします:

    npm install
  2. ホット リロードで開発サーバーを起動します。

    npm run dev
  3. プロジェクトをビルドします。

    npm run build
  4. テストを実行します:

    npm test
  5. 本番サーバーを起動します。

    npm start

プロジェクト構造

src/
├── index.ts          # Entry point
├── interfaces/       # Interface definitions
│   └── tool.ts      # DataProcessor interface
└── tools/           # Tool implementations
    └── example.ts   # Example tool

ツールの作成

  1. src/tools/example.tsの例に従って、ツールとハンドラーをエクスポートします。

    // In your-tool.ts
    export const YOUR_TOOLS = [
      {
        name: "your-tool-name",
        description: "Your tool description",
        parameters: {
          // Your tool parameters schema
        },
      },
    ];
    
    export const YOUR_HANDLERS = {
      "your-tool-name": async (request) => {
        // Your tool handler implementation
        return {
          toolResult: {
            content: [{ type: "text", text: "Result" }],
          },
        };
      },
    };
  2. src/index.tsALL_TOOLSおよびALL_HANDLERS定数にツールを登録します。

    // In src/index.ts
    import { YOUR_TOOLS, YOUR_HANDLERS } from "./tools/your-tool.js";
    
    // Combine all tools
    const ALL_TOOLS = [...EXAMPLE_TOOLS, ...YOUR_TOOLS];
    const ALL_HANDLERS = { ...EXAMPLE_HANDLERS, ...YOUR_HANDLERS };

サーバーは自動的に次の処理を実行します。

  • 利用可能なツールにツールをリストします

  • 入力検証を処理する

  • ツールへのリクエストを処理する

  • MCPプロトコルに従って応答をフォーマットする

テスト

テンプレートには、ローカル テスト用の組み込み TestClient と視覚的なデバッグ用の MCP Inspector が含まれています。

TestClientの使用

TestClient はツールをテストする簡単な方法を提供します。

import { TestClient } from "./utils/TestClient";

describe("YourTool", () => {
  const client = new TestClient();

  it("should process data correctly", async () => {
    await client.assertToolCall(
      "your-tool-name",
      { input: "test" },
      (result) => {
        expect(result.toolResult.content).toBeDefined();
      }
    );
  });
});

MCPインスペクターの使用

テンプレートには、ツールを視覚的にデバッグするための MCP インスペクターが含まれています。

  1. インスペクターを起動します。

    npx @modelcontextprotocol/inspector node dist/index.js
  2. http://localhost:5173でインスペクターUIを開きます。

検査官は以下を提供します:

  • テストツールのビジュアルインターフェース

  • リアルタイムのリクエスト/レスポンス監視

  • ツールメタデータ検査

  • インタラクティブなテスト環境

カーソルを使ったローカルテスト

Cursor を使用して MCP サーバーをローカルでテストするには:

  1. パッケージをビルドしてリンクします。

    npm run build
    npm run link
  2. バイナリが動作することを確認します。

    npx example-mcp-tool
  3. カーソルにサーバーを追加します。

    • カーソル設定を開く

    • 機能タブに移動します

    • MCPサーバーのセクションまでスクロールします

    • 「サーバーを追加」をクリックします

    • 「コマンド」タイプを選択

    • 名前を付けます(例:「ローカルサンプルツール」)

    • 次のコマンドを入力します: npx example-mcp-tool

    • 確認をクリック

  4. MCP サーバー セクションでサーバーが実行中であることが表示されていることを確認し、カーソルでサーバーが正しく起動していることを確認します。

注意: コードを変更した場合は、必ず再構築して再リンクしてください。

npm run build
npm run link

テストが完了したら、パッケージのリンクを解除できます。

npm run unlink

これにより、開発中に作成されたグローバル シンボリック リンクが削除されます。

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/stevennevins/mcp-server-template'

If you have feedback or need assistance with the MCP directory API, please join our Discord server