Skip to content

TypeScriptのMCPサーバー

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

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

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

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
    パラメータ デフォルト 説明
    project 必須 string - The project to add an MCP server to
    name string - The name of your MCP server (default: mcp-server)

    ジェネレーターは既存のTypeScriptプロジェクトに以下のファイルを追加します:

    • Directoryyour-project/
      • Directorysrc/
        • Directorymcp-server/ (カスタム名を指定した場合はそれ)
          • index.ts MCPサーバーのエントリーポイント
          • server.ts メインサーバー定義
          • Directorytools/
            • add.ts サンプルツール
          • Directoryresources/
            • sample-guidance.ts サンプルリソース
      • package.json binエントリとMCP依存関係が更新されます
      • project.json MCPサーバーserveターゲットが更新されます

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

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

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

    const exampleContext = '返されるコンテキスト例';
    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 }],
    };
    });

    MCPをサポートするほとんどのAIアシスタントは類似した設定アプローチを採用しています。MCPサーバーの詳細を記載した設定ファイルを作成または更新する必要があります:

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "/path/to/your-mcp-server/index.ts"]
    }
    }
    }

    MCPサーバーを開発中に--watchフラグを設定すると、AIアシスタントが常に最新のツール/リソースを認識するようになります:

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "--watch", "/path/to/your-mcp-server/index.ts"]
    }
    }
    }

    特定のAIアシスタントでMCPを設定するには、各アシスタントのドキュメントを参照してください:

    MCPサーバーをテスト・使用する最も簡単な方法はAIアシスタントと連携させることです(上記参照)。ただし、STDIOトランスポートからStreamable HTTPトランスポートに切り替える場合など、<your-server-name>-serveターゲットを使用してサーバーを実行することも可能です。

    Terminal window
    pnpm nx run your-project:your-server-name-serve

    このコマンドはtsx --watchを使用して、ファイル変更時にサーバーを自動再起動します。