Commit graph

2 commits

Author SHA1 Message Date
ea1c94b05b fix: wrap non-object values in toolJson, add e2e smoke test
The MCP SDK rejects tools/call results where structuredContent is not a
record — array returns from list_products triggered an MCP error code
-32602. toolJson now wraps arrays/primitives as { result: <value> }.

scripts/smoke-test.ts spawns the built server over stdio, calls each
read-side tool against the live DB and asserts shape — surfaces this
bug class before regressions ship.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 23:38:39 +02:00
f5a630c143 feat(ST-704): status mappers and shared error helpers
- src/status.ts: bidirectional Task/Story status mappers — DB stays
  UPPER_SNAKE, MCP tools expose lowercase (matches REST API contract)
- src/errors.ts: formatZodError, toolError, toolJson and the
  withToolErrors() wrapper so each tool turns thrown exceptions
  (PermissionDenied, ZodError, generic) into structured MCP errors

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 23:02:05 +02:00