既存のNestJSバックエンドをMCPとして公開する
使うタイミング: PythonやTS MCP SDKでサービスロジックを書き直したくない場合 — テスト済みのコードをそのまま再利用できます。
前提条件
- NestJS 10以上のアプリ — 既存のプロジェクトを使用
- @rekog/mcp-nestのインストール — npm i @rekog/mcp-nest
フロー
-
モジュールを登録するapp.module.tsにMcpModule.forRoot({name: 'acme', version: '1.0'})を追加してください。✓ コピーしました→ アプリが起動し、/mcpエンドポイントが存在する
-
サービスメソッドをツールとしてデコレートするTicketsServiceの
searchTicketsに@Tool({name:'search_tickets', description:'...'})とZodスキーマを付与してください。既存の認証ガードはそのまま適用されます。✓ コピーしました→ Claudeのツールリストにツールが表示される -
認証を接続するMCPコントローラーに既存のJwtAuthGuardを適用し、エージェントが有効なBearerトークンを必要とするようにしてください。✓ コピーしました→ 未認証の呼び出しが401を返す
結果: エージェントが実際のバックエンドを利用します — 同じバリデーション、同じ認証、サービスの重複なし。
注意点
- ユーザースコープとサービススコープのツールを混在させると認証が混乱する — MCPモジュールを2つに分割: ユーザーJWT用とサービストークン用