Spring AI と MCP を組み合わせたチャットデモ

AI/ML

概要

このリポジトリは「spring-ai-mcp-demo」と名付けられた、AI と MCP(mcp-server / mcp-client)および飛書ボットを組み合わせた簡易チャットデモです。プロジェクトは Java(Spring)で構築され、mcp-server をビルド・起動しておくことで、mcp-client 側が飛書からのイベントを受け取り、指定した大モデル(例:智谱 AI)の API に問い合わせて応答を生成、飛書へ返信する一連の流れを実現します。サンプル画像や設定手順が README にまとめられており、実際に API キーや飛書アプリ(App ID / App Secret)を用意すればローカル環境でも試せます。

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 0
  • ウォッチャー数: 5
  • コミット数: 4
  • ファイル数: 6
  • メインの言語: Java

主な特徴

  • MCP(mcp-server / mcp-client)を利用したメッセージ中継アーキテクチャのサンプル実装
  • 智谱 AI などの大規模言語モデル API と連携してチャット応答を生成
  • 飛書(Feishu / Lark)ボットを通じたイベント受信と返信フローを実演
  • Spring / Maven ベースでシンプルに構成、学習・拡張しやすい設計

技術的なポイント

本プロジェクトは、外部の大規模言語モデル API を「MCP 経由」で扱う点が特徴です。MCP(Message Control Protocol 的な役割を持つ独自/軽量な中継サーバ)は mcp-server と mcp-client に分かれており、mcp-server は中央のリクエスト仲介とAPI呼び出し管理、mcp-client は具体的なイベント(この場合は飛書の webhook イベント)を受け取って処理し、サーバにタスクを委譲します。実際のフローは次のようになります:飛書でメッセージイベントが発生 → mcp-client が受信しローカルで署名検証等を行う → mcp-client が mcp-server に要求(入力テキスト、コンテキスト等)を送る → mcp-server が指定された大モデル(智谱 AI など)へ API リクエストを行い応答を取得 → 応答を mcp-client 経由で飛書へ返信、という流れです。

技術的に注目すべき点は次のとおりです。まず、外部 API キー(大モデル)と飛書アプリの機密情報(App ID/Secret)はクライアント/サーバ間で適切に分離して管理する設計になっている点。これによりサーバ側にシークレットを集中させ、クライアントは最小限の権限でイベント中継を行えます。次に、Spring(Boot)+Maven による標準的な構成で、依存管理やビルドが容易であること。README の手順では mcp-server を mvn clean install でビルドし、そのアーティファクトを使ってクライアント構成を置き換える流れが示されています。実運用を想定した改良点としては、Webhook の署名検証、リクエストのレート制御、API 呼び出しの再試行とタイムアウト設定、ログとメトリクスの整備、HTTPS 経由での公開やリバースプロキシの導入などが考えられます。また、MCP を仲介層として使うことで複数のボットや複数モデルへのルーティング、マルチテナント対応も比較的容易に実装できます。最後に、飛書に関係する設定画面のスクショが imgs ディレクトリに含まれているため、実際のアプリ登録や権限設定の手順が分かりやすく解説されています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • README.md: file
  • imgs: dir (飛書設定のスクリーンショット等)
  • mcp-client: dir (クライアント側実装。飛書の webhook を受け取り、mcp-server に中継)
  • mcp-server: dir (サーバ側実装。外部モデル API と連携して応答を生成)

…他 1 ファイル

README 抜粋のポイント:

  • 大モデル API キー(智谱 AI など)を準備すること
  • 飛書アプリ(App ID / App Secret)の作成と権限/イベント設定が必要であること
  • mcp-server を Maven でビルドし、mcp-client の設定を置き換えて起動する手順が記載されていること

まとめ

MCP を仲介にした飛書連携型の AI チャット入門サンプルで、拡張性と学習に適した実装です(50字程度)。

リポジトリ情報: