learning_ai_common_plat/packages/mcp-client
saravanakumardb1 8ffe361623 feat(mcp-client): TODO-3 \u2014 expose pluggable logger via McpLogger interface
Previously the @bytelyst/mcp-client package logged directly to the global
`console`, which made its output invisible to consumers running under
Fastify/pino or any structured logger. The scanner exempted the whole
package for console-log findings with a TODO-3 marker; this commit
resolves the marker.

packages/mcp-client/src/index.ts:
  + Added `McpLogger` interface (debug/info/warn/error, variadic) which
    is structurally compatible with the global console, pino, and
    Fastify's `request.log`.
  + Added optional `logger?: McpLogger` field on MCPConfig with a JSDoc
    explaining when consumers should supply their own.
  + MCPClient now stores a `private readonly log: McpLogger` field
    initialised from `config.logger ?? console` in the constructor.
  + All 17 internal logging sites switched from `console.X(...)` to
    `this.log.X(...)`. Mapping: console.log \u2192 this.log.info (pino
    does not have a 'log' method).

scripts/check-rule-violations.sh:
  - Removed the blanket /packages/mcp-client/ exemption from the
    console-log scanner (TODO-3 marker comment retained for history).
  - The ts-any-type exemption stays \u2014 mcp-client still uses `any` at
    the JSON-RPC payload boundary (different concern).

Verification:
  packages/mcp-client \u2192 `pnpm build` clean (tsc).
  `bash scripts/check-rule-violations.sh` \u2192 total still 88, no new
  console-log findings (mcp-client is now genuinely clean instead of
  blanket-exempted).
2026-05-23 19:09:32 -07:00
..
src feat(mcp-client): TODO-3 \u2014 expose pluggable logger via McpLogger interface 2026-05-23 19:09:32 -07:00
package.json feat: add @bytelyst/mcp-client package for reusable MCP integration 2026-05-11 19:10:15 +00:00
tsconfig.json feat: add @bytelyst/mcp-client package for reusable MCP integration 2026-05-11 19:10:15 +00:00