Skip to content

Releases: btwld/nest-mcp

@nest-mcp/server@0.8.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 13:35
78f1f38

Patch Changes

  • f0657f8: Add compatibility with the exact tested NestJS 12.0.0-alpha.5 release while retaining NestJS 10
    and 11 support. CI now runs the full workspace against NestJS 12 on Node.js 24 and verifies packed
    CommonJS packages from a TypeScript 6 native ESM consumer, including registered client shutdown,
    async imported-verifier dependency injection, and gateway initialization.
  • Updated dependencies [f0657f8]
    • @nest-mcp/common@0.6.1

@nest-mcp/gateway@0.2.15

Choose a tag to compare

@github-actions github-actions released this 31 Jul 13:35
78f1f38

Patch Changes

  • f0657f8: Add compatibility with the exact tested NestJS 12.0.0-alpha.5 release while retaining NestJS 10
    and 11 support. CI now runs the full workspace against NestJS 12 on Node.js 24 and verifies packed
    CommonJS packages from a TypeScript 6 native ESM consumer, including registered client shutdown,
    async imported-verifier dependency injection, and gateway initialization.
  • Updated dependencies [f0657f8]
    • @nest-mcp/common@0.6.1
    • @nest-mcp/client@0.3.2
    • @nest-mcp/server@0.8.1

@nest-mcp/common@0.6.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 13:35
78f1f38

Patch Changes

  • f0657f8: Add compatibility with the exact tested NestJS 12.0.0-alpha.5 release while retaining NestJS 10
    and 11 support. CI now runs the full workspace against NestJS 12 on Node.js 24 and verifies packed
    CommonJS packages from a TypeScript 6 native ESM consumer, including registered client shutdown,
    async imported-verifier dependency injection, and gateway initialization.

@nest-mcp/client@0.3.2

Choose a tag to compare

@github-actions github-actions released this 31 Jul 13:35
78f1f38

Patch Changes

  • f0657f8: Add compatibility with the exact tested NestJS 12.0.0-alpha.5 release while retaining NestJS 10
    and 11 support. CI now runs the full workspace against NestJS 12 on Node.js 24 and verifies packed
    CommonJS packages from a TypeScript 6 native ESM consumer, including registered client shutdown,
    async imported-verifier dependency injection, and gateway initialization.
  • Updated dependencies [f0657f8]
    • @nest-mcp/common@0.6.1

@nest-mcp/server@0.8.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 02:53
e164f61

