Omit empty _meta on outbound JSON-RPC requests

Closed
GY
1mo ago
+42-2

Fixes #3473

send_raw_request always attached _meta: {} after trace injection. Strict servers (Meta Ads MCP is the report) reject that empty object with HTTP 400.

Inject trace context first, then set _meta only when it still has keys. A progress token still lands in _meta as before.

Tests: test_send_raw_request_omits_empty_meta, test_send_raw_request_keeps_progress_token_meta.