MCP: errors now carry a code and a next step, and delivery rates count only finished messages
- Errors have a shape you can act on. A failed Motorical tool call now returns
code(for exampleNOT_FOUND,FORBIDDEN,RATE_LIMITED,MOTOR_BLOCK_REQUIRED), a plainerrormessage with no internal route in it, ahintnaming the next move, and the existingstatusanddetails. When a connection covers several Motor Blocks and none was named, the error lists them ascandidates(id and name). Branch oncode, not on the message text. - One Motor Block granted means no
motorBlockIdneeded. Tools that act on a Motor Block now use the single granted block when you leave the id out. With several granted, the error above lists the choices. - Delivery rates use one definition. Overview and provider figures count a message as accepted once the receiving server took it (delivered, processed or complained) and divide by finished messages only (accepted, bounced or failed). Messages still queued or deferred are reported as
pendingand no longer pull the rate down. The response says which basis it used (rateBasis) and when it was generated (generatedAt). - The
200bucket in error-code breakdowns is now labelled "Accepted (exact SMTP reply not recorded)", because the exact reply text is not stored for those messages.
Documentation changed