The _meta Field
All types in the protocol include a _meta field that implementations can use to attach custom information. This includes requests, responses, notifications, and even nested types like content blocks, tool calls, plan entries, and capability objects.
Extension Methods
The protocol reserves any method name starting with an underscore (_) for custom extensions. This allows implementations to add new functionality without the risk of conflicting with future protocol versions.
Extension methods follow standard JSON-RPC 2.0 semantics:
- Requests - Include an
idfield and expect a response - Notifications - Omit the
idfield and are one-way
Custom Requests
In addition to the requests specified by the protocol, implementations MAY expose and call custom JSON-RPC requests as long as their name starts with an underscore (_).
id:
Custom Notifications
Custom notifications are regular JSON-RPC notifications that start with an underscore (_). Like all notifications, they omit the id field:
Advertising Custom Capabilities
Implementations SHOULD use the_meta field in capability objects to advertise support for extensions and their methods: