Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MCP連携で加速するAI駆動開発/mcp integration accelerates ai...

MCP連携で加速するAI駆動開発/mcp integration accelerates ai-driven-development

BPStudy#215〜MCP連携で加速するAI駆動開発( https://bpstudy.connpass.com/event/361340/ ) の登壇資料です。

Avatar for BPStudy

BPStudy

July 28, 2025
Tweet

More Decks by BPStudy

Other Decks in Programming

Transcript

  1. 2025/07/28 beproud.jp / tracery.jp • (株) BePROUD ◦ IT Architect

    ◦ TRACERY 開発チーム 個人活動等 • Pythonコミュニティー運営 ◦ Python mini Hack-a-thon ◦ Sphinx users JP ◦ PyCon JP Association; accounting director • Books 翻訳/執筆 (13冊) about.me/shimizukawa 清水川 貴之
  2. 2025/07/28 beproud.jp / tracery.jp AI駆動開発 人が実装方針を考えて、コードをタブ補完で書いていく時代から、 要件/設計を元にAIが実装していく時代へ。 • AIのサポート範囲が広がってきている ◦

    Copilot によるタブ補完 ◦ コーディングエージェントによる自動実装 ▪ 対話型(IDE上、ターミナル上) ▪ 非対話型(Issueをアサインするとプルリクエストを作ってくれる等) • AIへの指示方法が変わってきている ◦ コードコメントを書いてCopilotでコード補完 ◦ チャット欄でAIに「〇〇を実装して」と指示 ◦ AIにルールや仕様書を渡して実装を指示 ◦ AIと一緒に仕様や設計を作成してから実装 ▪ Kiroの提唱するスペック駆動開発 そして、AI駆動開発は、MCP連携によって加速します。
  3. 2025/07/28 beproud.jp / tracery.jp AIエージェントとMCP連携 • AIエージェント ◦ 「AIチャット」は、人間とAIの対話 ◦

    「AIエージェント」は、自律的に目標を達成 ◦ 計画立案: 設定された目標を達成するために必要なことを自分で考える ◦ 目標達成: LLMからの結果を受け取り、期待する結果になるまで試行錯誤する • MCP連携 ◦ MCP = Model Context Protocol ◦ クライアントと外部ツール・データ接続の共通仕様(業界標準として急速に普及中) ▪ これまで各社個別に定義していた ▪ 例えばピザ注文ファンクションを作っても、各社向け仕様に個別対応が必要 ◦ MCPの登場によって、1つのMCPサーバー実装を各クライアントから利用可能に ▪ VSCode, Claude, Cursor, Windsurf, … 等、 ▪ 今後 A2A でも使われていく(予想)
  4. 2025/07/28 beproud.jp / tracery.jp MCPとは AIエージェント等とサービスを接続する 共通プロトコル(ざっくり) • ローカルMCPサーバー ◦

    VSCode等のクライアントと同じ環境で動作 ◦ ローカルファイルを検索したり読ませたり ◦ 外部サービスへの接続も可能 ▪ GitHubの場合、設定でPATを指定 ◦ 利用者各自でインストールやセットアップが必要 • リモートMCPサーバー ◦ 外部でホスティングされているMCPサーバー ◦ OAuth認証によるアクセス権付与 ◦ 利用者側でのインストールは不要 MCP 2025-06-18 仕様より
  5. 2025/07/28 beproud.jp / tracery.jp AI駆動開発の課題とMCPの活用 • AIは長いコンテキストを忘れる ◦ 対策: ローカルファイルに、ルールを書いておく

    ◦ 対策: 設計や実装の途中経過をファイルに書き出す • 知見を次の開発でも活用 ◦ 対策: ルールや設計をコードと一緒にリポジトリにコミット ◦ 課題: ローカルのAI向けまとめファイルが増加 • 人間向け仕様との分断 ◦ 課題: 経緯(フロー情報)と最終的な設計(ストック情報)が混在 ◦ 課題: 設計がソースコードリポジトリにだけあり開発者以外が参照しづらい AI駆動開発であっても、ストック情報を整理して、参照可能性を高めることが重要。 ストック情報はAI駆動開発のサイクルでも効果を発揮します。
  6. 2025/07/28 beproud.jp / tracery.jp • 開発ツール ◦ IDE: Visual Studio

    Code ◦ Agent: GitHub Copilot Agent ◦ LLM: Claude Sonnet 4 ◦ MCP: TRACERY • Webアプリケーション ◦ 言語: Python ◦ WAF: Django ◦ API: REST Framework ◦ DB: MySQL 上記以外のツール、言語、フレームワークの組み合わせでも同様に使えます。 今回のデモに使うシステムの技術スタック
  7. 2025/07/28 beproud.jp / tracery.jp 今日のデモの流れ システムを把握 • データベース構造を把握(TRACERYにSQLインポート) • データベースへ論理名を設定(DDLに含まれていないため)

    • システム全体の用語登録 • 追加開発の要件を作成 • モデル定義、API実装 ◦ テーブル追加 + Django Admin追加 ◦ REST API 追加 • ストック情報を整理して、ドキュメントへ反映
  8. 2025/07/28 beproud.jp / tracery.jp データベースへ論理名を設定 DDLに含まれていなかった、論理名を設定します。 また、モデルの用途なども(今回は類推で)入れてもらいます。 プロンプト - models.py

    を元に、DB定義の論理名を設定してください。 - また、DB定義にコメント(説明、概要)を設定してください。 - 概要には、論理名を元にどのような用途なのか追加情報を記載してください。 - 概要はidやFKなど明確なものには不要ですが、説明が必要であれば設定してくださ い。 - INDEXやUNIQUE等の制約を付けた理由を伝える必要があれば、概要に追記してく ださい。
  9. 2025/07/28 beproud.jp / tracery.jp システム開発全体で、共通した用語を使用します。 また、用語に対応したコーディング用名称を定義し、実装に使用します。 LLMがソースコードを調査する際に、用語を誤解したり勝手に解釈して使用してくる課題に対し て、用語集を読み込んだ上で調査し、仕様書を作成してもらう動作が期待できます。 プロンプト -

    DB定義とソースコードに基づいて、用語を登録してください。 - 用語はカテゴリごとに分類し、関連する用語をグループ化してください。 - 用語のうち、優先度が高いのは、対象ドメインの専門用語です。 - 他にも、システム用語や業務用語など、関連する用語を登録してください。 - 開発関連の用語は知名度の低いものだけで OK. 例えばDjangoやPythonなどの有名なものは登録しなくてOKです。 - コーディング用名称は小文字のスネークケース システム全体の用語登録
  10. 2025/07/28 beproud.jp / tracery.jp モデル定義、API設計、実装 要件を元にフロント向け新機能の API設計をしてもらいます。 設計内容はいちど人間が確認するために、ローカルファイルに書き出してもらい、必要であれば手直しを します。 プロンプト(1つずつ)

    - TRACERYで、要件「書籍お気に入り機能」を確認して、要件を満たすのに必要な APIを教えてください。 - まずはテーブル設計を行って、 design.md ファイルに書いてください。 - それを元にAPI設計を design.md ファイルに書いてください。 (ここで必要であれば手直し) - この内容で実装してください。
  11. 2025/07/28 beproud.jp / tracery.jp ストック情報の保存 実装結果を元にストック情報を整理して、ドキュメントに反映します。 このストック情報は次の開発で参照されるだけでなく、多くの関係者が参照するドキュメ ントになります。 プロンプト -

    実装した結果を「DB設計」「API設計」「新しい用語」にまとめ、TRACERYに登録してく ださい。 - まとめ方は、開発ガイドラインの「TRACERY ページ・ドキュメント作成ガイド」を参照し てください。
  12. 2025/07/28 beproud.jp / tracery.jp ストック情報の参照(TRACERYの活用) 基本データ • ページ、図、データベース定義、用語集 コンテキストとしてLLMに渡せるデータ •

    GitHub連携(Issue、PR)、 • Redmine連携(チケット) • Google Drive Googleドキュメント、SpreadSheet • バックリンク(情報間の相互関連) • ページやDB定義の変更履歴