diff --git a/docs/tool-reference.md b/docs/tool-reference.md index d7cbc2f4..c300c341 100644 --- a/docs/tool-reference.md +++ b/docs/tool-reference.md @@ -314,6 +314,7 @@ so returned values have to JSON-serializable. **Parameters:** +- **includePreviousNavigations** (boolean) _(optional)_: Whether to include messages from previous navigations. - **pageIdx** (integer) _(optional)_: Page number to return (0-based). When omitted, returns the first page. - **pageSize** (integer) _(optional)_: Maximum number of messages to return. When omitted, returns all requests. - **types** (array) _(optional)_: Filter messages to only return messages of the specified resource types. When omitted or empty, returns all messages. diff --git a/src/McpContext.ts b/src/McpContext.ts index fd5e7536..07f107e6 100644 --- a/src/McpContext.ts +++ b/src/McpContext.ts @@ -145,9 +145,11 @@ export class McpContext implements Context { return this.#networkCollector.getData(page, includePreviousNavigations); } - getConsoleData(): Array { + getConsoleData( + includePreviousNavigations?: boolean, + ): Array { const page = this.getSelectedPage(); - return this.#consoleCollector.getData(page); + return this.#consoleCollector.getData(page, includePreviousNavigations); } getConsoleMessageStableId(message: ConsoleMessage | Error): number { diff --git a/src/McpResponse.ts b/src/McpResponse.ts index f937519c..584a2d49 100644 --- a/src/McpResponse.ts +++ b/src/McpResponse.ts @@ -46,6 +46,7 @@ export class McpResponse implements Response { include: boolean; pagination?: PaginationOptions; types?: string[]; + includePreviousNavigations?: boolean; }; setIncludePages(value: boolean): void { @@ -87,6 +88,7 @@ export class McpResponse implements Response { value: boolean, options?: PaginationOptions & { types?: string[]; + includePreviousNavigations?: boolean; }, ): void { if (!value) { @@ -104,6 +106,7 @@ export class McpResponse implements Response { } : undefined, types: options?.types, + includePreviousNavigations: options?.includePreviousNavigations, }; } @@ -228,7 +231,9 @@ export class McpResponse implements Response { let consoleListData: ConsoleMessageData[] | undefined; if (this.#consoleDataOptions?.include) { - let messages = context.getConsoleData(); + let messages = context.getConsoleData( + this.#consoleDataOptions.includePreviousNavigations, + ); if (this.#consoleDataOptions.types?.length) { const normalizedTypes = new Set(this.#consoleDataOptions.types); diff --git a/src/tools/ToolDefinition.ts b/src/tools/ToolDefinition.ts index 0e0691be..d36d473d 100644 --- a/src/tools/ToolDefinition.ts +++ b/src/tools/ToolDefinition.ts @@ -56,6 +56,7 @@ export interface Response { value: boolean, options?: PaginationOptions & { types?: string[]; + includePreviousNavigations?: boolean; }, ): void; setIncludeSnapshot(value: boolean): void; diff --git a/src/tools/console.ts b/src/tools/console.ts index 2a56efb7..324e04a1 100644 --- a/src/tools/console.ts +++ b/src/tools/console.ts @@ -66,12 +66,18 @@ export const listConsoleMessages = defineTool({ .describe( 'Filter messages to only return messages of the specified resource types. When omitted or empty, returns all messages.', ), + includePreviousNavigations: zod + .boolean() + .default(false) + .optional() + .describe('Whether to include messages from previous navigations.'), }, handler: async (request, response) => { response.setIncludeConsoleData(true, { pageSize: request.params.pageSize, pageIdx: request.params.pageIdx, types: request.params.types, + includePreviousNavigations: request.params.includePreviousNavigations, }); }, });