create-mcp-tools で始める MCP サーバー開発

AI アプリケーション開発では、LLM(大規模言語モデル)に外部リソースやツールへのアクセスを提供する仕組みが欠かせません。Model Context Protocol、略して MCP は、この課題に対する標準化されたソリューションとして注目を集めています。

create-mcp-tools は、MCP サーバーを数分で構築するための CLI ツールです。TypeScript ベースのプロジェクトテンプレートを自動生成し、開発者がすぐにコーディングを始められる環境を整えてくれます。

MCP とは何か

Model Context Protocol は、AI アプリケーションと外部データソースやツールを安全に接続するためのオープンプロトコルです。MCP サーバーを構築すると、LLM に対してさまざまな機能を提供できるようになります。

まず挙げられるのがリソース機能でしょう。ファイルやデータベース、外部 API といった様々なデータソースへのアクセスを可能にします。次にツール機能があり、これは関数呼び出しを通じた操作、たとえばメール送信やデータベース更新などを実現するものです。さらにプロンプト機能では、再利用可能なプロンプトテンプレートを定義できます。

create-mcp-tools で簡単にMCPサーバー開発をセットアップ

たった1つのコマンドを実行するだけで、完全に動作する MCP サーバーのプロジェクトが生成されます。

npm create mcp-tools my-server

これだけで必要なファイル構造がすべて揃うため、環境構築に時間を取られることがありません。

使い方

プロジェクトの作成

最初のステップとして、以下のコマンドを実行します。

npm create mcp-tools my-server

プロジェクト名や説明文をカスタマイズしたい場合は、オプションを指定することもできます。

npm create mcp-tools my-server --name "My MCP Server" --description "A custom MCP server"

依存関係のインストール

プロジェクトディレクトリに移動し、必要なパッケージをインストールします。

cd my-server
npm install

ビルドの実行

TypeScript をコンパイルするには、以下を実行してください。

npm run build

開発中に継続的にコードを変更する場合は、ウォッチモードが便利です。

npm run watch

ファイルの変更を検知して自動的に再ビルドが行われるため、開発効率が向上します。

生成されるコードの例

create-mcp-tools で生成されるプロジェクトには、MCP の主要機能を網羅した実装例が含まれています。それぞれの例を見ていきましょう。

リソースの定義

リソースは外部データへのアクセスを提供する機能です。以下は、ノートデータをリソースとして公開する例です。

server.registerResource(
  "notes",
  new ResourceTemplate("note:///{id}", {
    list: async () => {
      // リソース一覧を返す
    }
  }),
  {
    name: "Notes Resource",
    description: "Access to the notes storage system"
  },
  async (uri, params) => {
    // リソースの内容を返す
  }
);

URI テンプレートを定義し、リソースの一覧取得と個別取得のロジックを実装する構造になっています。

ツールの定義

ツールは LLM が呼び出せる関数として機能します。ノートを作成するツールの例を見てみましょう。

server.registerTool(
  "create_note",
  {
    title: "Create Note",
    description: "Create a new note with a title and content",
    inputSchema: {
      title: z.string().min(1, "Title is required").describe("The title of the note"),
      content: z.string().min(1, "Content is required").describe("The content of the note")
    }
  },
  async ({ title, content }) => {
    // ツールの処理を実装
    return {
      content: [{
        type: "text",
        text: `Created note: ${title}`
      }]
    };
  }
);

Zod によるスキーマ定義が組み込まれており、入力値の検証が自動的に行われる点が特徴的です。

プロンプトの定義

プロンプトは再利用可能なテンプレートとして定義できます。

server.registerPrompt(
  "summarize_notes",
  {
    title: "Summarize Notes",
    description: "Generate a summary of all notes in the system"
  },
  async () => {
    // プロンプトの内容を返す
    return {
      messages: [/* ... */]
    };
  }
);

定型的なプロンプトを事前に定義しておくことで、LLM との対話を効率化できます。

コミュニティとサポート

このプロジェクトはオープンソースとして MIT ライセンスの下で公開されています。バグ報告や機能要望、プルリクエストを歓迎しています。

GitHub リポジトリは hideokamoto/create-typescript-server にあります。問題を発見した場合や新機能を提案したい場合は、Issues で報告してください。

ライセンスについて

MIT ライセンスで提供されているため、商用利用を含む幅広い用途で自由に使用できます。詳細については LICENSE ファイルを参照してください。

まとめ

create-mcp-tools は、MCP サーバー開発への参入障壁を大きく下げるツールです。コマンド一つで完全なプロジェクト構造が生成され、すぐにコーディングを始められます。

最新の MCP SDK とモダンな TypeScript の機能を組み合わせることで、型安全で保守しやすいコードベースを構築できるでしょう。AI アプリケーションに外部リソースやツールとの連携機能を追加したいと考えているなら、ぜひこのツールを試してみてください。


関連リンク

Hidetaka Okamoto profile photo

Hidetaka Okamoto

ビジネスデベロップメント

DigitalCubeのBizDev。EC ASPの開発やStripeのDeveloper Advocateとしての経験を元に、SaaSやECサイトの収益を増やすための方法・生成AIを使った効率化や新しい事業モデルの模索などに挑戦する。

関連記事