Minor Changes

  • 41c7474: Harden HTTP transports and auth discovery for apps with global middleware:

    • Parsed-body passthrough: the streamable HTTP and SSE transports now hand
      an upstream-parsed req.body (e.g. from a global express.json() or
      Fastify's built-in parser) to the SDK as parsedBody. Previously the SDK
      tried to re-read the already-consumed stream and the request hung. Raw-stream
      handling is unchanged when no parser ran.
    • @IsMcpPublic() marker + isMcpPublic() helper: every generated HTTP
      controller (transport endpoint, .well-known discovery) is stamped with
      MCP_HTTP_PUBLIC_METADATA — discovery documents are public per RFC 9728, and
      MCP transports authenticate via the MCP authorization spec, never via an app
      session. Apps with a global auth guard exempt these routes with one check:
      if (isMcpPublic(context)) return true. Distinct from the per-tool
      @Public() pipeline bypass.
    • controllerDecorators on McpAuthModule: extra class decorators for the
      generated .well-known controller (both forRoot and forRootAsync),
      mirroring the transport controller option. Decorator application now uses
      standard Reflect.decorate semantics in both factories.
    • Fastify at the SDK boundary: the streamable HTTP and SSE transports now
      unwrap request.raw/reply.raw before handing requests to the MCP SDK (and
      mirror the guard-verified req.auth onto the raw request). Previously the
      Fastify wrappers were passed straight through and the transports were broken
      under @nestjs/platform-fastify — now covered by a real-HTTP e2e that runs
      the streamable transport on BOTH adapters. Generated controllers also thread
      the framework-parsed @Body() to the SDK explicitly.
    • instructions server option: dedicated LLM usage guidance surfaced in
      the initialize result, distinct from description (which remains the
      fallback for back-compat).
    • README quick-start fixed to use the real transport option (was showing a
      nonexistent transports: [{ type }] shape).

Patch Changes

  • Updated dependencies [41c7474]
    • @nest-mcp/common@0.6.0

@nest-mcp/gateway@0.2.14

Choose a tag to compare

@github-actions github-actions released this 06 Jul 02:53
e164f61

Patch Changes

  • Updated dependencies [41c7474]
    • @nest-mcp/server@0.8.0
    • @nest-mcp/common@0.6.0
    • @nest-mcp/client@0.3.1

@nest-mcp/common@0.6.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 02:53
e164f61

Minor Changes

  • 41c7474: Harden HTTP transports and auth discovery for apps with global middleware:

    • Parsed-body passthrough: the streamable HTTP and SSE transports now hand
      an upstream-parsed req.body (e.g. from a global express.json() or
      Fastify's built-in parser) to the SDK as parsedBody. Previously the SDK
      tried to re-read the already-consumed stream and the request hung. Raw-stream
      handling is unchanged when no parser ran.
    • @IsMcpPublic() marker + isMcpPublic() helper: every generated HTTP
      controller (transport endpoint, .well-known discovery) is stamped with
      MCP_HTTP_PUBLIC_METADATA — discovery documents are public per RFC 9728, and
      MCP transports authenticate via the MCP authorization spec, never via an app
      session. Apps with a global auth guard exempt these routes with one check:
      if (isMcpPublic(context)) return true. Distinct from the per-tool
      @Public() pipeline bypass.
    • controllerDecorators on McpAuthModule: extra class decorators for the
      generated .well-known controller (both forRoot and forRootAsync),
      mirroring the transport controller option. Decorator application now uses
      standard Reflect.decorate semantics in both factories.
    • Fastify at the SDK boundary: the streamable HTTP and SSE transports now
      unwrap request.raw/reply.raw before handing requests to the MCP SDK (and
      mirror the guard-verified req.auth onto the raw request). Previously the
      Fastify wrappers were passed straight through and the transports were broken
      under @nestjs/platform-fastify — now covered by a real-HTTP e2e that runs
      the streamable transport on BOTH adapters. Generated controllers also thread
      the framework-parsed @Body() to the SDK explicitly.
    • instructions server option: dedicated LLM usage guidance surfaced in
      the initialize result, distinct from description (which remains the
      fallback for back-compat).
    • README quick-start fixed to use the real transport option (was showing a
      nonexistent transports: [{ type }] shape).

@nest-mcp/client@0.3.1

Choose a tag to compare

@github-actions github-actions released this 06 Jul 02:53
e164f61

Patch Changes

  • Updated dependencies [41c7474]
    • @nest-mcp/common@0.6.0

@nest-mcp/gateway@0.2.13

Choose a tag to compare

@github-actions github-actions released this 25 Jun 19:12
a07dddd

Patch Changes

  • Updated dependencies [1275606]
    • @nest-mcp/client@0.3.0

@nest-mcp/client@0.3.0

Choose a tag to compare

@github-actions github-actions released this 25 Jun 19:12
a07dddd

Minor Changes

  • 1275606: Add runtime connection registry to McpClientsService: addConnection(connection),
    getOrCreate(connection), removeConnection(name), and has(name). This lets apps register and
    tear down MCP client connections at runtime — for multi-tenant gateways where upstreams are
    discovered after module init — instead of fixing all connections at forRoot/forRootAsync time.

    addConnection/getOrCreate are idempotent (a connected client with the same name is reused, a
    stale one is replaced, and concurrent first-connects dedupe to a single client); a client whose
    connect() rejects is not registered. Runtime clients join the same collection as the static ones,
    so they are returned by getClient/getClients and disconnected on application shutdown. Purely
    additive — existing getClient/getClients behavior is unchanged.