mcpField
T
Todo App using MCP Server

Todo App using MCP Server

リモート
github.com/theatulanand生産性081 週間前に更新
リポジトリ

Todo App using MCP Server について

Google Gemini APIで自然言語の指示を解釈し、MongoDBに保存するExpress.js製のToDoアプリです。コマンドでタスクを管理したい人向けで、SSEによるリアルタイム更新にも対応します。

主な機能

  1. 01自然言語でToDoを追加
  2. 02完了済みを含むToDo一覧
  3. 03MongoDB IDでToDoを完了
  4. 04MongoDB IDでToDoを削除
  5. 05SSEによるリアルタイム更新

活用シーン

  1. 01一文で買い物タスクを登録
  2. 02未完了または全ToDoを確認
  3. 03指定したToDoを完了扱いにする
  4. 04MCPクライアントで変更を受信

MCP 対応

MCPとSSEを使ってリアルタイム更新を提供し、互換クライアント向けに`/sse`エンドポイントを備えています。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttp://localhost:3000/sse
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

MCP サーバーを使用した Todo アプリ

Google Gemini API による自然言語処理、永続化のための MongoDB、Server-Sent Events(SSE)を介したリアルタイム更新のための MCP(Model Context Protocol)で機能を強化した、シンプルな Todo アプリケーションです。Express.js を使用したモジュール式の MVC アーキテクチャで構築されています。


機能

  • 自然言語を使って Todo を追加(例:「牛乳を買うタスクを追加」)
  • Todo を一覧表示(完了済みのものを含めるかどうかを指定可能)
  • MongoDB ID を使って Todo を完了済みにする
  • MongoDB ID を使って Todo を削除
  • MCP を使用した Server-Sent Events(SSE)でリアルタイム更新を受信

技術スタック

  • Node.js:サーバーランタイム
  • Express.js:ルーティングとミドルウェア
  • MongoDB(Atlas):クラウドベースの NoSQL データベース
  • Mongoose:MongoDB 用 ODM
  • Google Gemini API:自然言語コマンドの解釈を処理
  • @modelcontextprotocol/sdk:MCP 統合と SSE 用
  • dotenv:環境変数の管理用

前提条件

  • Node.js(v18 以降)
  • MongoDB Atlas クラスター(認証情報が必要)
  • Google Gemini API キー(Google AI Studio から取得できます)

インストール

  1. リポジトリをクローン

    git clone https://github.com/theatulanand/to-do-mcp-server.git
    cd todo-mcp-single
    
  2. 依存関係をインストール

    npm install
    
  3. 環境変数を設定

    ルートディレクトリに .env ファイルを作成します:

    PORT=3000
    MONGO_URI=URI
    GEMINI_API_KEY=
    

アプリの実行

サーバーを起動します:

npm start

次のように表示されます:

Connected to MongoDB with Mongoose
Server running on http://localhost:3000

サーバーを停止するには、Ctrl + C を押します。


使用方法

JSON 本文を指定して /api/command に POST リクエストを送信します:

{ "command": "Add a task to buy milk" }
コマンドの例
  • 追加:

    curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "Add a task to buy milk"}'
    
  • 一覧表示:

    curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "List my todos"}'
    
  • 完了:

    curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "Complete todo with ID some_mongodb_id"}'
    
  • 削除:

    curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "Delete todo with ID some_mongodb_id"}'
    
  • 完了済みのものも含めて一覧表示:

    curl -X POST http://localhost:3000/api/command -H "Content-Type: application/json" -d '{"command": "List my todos including completed"}'
    

リアルタイム更新(SSE)

ライブ更新を受信するには、/sse に接続します。(MCP 対応クライアントが必要です。)


プロジェクト構成

todo-mcp-single/
├── models/           # Mongoose schemas
│   └── Todo.js
├── controllers/      # Business logic
│   └── todoController.js
├── routes/           # API routes
│   └── todoRoutes.js
├── utils/            # Utility functions (e.g., Gemini integration)
│   └── gemini.js
├── .env              # Environment configuration
└── server.js         # App entry point

トラブルシューティング

  • MongoDB 接続エラー:Atlas の MONGO_URI と IP ホワイトリストを確認してください。
  • Gemini API エラー:API キーと generativelanguage.googleapis.com へのネットワークアクセスを確認してください。
  • 認識されないコマンド:デバッグのため、ログ内の Gemini の生出力を確認してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。