Problem
The published npm package (@cognitionai/metabase-mcp-server@1.0.14) has z.object({}) without .passthrough() on dynamic parameters like
dataset_query, visualization_settings, updates, parameters, etc.
Without .passthrough(), Zod silently strips all properties not explicitly declared in the schema. This means objects arrive as {} at
the handler, causing Metabase API to return 400/500 errors.
Current state
- Source code (GitHub main branch, v2.2.0): Already fixed — .passthrough() is present on all dynamic z.object({}) schemas.
- Published npm package (v1.0.14): Still broken — many z.object({}) are missing .passthrough().
Affected schemas in npm v1.0.14
card-tools.js:
- dataset_query: z.object({}).optional() — should be z.object({}).passthrough().optional()
- updates: z.object({}).describe(...) — missing .passthrough()
- parameters: z.object({}).optional() (execute_card, execute_pivot) — missing .passthrough()
dashboard-tools.js:
- parameters: z.array(z.object({})) — should be z.array(z.object({}).passthrough())
- parameter_mappings: z.array(z.object({})) — missing .passthrough()
- series: z.array(z.object({})) — missing .passthrough()
- dashboard: z.object({}) (save_dashboard, save_dashboard_to_collection) — missing .passthrough()
- embedding_params: z.object({}) — missing .passthrough()
database-tools.js:
- schedules: z.object({}).optional() (create + update) — missing .passthrough()
- details: z.object({}).optional() (update_database) — missing .passthrough()
table-tools.js:
- updates: z.object({}).describe(...) (update_table + update_tables) — missing .passthrough()
Broken tools (with npm v1.0.14)
- create_card — cannot create questions (dataset_query stripped)
- update_card — cannot modify questions (updates stripped)
- execute_card / execute_pivot_card_query — parameters stripped
- create_dashboard / update_dashboard — parameters stripped
- add_card_to_dashboard — parameter_mappings/series stripped
- update_dashboard_cards — card configs stripped
- save_dashboard / save_dashboard_to_collection — dashboard object stripped
- update_database / create_database — schedules/details stripped
- update_table / update_tables — updates stripped
Request
Please publish the current main branch (v2.2.0) to npm. The fix is already in the source code but npm users are stuck on the broken
v1.0.14.
Thank you for your work :)
Problem
The published npm package (@cognitionai/metabase-mcp-server@1.0.14) has z.object({}) without .passthrough() on dynamic parameters like
dataset_query, visualization_settings, updates, parameters, etc.
Without .passthrough(), Zod silently strips all properties not explicitly declared in the schema. This means objects arrive as {} at
the handler, causing Metabase API to return 400/500 errors.
Current state
Affected schemas in npm v1.0.14
card-tools.js:
dashboard-tools.js:
database-tools.js:
table-tools.js:
Broken tools (with npm v1.0.14)
Request
Please publish the current main branch (v2.2.0) to npm. The fix is already in the source code but npm users are stuck on the broken
v1.0.14.
Thank you for your work :)