Files
codex/codex-rs/app-server-protocol/schema/json/v2/McpResourceReadParams.json
T
Joe Savona aa1399cbcd Forward caller metadata on MCP resource reads (#59509)
## What changed

Accept an optional `_meta` object on `mcpServer/resource/read` and forward it to MCP `resources/read`, including reads bound to an originating tool call. Update the protocol schemas and generated TypeScript and Python types.

Reject caller metadata containing host-owned `threadId`, `x-codex-turn-metadata`, or `codex/connectionLease` keys. For `codex_apps`, also reserve `connector_id`, `link_id`, and `_codex_apps.resource_uri` to preserve app and account routing.

## Testing

Add integration coverage for metadata forwarding through stdio, hosted app reads with and without a thread, and origin-bound widget reads. Cover rejection of reserved keys and non-object metadata.

GitOrigin-RevId: 227ee0fb5fe15fa2ff2ec66d4d5ae16de8935a8c
2026-11-04 22:55:22 +00:00

76 lines
1.5 KiB
JSON
Generated

{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"McpResourceReadTarget": {
"properties": {
"connectorId": {
"type": "string"
},
"linkId": {
"description": "Null explicitly requests no-auth access, subject to the app's resource policy.",
"type": [
"string",
"null"
]
}
},
"required": [
"connectorId",
"linkId"
],
"type": "object"
}
},
"properties": {
"_meta": {
"additionalProperties": true,
"description": "Additional MCP request metadata. Account and turn routing keys are reserved.",
"type": [
"object",
"null"
]
},
"connectorId": {
"type": [
"string",
"null"
]
},
"originCallId": {
"description": "Originating MCP tool call used to select the resource's app.",
"type": [
"string",
"null"
]
},
"server": {
"type": "string"
},
"target": {
"anyOf": [
{
"$ref": "#/definitions/McpResourceReadTarget"
},
{
"type": "null"
}
],
"description": "Explicit hosted app/account. Omit to retain legacy resource discovery."
},
"threadId": {
"type": [
"string",
"null"
]
},
"uri": {
"type": "string"
}
},
"required": [
"server",
"uri"
],
"title": "McpResourceReadParams",
"type": "object"
}