Repository navigation
fix(mcp): recognize implicit form elicitation capability - #757
rudycelekli wants to merge 1 commit into
Conversation
Signed-off-by: RudyCelekli <47457359+rudycelekli@users.noreply.github.com>
|
CI follow-up (Codex assisting on behalf of @rudycelekli): all executed source checks and test shards pass on signed head |
|
Reviewed: implicit-form elicitation truth table is exactly right ({} -> form-only, {form:{}} form, {url:{}} url-only, both -> both, absent/non-object -> none) per MCP form-compatibility. Real Client + InMemoryTransport boundary test (5 cases, pinned SDK 2.3.1) covers it, same client_features shape so no catalog change. APPROVE. Note: packaging lanes show CANCELLED/SKIPPED — worth confirming they pass on merge (change is server-only, no packaging impact expected). |
Review — APPROVESummary
VerificationTruth table in the new code is exactly right:
Note (non-blocking)
|
|
Thanks for the review. Hosted packaging is still incomplete: the Windows native-controls job was cancelled and the dependent lanes skipped. My rerun attempt was denied because GitHub requires repository admin rights. The SDK round-trip tests and required local checks passed, but I am not treating the cancelled/skipped lanes as passing; an upstream rerun is still needed. |
|
Superseded by #815, which integrated this change and has now merged (3af3811). Thanks @rudycelekli for the fix and the thorough verification — much appreciated! |
Problem
binary_sessionreportselicitation_form: falsewhen a request declareselicitation: {}. The MCP protocol defines that declaration as implicit form-mode support. This makes REA's reported client capabilities disagree with the negotiated request and the SDK's compatibility behavior.Change
Recognize implicit form support only when an elicitation capability object is present. A missing capability still reports no support; explicit URL-only declarations remain URL-only. The projection continues to use request-scoped metadata.
Verification
ClientandInMemoryTransportcalling REA's registeredbinary_sessiontool: before the fix, the implicit-form case failed while explicit form, URL-only, and absent-capability controls passed.npm run checkpassed all five tasks, with 124 existing lint warnings and no errors.Protocol reference: MCP elicitation capabilities.
AI assistance: Codex investigated, implemented, and tested this change; an independent agent reviewed the source and protocol interpretation.