AI・機械学習

MCPサーバーを30分で自作しよう!AIツールを自分で作る入門チュートリアル

「AIと自分のシステムを連携させたいけど、どこから手をつければいいかわからない…」そんな悩み、ありませんか?🤔

最近、AI開発の世界でMCP(Model Context Protocol)というキーワードが急速に注目を集めています。今回はこのMCPサーバーを実際に自分で作りながら、仕組みをざっくり理解していきましょう!

MCPサーバーってそもそも何?

AI server programming
AI server programming / Photo by Pixabay via Pexels

イメージとしては「AIと自分のビジネスロジックをつなぐ中継地点」です。

従来のAI連携では、ツールのロジックをAIのコードの中にベタ書きしていました。でもMCPを使うと、ビジネスロジックとAIのオーケストレーション層を分離できるんですよね。つまり、AIの部分を変えてもツール側は触らなくてよくなる、という設計の話です。

メリットをざっくりまとめるとこんな感じです。

  • ✅ AIとビジネスロジックが疎結合になる
  • ✅ ツールを再利用・組み合わせやすくなる
  • ✅ スキーマ検証・レート制限など堅牢な設計が入れやすい

今回作る3つのAIツール

30分のチュートリアルで作成するツールは以下の3つです。

  1. データベースクエリツール:自然言語→SQLクエリ実行
  2. 通知ツール:AIからの通知送信
  3. ファイル操作ツール:ファイルの読み書き操作

さらにZodによるスキーマバリデーションレート制限サーキットブレーカー(障害時の自動遮断)まで実装します。盛りだくさんですね😄

MCPサーバーの基本構造を見てみよう

まず、MCPサーバーの骨格はこんな感じです。ポイントを先に確認しておきましょう。

  • tool() でAIが呼び出せるツールを登録する
  • 引数スキーマをZodで定義してバリデーションを自動化
  • 処理の中身(ビジネスロジック)はツールごとに分離
// MCPサーバーの基本骨格(TypeScript)
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

const server = new McpServer({
  name: "my-ai-tools",   // サーバー名
  version: "1.0.0",
});

// ✅ データベースクエリツールを登録
server.tool(
  "query_database",
  "データベースにSQLクエリを実行します",
  {
    // Zodでスキーマを定義(バリデーション自動化)
    query: z.string().describe("実行するSQLクエリ"),
    limit: z.number().max(100).default(10).describe("最大取得件数"),
  },
  async ({ query, limit }) => {
    // ここにビジネスロジックを書く
    const result = await executeQuery(query, limit);
    return {
      content: [{ type: "text", text: JSON.stringify(result) }],
    };
  }
);

console.log("MCPサーバー起動完了!");

ここが重要です。Zodでスキーマを定義するだけで、AIがツールを呼び出す際の引数チェックが自動で行われます。型ミスや不正な値が来ても弾いてくれるので、安心して設計できますよね。

サーキットブレーカーって何?


聞き慣れない言葉かもしれませんが、イメージは「ブレーカー(電気の遮断器)」そのままです。

外部サービスが連続してエラーを返したとき、一定回数失敗したら一時的にリクエストをストップする仕組みです。無限にリトライしてサービスに負荷をかけ続けるのを防いでくれます。AIツールの実運用では必須の考え方ですよ。

まとめ

今回はMCPサーバーの概要と基本構造を解説しました。ポイントをおさらいすると…

  • MCPはAIとビジネスロジックを分離する設計パターン
  • Zodでスキーマバリデーションを自動化できる
  • レート制限・サーキットブレーカーで本番運用に耐える設計が作れる

「むずかしそう」と思っていた方も、骨格を見るとだいぶ「できそう」に見えてきませんか?😊 MCPはAIエージェント開発の標準になりつつある技術です。ぜひ手を動かして試してみてください!

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

ELEGOO Arduino用UNO R3スターターキット レベルアップ チュートリアル付 mega2560 r3 nanoと互換 [並行輸入品]

もしも

ELEGOO Arduino用UNO R3スターターキット レベルアップ チュートリアル付 mega2560 r3 nanoと互換 [並行輸入品]

チュートリアル付きのArduino入門セット

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です