Skip to content

ts#mcp-サーバー

TypeScript MCP サーバージェネレーター

大規模言語モデル(LLM)にコンテキストを提供するためのTypeScript Model Context Protocol(MCP) サーバーを生成します。

MCPとは

Model Context Protocol(MCP) は、AIアシスタントが外部ツールやリソースと連携するためのオープンスタンダードです。LLMが以下を行うための統一的な方法を提供します:

  • アクション実行や情報取得を行うツール(関数)の実行
  • コンテキストやデータを提供するリソースへのアクセス

使用方法

MCPサーバーの生成方法

TypeScript MCPサーバーは2つの方法で生成できます:

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#mcp-server
  5. 必須パラメータを入力
    • クリック Generate

    オプション

    パラメータ デフォルト 説明
    name 必須 string - MCP server project name.
    directory string packages Parent directory where the MCP server is placed.
    subDirectory string - The sub directory the MCP server is placed in. By default this is the MCP server project name.

    ジェネレーターの出力

    ジェネレーターは以下のプロジェクトファイルを作成します:

    • Directorypackages/<name>/
      • README.md MCPサーバーの使用説明書
      • project.json ビルド、バンドル、開発ターゲットを含むNxプロジェクト設定
      • Directorysrc/
        • index.ts MCPサーバーのエントリーポイント
        • server.ts ツールとリソースを定義するメインサーバー
        • global.d.ts マークダウンファイルインポート用TypeScript型宣言
        • Directoryresources/
          • example-context.md MCPサーバー用リソースとして使用されるマークダウンファイルの例

    MCPサーバーの操作

    ツールの追加

    ツールはAIアシスタントが呼び出せるアクション実行関数です。server.tsファイルに新しいツールを追加できます:

    server.tool("toolName", "ツールの説明",
    { param1: z.string(), param2: z.number() }, // Zodを使用した入力スキーマ
    async ({ param1, param2 }) => {
    // ツールの実装
    return {
    content: [{ type: "text", text: "結果" }]
    };
    }
    );

    リソースの追加

    リソースはAIアシスタントにコンテキストを提供します。ファイルからの静的リソースや動的リソースを追加できます:

    // ファイルからの静的リソース
    import exampleContext from './resources/example-context.md';
    server.resource('resource-name', 'example://resource', async (uri) => ({
    contents: [{ uri: uri.href, text: exampleContext }],
    }));
    // 動的リソース
    server.resource('dynamic-resource', 'dynamic://resource', async (uri) => {
    const data = await fetchSomeData();
    return {
    contents: [{ uri: uri.href, text: data }],
    };
    });

    AIアシスタントとの連携設定

    MCPサーバーをAIアシスタントで使用するには、まずバンドルが必要です:

    Terminal window
    pnpm nx run your-mcp-server:bundle

    これによりdist/packages/your-mcp-server/bundle/index.jsにバンドル版が生成されます(ディレクトリ設定によりパスは異なる場合があります)。

    設定ファイル

    MCPをサポートするAIアシスタントの多くは類似した設定方法を使用します。MCPサーバーの詳細を設定ファイルに記述する必要があります:

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "node",
    "args": [
    "/path/to/workspace/dist/packages/your-mcp-server/bundle/index.js"
    ],
    "transportType": "stdio"
    }
    }
    }

    /path/to/workspace/dist/packages/your-mcp-server/bundle/index.jsは実際のバンドル済みMCPサーバーのパスに置き換えてください。

    アシスタント固有の設定

    各AIアシスタントのMCP連携設定については、以下のドキュメントを参照してください:

    開発ワークフロー

    ビルドターゲット

    このジェネレーターはTypeScriptプロジェクトジェネレーターを基盤としており、そのターゲットを継承するとともに、以下の追加ターゲットを提供します:

    バンドル

    bundleタスクはesbuildを使用して、AIアシスタントで使用可能な単一のJavaScriptファイルを生成します:

    Terminal window
    pnpm nx run your-mcp-server:bundle

    これによりdist/packages/your-mcp-server/bundle/index.jsにバンドル版が生成されます(ディレクトリ設定によりパスは異なる場合があります)。

    開発

    devタスクはプロジェクトの変更を監視し、自動的にバンドルを再構築します:

    Terminal window
    pnpm nx run your-mcp-server:dev

    開発中に使用すると、AIアシスタントが常に最新のMCPサーバーバージョンを使用するようになります。