-
Notifications
You must be signed in to change notification settings - Fork 9.3k
Open
Description
Summary
The simulate-research-query tool in the Everything Server currently implements graceful degradation for elicitation on HTTP transport. When running over HTTP, elicitation attempts fail and the task uses a default interpretation instead of prompting the user.
This is because the SDK's sendRequest doesn't work for elicitation over HTTP - the connection is closed after the initial CreateTaskResult response.
Background
The SDK's streaming elicitation API (elicitInputStream) enables elicitation over HTTP by creating a new SSE stream. Once this is available in a released SDK version, we can upgrade to full HTTP elicitation support.
Changes needed
- Update
@modelcontextprotocol/sdkdependency to version with streaming elicitation - Replace try-catch
sendRequestpattern with streaming API insimulate-research-query.ts - Follow spec-compliant pattern:
- Set
input_requiredstatus before elicitation (spec SHOULD) - Use streaming elicitation (works over HTTP)
- Transition back to
workingafter receiving input (spec SHOULD)
- Set
Current behavior
| Transport | Elicitation | Task Completion |
|---|---|---|
| STDIO | ✅ Works | ✅ Works |
| HTTP | ❌ Graceful degradation | ✅ Works (uses default) |
Target behavior
| Transport | Elicitation | Task Completion |
|---|---|---|
| STDIO | ✅ Works | ✅ Works |
| HTTP | ✅ Works (via streaming) | ✅ Works |
Metadata
Metadata
Assignees
Labels
No labels