* In everything.ts
- In elcitiation request,
- Update all fields to have a title property
- Add all 5 enum types supported by the SDK
- legacy titled single select
- titled single select
- titled multi select
- untitled single select
- untitled multi select
- Use faux ids (e.g., hero-1, hero-2) for enum value when titled to illustrate the difference.
Update the SDK from ^1.19.1 to ^1.23.0 in all TypeScript reference servers:
- everything
- filesystem
- memory
- sequentialthinking
Also update everything server for SDK breaking changes:
- Update zod to ^3.25.0 (zod v4 compatibility)
- Fix ToolInput/ToolOutput types to use Tool["inputSchema"] instead of
inferring from zod schemas
- Fix result.content handling to support array format
Co-authored-by: Felix Weinberger <3823880+felixweinberger@users.noreply.github.com>
This commit ports the comprehensive elicitation field type demonstration
from modelcontextprotocol/example-remote-server PR #17 to the everything
server, while maintaining the better UX of the existing implementation.
Changes:
- Expanded elicitation schema to demonstrate 9 field types:
* string (plain and with default values)
* boolean
* email (format: "email")
* uri (format: "uri")
* date (format: "date")
* integer (with min/max and default)
* number (with min/max and default)
* enum with enumNames for human-readable labels
- Added required fields support (name field is required)
- Added 10-minute timeout to elicitation request
- Improved response handling to dynamically show all provided fields
- Updated tool description to reflect comprehensive field type support
- Removed unused requestElicitation helper function (inlined implementation)
- Removed unused ElicitRequest import
The implementation follows PR #17's approach of directly using
extra.sendRequest() while preserving the user-friendly response handling
with emojis and formatted output from the original implementation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- bump TS SDK to 1.18.0
* In src/everything/stdio.ts
- remove logging related imports
- remove custom log-level handling, now handled automatically by the SDK
* In src/everything/everything.ts
- remove console.log of sessionId
- add .idea/ for Jetbrains IDEs
* in everything.ts
- remove import of SetLevelRequestSchema
- remove logLevel var
- add sessionId var
- in startNotificationIntervals function
- add optional sid argument
- set sessionId to sid
- define messages to be sent, adding sessionId if present
- remove setRequestHandler call for SetLevelRequestSchema
- replace server.notification calls that sent "notifications/message" objects with calls to server.sendLoggingMessage, passing just the parameters and sessionId.
* In package.json & package-lock.json
- bump TS SDK version to 1.17.5
* In sse.ts, pass transport.sessionId to startNotificationIntervals call
* In stdio.ts
- destructure startNotificationIntervals from createServer call
- implement custom logging request handler and server.sendLoggingMessage implementation, as a
workaround for the fact that the SDK's automatic log level handling currently only tracks requested log level by session id. This will be fixed in a followup PR for the SDK
- call the startNotificationIntervals function after connecting the transport to the server
* In streamableHttp.ts
- destructure startNotificationIntervals from createServer call
- call startNotificationIntervals passing the transport.sessionId after connecting the transport to the server
* In everything.ts
- remove inappropriate elicitation entry from server capabilities (this is a client capability)
- When creating tool list, only add `ToolName.ELICITATION` definition to tools array if `clientCapabilities` includes `elicitation`
* In package.json / package-lock.json
- bump @modelcontextprotocol/sdk to "^1.17.4", adding `elicitation` to `ClientCapabilities` type
- Add clientSupportsRoots tracking variable
- Set clientSupportsRoots during initialization based on client capabilities
- Update listRoots tool to provide clearer messaging:
- Specific message when client doesn't support roots protocol
- Different message when client supports roots but none are configured
- Improves user experience by clearly explaining the different scenarios
Addresses feedback from @olaservo in PR review
- Add roots capability declaration with listChanged: true
- Implement roots/list_changed notification handler
- Add initialization handler to request initial roots from client
- Add new listRoots tool to demonstrate roots functionality
- Add comprehensive logging for roots protocol events
- Update README.md with roots documentation
Resolves#2552
The everything server now demonstrates all MCP features including the roots protocol.
This provides a complete reference implementation for client developers to test
their roots protocol implementation against, even though this server doesn't
access files directly.
- Move setInterval calls from server creation to startNotificationIntervals function
- Only start notification timers when a client actually connects to the SSE server
- Prevents 'Not connected' error when server tries to send notifications before client connection
- Fixes issue where server crashes after 5 seconds when running 'npx @modelcontextprotocol/server-everything sse'
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
- Implement new tool that returns configurable number of resource links (1-10)
- Each link includes URI, name, description, and MIME type from available resources
- Minor formatting fixes for trailing commas and whitespace
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
In everything.ts
- add a 10 second interval for sending 'notifications/stderr' messages to the client
This was created in order to test the display and clearing of stderr messages in the client.
- see https://github.com/modelcontextprotocol/inspector/pull/286
- Add new tool 'getResourceReference' that returns embedded resources
- Add new prompt 'resource_prompt' demonstrating embedded resources in prompts
- Update documentation with new tool and prompt details
- Create CLAUDE.md with development guidelines
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>