Skip to content

Releases: btwld/nest-mcp

@nest-mcp/server@0.5.0

Choose a tag to compare

@github-actions github-actions released this 23 Apr 23:25
309a16e

Minor Changes

  • 632d8f0: Add tool exposure / discovery-strategy configuration. Large tool catalogs can now avoid bloating the initial prompt by deferring schemas until they are needed.

    Configure via McpModuleOptions.exposure with a static strategy or a per-client resolver:

    • { kind: 'eager' } — current behaviour, full schemas in tools/list.
    • { kind: 'search', variant: 'bm25' | 'regex', eager?, onAllDeferred? } — annotates deferred tools with _meta.defer_loading: true for Anthropic's Tool Search Tool beta.
    • { kind: 'lazy', eager?, indexToolName?, schemaToolName?, maxBatchSize?, requireDiscovery? } — vendor-neutral: ships list_available_tools and get_tool_schema meta-tools so clients pull definitions on demand.
    • { kind: 'typed-api' } — reserved for Code Mode; throws at runtime in this release.

    Also ships:

    • clientSupports.search(ctx) capability helper (checks the advanced-tool-use-2025-11-20 beta header — no model regex required in user code).
    • preferSearchElseLazy({ eager }) preset resolver for the common per-client tiering case.
    • defineResolver([...kinds], fn) to declare which strategy kinds a custom resolver can produce. ExposureService uses this declaration to skip conservative meta-tool registration when lazy is not reachable.
    • buildClientContext({ transport, request, clientInfo, model }) helper that parses anthropic-beta headers into ClientContext.
    • @Tool({ ..., tags, exposure }) decorator fields. tags feeds selectors like eager: { tags: ['core'] }; exposure: 'eager' | 'deferred' | 'auto' overrides module policy per tool.

    All new fields are optional; existing servers continue to behave as before. No protocol extensions — both the search annotations and the lazy meta-tools work over plain MCP JSON-RPC.

Patch Changes

  • Updated dependencies [632d8f0]
    • @nest-mcp/common@0.3.0

@nest-mcp/gateway@0.2.8

Choose a tag to compare

@github-actions github-actions released this 23 Apr 23:25
309a16e

Patch Changes

  • Updated dependencies [632d8f0]
    • @nest-mcp/common@0.3.0
    • @nest-mcp/server@0.5.0
    • @nest-mcp/client@0.2.7

@nest-mcp/gateway@0.2.7

Choose a tag to compare

@github-actions github-actions released this 23 Apr 21:40
2410580

Patch Changes

  • Updated dependencies [e4e8017]
    • @nest-mcp/client@0.2.6

@nest-mcp/common@0.3.0

Choose a tag to compare

@github-actions github-actions released this 23 Apr 23:25
309a16e

Minor Changes

  • 632d8f0: Add tool exposure / discovery-strategy configuration. Large tool catalogs can now avoid bloating the initial prompt by deferring schemas until they are needed.

    Configure via McpModuleOptions.exposure with a static strategy or a per-client resolver:

    • { kind: 'eager' } — current behaviour, full schemas in tools/list.
    • { kind: 'search', variant: 'bm25' | 'regex', eager?, onAllDeferred? } — annotates deferred tools with _meta.defer_loading: true for Anthropic's Tool Search Tool beta.
    • { kind: 'lazy', eager?, indexToolName?, schemaToolName?, maxBatchSize?, requireDiscovery? } — vendor-neutral: ships list_available_tools and get_tool_schema meta-tools so clients pull definitions on demand.
    • { kind: 'typed-api' } — reserved for Code Mode; throws at runtime in this release.

    Also ships:

    • clientSupports.search(ctx) capability helper (checks the advanced-tool-use-2025-11-20 beta header — no model regex required in user code).
    • preferSearchElseLazy({ eager }) preset resolver for the common per-client tiering case.
    • defineResolver([...kinds], fn) to declare which strategy kinds a custom resolver can produce. ExposureService uses this declaration to skip conservative meta-tool registration when lazy is not reachable.
    • buildClientContext({ transport, request, clientInfo, model }) helper that parses anthropic-beta headers into ClientContext.
    • @Tool({ ..., tags, exposure }) decorator fields. tags feeds selectors like eager: { tags: ['core'] }; exposure: 'eager' | 'deferred' | 'auto' overrides module policy per tool.

    All new fields are optional; existing servers continue to behave as before. No protocol extensions — both the search annotations and the lazy meta-tools work over plain MCP JSON-RPC.

@nest-mcp/client@0.2.7

Choose a tag to compare

@github-actions github-actions released this 23 Apr 23:24
309a16e

Patch Changes

  • Updated dependencies [632d8f0]
    • @nest-mcp/common@0.3.0

@nest-mcp/client@0.2.6

Choose a tag to compare

@github-actions github-actions released this 23 Apr 21:40
2410580

Patch Changes

  • e4e8017: Fix McpClientBootstrap.wireNotificationHandlers crashing with TypeError when a sibling provider's prototype exposes non-function own properties (e.g. useValue: {} providers, whose prototype Object.prototype.__proto__ resolves to null). The notification scan now skips prototype entries whose value is not a function before calling Reflect.getMetadata. Fixes #18.

@nest-mcp/server@0.4.0

Choose a tag to compare

@github-actions github-actions released this 06 Mar 03:58
6555440

Minor Changes

  • 043aa34: Add imports option to McpModule.forFeature() allowing feature modules to import other modules that export providers needed by the feature's tools.

@nest-mcp/gateway@0.2.6

Choose a tag to compare

@github-actions github-actions released this 06 Mar 03:58
6555440

Patch Changes

  • Updated dependencies [043aa34]
    • @nest-mcp/server@0.4.0

@nest-mcp/server@0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Mar 02:08
ce653c7

Minor Changes

  • 5a6ef8e: feat: add advanced transport options and fix logging configuration

    Transport optionsStreamableHttpTransportOptions now supports sessionIdGenerator, enableJsonResponse, eventStore, onsessioninitialized, onsessionclosed, and retryInterval, passed through to the MCP SDK's StreamableHTTPServerTransport.

    LoggingMcpModuleOptions.logging type changed from { level?: string } to false | LogLevel[]. The old type was declared but never consumed. bootstrapStdioApp() now reads logging from McpModule.forRoot() as a fallback when StdioBootstrapOptions.logLevels is not explicitly provided.

    SDK re-exportsEventStore, StreamId, and EventId types are now re-exported from @nest-mcp/server.

    BREAKING: logging type change is compile-time only (the old field was never consumed at runtime). Migration: { level: 'error' }['error'].

Patch Changes

  • Updated dependencies [5a6ef8e]
    • @nest-mcp/common@0.2.0

@nest-mcp/gateway@0.2.5

Choose a tag to compare

@github-actions github-actions released this 04 Mar 02:07
ce653c7

Patch Changes

  • Updated dependencies [5a6ef8e]
    • @nest-mcp/common@0.2.0
    • @nest-mcp/server@0.3.0
    • @nest-mcp/client@0.2.5