docs(compliance): Python Pydantic guidance for idempotency_key injection on read tools#4405
Draft
bokelley wants to merge 1 commit into
Draft
docs(compliance): Python Pydantic guidance for idempotency_key injection on read tools#4405bokelley wants to merge 1 commit into
bokelley wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #4399
The compliance runner injects
idempotency_keyon every MCP tool call it dispatches — including read tools likeget_productsandget_adcp_capabilities. Python sellers using FastMCP or strict Pydantic model validation hit a validation error before their handler runs. This PR adds implementation guidance in the three places Python sellers are most likely to read before or during compliance testing. The normative spec change (sellers MUST NOT use strict MCP parameter validation — a transport-layer MUST) is a 3.1.x item tracked in the issue; this PR ships the workaround guidance that unblocks sellers today.Non-breaking justification: docs-only addition (MDX pages + empty changeset). No schema changes, no server changes. Existing sellers are unaffected; new Python sellers gain the guidance before hitting the failure.
Pre-PR review:
TypeErrorfor function-based dispatch vsValidationError/extra_forbiddenfor model-based), Go qualifier (fixed: now scoped to JS/TS with a Go note), and Python 3.9 compat (fixed:Optional[str]with import)Shipped in this PR: Known-ambiguities entry, Warning in
get-test-ready.mdx(Step 4), Note inbuild-an-agent.mdxPython tab.Remaining in #4399: Normative 3.1.x spec addition (sellers MUST use permissive MCP parameter handling — transport-layer MUST). Issue stays open as the tracker for the normative change.
Session: https://claude.ai/code/session_01AbiTiX3kZd4cGBkeV2Nmgk
Generated by Claude Code