mirror of
https://github.com/affaan-m/ECC.git
synced 2026-08-17 21:15:40 +02:00
* fix(mcp): accept reserved _meta field in tools/call params The memory MCP server rejected any tools/call whose params contained a key other than name/arguments, returning -32602 "Unknown or missing memory tool." MCP clients (e.g. Claude Code) attach the spec-reserved `_meta` field (such as progressToken) to request params, so every tool call from a compliant client failed and the entire memory MCP surface was unreachable — even though initialize/tools-list and the `ecc memory` CLI kept working. Per the MCP base protocol, `_meta` is reserved for request metadata and must be accepted. Add it to the params key allowlist. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test(mcp): validate _meta shape and cover tools/call param allowlist Address CodeRabbit review on #2670: - Validate params._meta when present: accept metadata objects, reject null, arrays, and scalar values (reuses isRecord). Keeps _meta optional and preserves existing name/arguments/unexpected-key rejection. - Add regression tests: accept _meta with progressToken, reject malformed _meta values, and continue rejecting unrelated top-level params. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>