Skip to content

Commit 8d123fb

Browse files
committed
[Doc] Clarify server_context Hash requirement for _meta merging
## Motivation and Context The README documents that request-level `_meta` becomes available to tools and prompts under `server_context[:_meta]`. However, `Server#server_context_with_meta` only merges `_meta` when `server_context` is a `Hash` (or `nil`, in which case a new `{ _meta: ... }` hash is synthesized). When a non-`Hash` value is assigned to `server_context`, `_meta` is silently dropped and tools will not see it under `server_context[:_meta]`. This adds a note clarifying that `server_context` must be kept as a `Hash` if tools need access to `_meta`. ## How Has This Been Tested? Documentation-only change, no behavioral modification. ## Breaking Changes None.
1 parent cf44475 commit 8d123fb

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,11 @@ See the relevant sections below for the arguments they receive.
260260

261261
The MCP protocol supports a special [`_meta` parameter](https://modelcontextprotocol.io/specification/2025-06-18/basic#general-fields) in requests that allows clients to pass request-specific metadata. The server automatically extracts this parameter and makes it available to tools and prompts as a nested field within the `server_context`.
262262

263+
> [!NOTE]
264+
> `_meta` is only merged when `server_context` is a `Hash` (or `nil`, in which case a new `{ _meta: ... }` hash is synthesized).
265+
> If you assign a non-`Hash` value to `server_context`, `_meta` is not merged and tools will not see it
266+
> under `server_context[:_meta]`. Keep `server_context` as a `Hash` if your tools need access to `_meta`.
267+
263268
**Access Pattern:**
264269

265270
When a client includes `_meta` in the request params, it becomes available as `server_context[:_meta]`:

0 commit comments

Comments
 (0)