1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCPを使ってAIアシスタント付きTODOアプリを作成してみました!

Last updated at Posted at 2025-05-19

はじめに

こんにちは!
最近話題の Model Context Protocol(MCP) を採用し、チャットからタスク管理ができる AIアシスタント付き TODO アプリ を作ってみました。
image.png

  • 「掃除のタスクを追加して」
  • 「買い物リストを完了にしておいて」

といった自然言語指示を受け、裏側では MCP が API を呼び出し TODOリスト を更新します。
本記事では MCP の概要 → 技術スタック → 実装 の順でまとめました。


目次

  1. MCP とは?
  2. プロダクト概要
  3. 技術スタック
  4. 実装ステップ
  5. 参考リンク

MCP とは?

Model Context Protocol(MCP) は Anthropic が 2024 年 11 月に OSS として公開した “LLM 用 USB‑C” 的な標準プロトコルです。
2025 年 3 月には OpenAI・Google もサポートを表明し、Microsoft も Build 2025 で「AI Agents の共通土台」として紹介しました。

用語 役割
Client ユーザーが触れるアプリ側。1 つの Server と 1:1 で接続し、モデルに Tool / Resource / Prompt 情報を渡す
Server 外部システムを MCP 用にラップしたサービス。HTTP+SSE または stdio で Client と通信
Tool LLM が “副作用あり” で呼び出せる関数(例: POST /todos
Resource 読み取り専用のデータ取得口(例: GET /todos
Prompt 再利用可能なプロンプトテンプレート

詳細仕様: https://modelcontextprotocol.io/specification/2025-03-26


プロダクト概要

チャット入力に「ゴミ出しをするを追加したい」と打つと…

image.png

  1. MCP Client が “ユーザープロンプト+利用可能ツール一覧” を Gemini に渡す
  2. Gemini が「addTodoItem Tool を使う」と判断
  3. Client → Server → POST /todos でタスクを追加

フロントエンド側は ツール定義を宣言するだけ で OK なので、“LLM が勝手に API を選んでくれる体験” が得られます。


技術スタック

カテゴリ 採用技術
フロントエンド React / Next.js 14 (App Router) / Tailwind CSS
MCPサーバー Hono / TypeScript
サーバーAPI Hono / Prisma ORM / SQLite
LLM Google Gemini 2.0 Flash

実装ステップ

ステップ 概要 ポイント・Tips
1 環境構築
Next.js プロジェクト作成 & 必要なパッケージ導入
pnpm create next-app
必要なパッケージをpnpm addで追加
2 REST API 実装
Hono + Prisma で TODO の CRUD API を作成
src/api ディレクトリ推奨
Prismaで型安全なDB操作
例: /todos エンドポイント
3 MCP Server 構築
@modelcontextprotocol/sdk + hono-mcp-* で /mcp 公開
MCPツール(addTodo, deleteTodo, updateTodo)を宣言
Honoで /mcp や /sse エンドポイント
4 クライアント組み込み
Vercel AI SDK で MCP Client を使い LLM 連携
experimental_createMCPClient でツール一覧を取得
Gemini等のモデルに渡す
5 チャットUI実装
進行状況やエラーは react-hot-toast でユーザーにフィードバック
チャット送信時にトースト表示
TODOリストはチャット完了時に自動リフレッシュ

参考リンク


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?