Emit useful protocol logs, choose appropriate severity levels, and return errors at the correct layer. Separate JSON-RPC failures, protocol errors, tool execution failures, and user-facing messages.