將現有的 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 中,用 @Tool({name:'search_tickets', description:'...'}) 和 Zod schema 裝飾
searchTickets,現有的身份驗證守衛仍然生效。✓ 已複製→ 工具出現在 Claude 的工具列表中 -
接入身份驗證在 MCP controller 上套用現有的 JwtAuthGuard,讓 AI 代理必須提供有效的 bearer token。✓ 已複製→ 未授權的呼叫回傳 401
結果: AI 代理使用你真實的後端——相同的驗證、相同的身份驗證,無需重複服務邏輯。
注意事項
- 混用使用者範圍與服務範圍的工具會造成身份驗證混亂 — 拆分為兩個 MCP 模組:一個使用使用者 JWT,另一個使用服務 token