/ Annuaire / Playground / MCP-Nest
● Communauté rekog-labs ⚡ Instantané

MCP-Nest

par rekog-labs · rekog-labs/MCP-Nest

NestJS module that turns your existing services into an MCP server — DI, guards, and validation you already use, now exposed to AI.

MCP-Nest is a NestJS module (not a standalone MCP) that adds MCP capabilities to any Nest application. Exposes tools, resources, and prompts via decorators; supports stdio/HTTP+SSE/Streamable HTTP transports; integrates with NestJS guards for auth. Ideal when your backend is already Nest and you want agents to call it.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

nest.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "nest": {
      "command": "npx",
      "args": [
        "-y",
        "MCP-Nest"
      ],
      "_inferred": true
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "nest": {
      "command": "npx",
      "args": [
        "-y",
        "MCP-Nest"
      ],
      "_inferred": true
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "nest": {
      "command": "npx",
      "args": [
        "-y",
        "MCP-Nest"
      ],
      "_inferred": true
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "nest": {
      "command": "npx",
      "args": [
        "-y",
        "MCP-Nest"
      ],
      "_inferred": true
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "nest",
      "command": "npx",
      "args": [
        "-y",
        "MCP-Nest"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "nest": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "MCP-Nest"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add nest -- npx -y MCP-Nest

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : MCP-Nest

Expose your existing NestJS backend as an MCP

👤 NestJS teams whose agents need to call internal APIs ⏱ ~45 min intermediate

Quand l'utiliser : You don't want to rewrite service logic in Python or TS MCP SDK — reuse what's already tested.

Prérequis
  • NestJS 10+ app — Your existing project
  • Install @rekog/mcp-nest — npm i @rekog/mcp-nest
Déroulement
  1. Register the module
    Add McpModule.forRoot({name: 'acme', version: '1.0'}) to app.module.ts.✓ Copié
    → App starts; /mcp endpoint present
  2. Decorate a service method as a tool
    In TicketsService, decorate searchTickets with @Tool({name:'search_tickets', description:'...'}) and a Zod schema. Existing auth guards still apply.✓ Copié
    → Tool shows in Claude's tool list
  3. Hook up auth
    Apply the existing JwtAuthGuard on the MCP controller so agents need a valid bearer token.✓ Copié
    → Unauth'd calls return 401

Résultat : Your agents consume your real backend — same validation, same auth, no service duplication.

Pièges
  • Mixing user-scoped and service-scoped tools creates auth confusion — Split into two MCP modules: one with user JWT, one with service token

Build an interactive tool that asks the user for input mid-call

👤 Nest developers building advanced agent flows ⏱ ~30 min advanced

Quand l'utiliser : Your tool needs confirmation or a secret that the agent shouldn't have by default.

Déroulement
  1. Use the elicitation API inside a tool
    In the delete_account tool, before deleting, elicit a typed confirmation from the user (the real human, not the agent).✓ Copié
    → Agent prompts the user in chat; proceeds only on confirmation

Résultat : Irreversible actions gated behind human input even through an agent.

Serve dynamic Nest data as MCP resources

👤 Teams that want agents to read fresh data, not stale snapshots ⏱ ~35 min advanced

Quand l'utiliser : Agents need to see live status (build, deploy, ticket queue) as context, not via a tool call.

Déroulement
  1. Declare a resource template
    Create a @Resource('ticket://{id}') that returns the ticket JSON by id.✓ Copié
    → Agent can reference ticket://123 and get live content
  2. Subscribe to updates
    Emit updates when the ticket changes so subscribers see fresh state without polling✓ Copié
    → MCP push notifications to subscribed clients

Résultat : Live context instead of snapshots — the agent sees what the user sees.

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

nest + golf

Python shop + TS shop both build MCPs the same framework-first way

Port our Python Golf MCP features to the Nest team's MCP-Nest server — compare ergonomics.✓ Copié
nest + mcptools

Verify tool schemas during CI before deploy

In CI, spin up the Nest MCP and run mcp tools to assert expected tool list.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
@Tool({...}) decorator method args validated via Zod schema Mark any Nest service method as an MCP tool standard Nest method cost
@Resource({...}) decorator URI template params Expose dynamic/static resources standard Nest cost
@Prompt({...}) decorator prompt vars Ship prompts as versioned code 0

Coût et limites

Coût d'exécution

Quota d'API
Depends on your services
Tokens par appel
Depends on tool output
Monétaire
Free, MIT
Astuce
Add response size guards on tools that return lists — an unbounded list of tickets will blow token budgets fast

Sécurité

Permissions, secrets, portée

Stockage des identifiants : Standard Nest config; use @nestjs/config + secret managers
Sortie de données : Wherever your Nest services go

Dépannage

Erreurs courantes et correctifs

Tool not appearing in Claude

Ensure the class is registered in a module provider and the decorator import is from @rekog/mcp-nest not a stale copy

Vérifier : curl http://localhost:3000/mcp tools/list
Zod validation errors at runtime

Your schema doesn't match actual inputs the agent sends — tighten descriptions so the model fills the right fields

SSE connection drops every 30s

Upstream proxy timeout; set keepalive in nginx to 60s+ or use Streamable HTTP transport instead

Alternatives

MCP-Nest vs autres

AlternativeQuand l'utiliserCompromis
TS MCP SDK (official)You don't use NestJS and want the raw SDKNo DI, no guards, you wire everything
GolfPython backendDifferent language; similar framework ambitions
FastMCPPython, simpler than GolfLess enterprise tooling

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills