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
id
field and expect a response - Notifications - Omit the
id
field 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: