Skip to main content
Glama

MCP Todoist

by kentaroh7777
task1-1_step1_red-phase.md3.64 kB
# Task 1-1 Step 1: Red Phase - テスト先行実装 ## 🔴 Red Phase: テストを先に実装して失敗させる ### 【重要】このステップでは実装コードを一切書かない - テストコードのみを実装する - テストが失敗することを確認する - 実装は次のステップ(Green Phase)で行う ## 実装指示 ### 1. プロジェクト構造準備 - `packages/mcp-server` ディレクトリを作成 - package.json を初期化(npm init -y) - 開発依存関係をインストール:vitest, @types/node, typescript, supertest, @types/supertest - 実行時依存関係をインストール:express, ws, zod ### 2. 設定ファイル作成 - package.json にテストスクリプト(test: vitest, test:run: vitest run)を追加 - vitest.config.ts を作成(globals: true, environment: node) - tsconfig.json を作成(ES2020, commonjs, strict有効) ### 3. テストファイル作成 #### test/mcp-handler.test.ts **MCPProtocolHandler クラスの単体テスト(12個のテストケース)** **handleRequest メソッドのテスト:** - initialize リクエストの正常処理(protocolVersion, capabilities, serverInfo.name='mcp-todoist' を含む) - 未知のメソッドのエラーハンドリング(-32601 Method not found) - 不正なリクエスト形式の処理(jsonrpc="1.0"など、-32600 Invalid Request) - id が欠けているリクエストの処理(-32600 Invalid Request) **validateRequest メソッドのテスト:** - 正しい形式のリクエストの検証(jsonrpc="2.0", id, method必須) - 間違ったjsonrpcバージョンの拒否 - id が欠けているリクエストの拒否 - method が欠けているリクエストの拒否 - 非オブジェクト(null, string, number, array)の拒否 **createResponse メソッドのテスト:** - 正常なレスポンス形式の作成(jsonrpc="2.0", id, result) - 文字列IDの処理 **createErrorResponse メソッドのテスト:** - エラーレスポンス形式の作成(jsonrpc="2.0", id, error) - null ID の処理(id=0に変換) #### test/server.integration.test.ts **MCPServer の統合テスト(5個のテストケース)** **HTTP エンドポイントのテスト:** - `/mcp` への正常なinitializeリクエスト(JSON-RPCフォーマット) - 不正なJSON-RPCリクエストのエラー処理(-32600) - 不正なJSONフォーマットの処理(400エラー) - 存在しないメソッドのエラー処理(-32601) - サーバーエラーの適切な処理 ## 実行確認の指示 ### テスト実行 `npm test` を実行して以下を確認: - ❌ すべてのテストが失敗する - ❌ `Cannot find module '../src/server/mcp-handler'` エラー - ❌ `Cannot find module '../src/server/index'` エラー ## 完了条件 ### ✅ チェックリスト - [ ] packages/mcp-server プロジェクトがセットアップされている - [ ] テスト環境(Vitest + SuperTest)が設定されている - [ ] MCPProtocolHandler の単体テスト(12個)が実装されている - [ ] MCPServer の統合テスト(5個)が実装されている - [ ] `npm test` でテストが実行され、すべて失敗することを確認 - [ ] モジュールが見つからないエラーが出ることを確認 ## 【重要】次のステップ このRed Phaseが完了したら、**Green Phase(task1-1_step2_green-phase.md)** に進み、テストを通すための最小実装を行う。 **絶対に実装コードを書かないこと** - それは次のステップです!

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kentaroh7777/mcp-todoist'

If you have feedback or need assistance with the MCP directory API, please join our Discord server