/ Diretório / Playground / MCP-Nest
● Comunidade rekog-labs ⚡ Instantâneo

MCP-Nest

por 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.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

nest.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/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
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

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

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

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

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

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

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

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

O Continue usa um array de objetos de servidor em vez de um map.

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

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

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

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: MCP-Nest

Expose your existing NestJS backend as an MCP

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

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

Pré-requisitos
  • NestJS 10+ app — Your existing project
  • Install @rekog/mcp-nest — npm i @rekog/mcp-nest
Fluxo
  1. Register the module
    Add McpModule.forRoot({name: 'acme', version: '1.0'}) to app.module.ts.✓ Copiado
    → 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.✓ Copiado
    → 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.✓ Copiado
    → Unauth'd calls return 401

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

Armadilhas
  • 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

Quando usar: Your tool needs confirmation or a secret that the agent shouldn't have by default.

Fluxo
  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).✓ Copiado
    → Agent prompts the user in chat; proceeds only on confirmation

Resultado: 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

Quando usar: Agents need to see live status (build, deploy, ticket queue) as context, not via a tool call.

Fluxo
  1. Declare a resource template
    Create a @Resource('ticket://{id}') that returns the ticket JSON by id.✓ Copiado
    → 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✓ Copiado
    → MCP push notifications to subscribed clients

Resultado: Live context instead of snapshots — the agent sees what the user sees.

Combinações

Combine com outros MCPs para 10× de alavancagem

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.✓ Copiado
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.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
@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

Custo e limites

O que custa rodar

Cota de API
Depends on your services
Tokens por chamada
Depends on tool output
Monetário
Free, MIT
Dica
Add response size guards on tools that return lists — an unbounded list of tickets will blow token budgets fast

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: Standard Nest config; use @nestjs/config + secret managers
Saída de dados: Wherever your Nest services go

Solução de problemas

Erros comuns e correções

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

Verificar: 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

Alternativas

MCP-Nest vs. outros

AlternativaQuando usarTroca
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

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills