Commit Graph

136 Commits

Author SHA1 Message Date
Olivier Chafik
4e8bf39a16 Merge branch 'main' into ochafik/zip-tool-outputs 2025-10-23 18:16:05 -07:00
Olivier Chafik
6495199b87 Update src/everything/everything.ts
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-10-23 18:13:34 -07:00
Ola Hungerford
a317804199 Merge pull request #2850 from olaservo/add-sequentialthinking-tests-update-sdk
Add Sequential Thinking tests and update TypeScript SDK versions
2025-10-19 07:30:55 -07:00
Olivier Chafik
61fe1104ee Port PR #17 elicitation improvements to everything server
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>
2025-10-16 19:13:33 +01:00
Olivier Chafik
036384d33c gzip 2025-10-14 21:15:16 +01:00
Olivier Chafik
a2ce06a670 Replace zip tool with gzip for single file compression
- Changed tool from multi-file zip to single-file gzip compression
- Replaced JSZip dependency with node:zlib (built-in)
- Updated schema: renamed ZipResourcesInputSchema to GzipResourceInputSchema
- Tool now accepts single file with name and data URI parameters
- Updated tool name from ZIP_RESOURCES to GZIP_RESOURCE
- Updated environment variables (ZIP_* to GZIP_*)
- Removed jszip from package.json dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 21:10:01 +01:00
Olivier Chafik
25c538948e basic SSRF protection / ZIP_ALLOWED_DOMAINS 2025-10-14 21:00:02 +01:00
Olivier Chafik
5f004caaea zip: reuse existing resource mechanics 2025-10-14 20:26:30 +01:00
Olivier Chafik
c442246903 zip: reuse existing resource mechanics 2025-10-14 20:21:07 +01:00
Olivier Chafik
b801c5f7bf zip: default value for files 2025-10-14 20:20:49 +01:00
Olivier Chafik
382a83af56 added fetchSafely (maxBytes + timeout), MAX_ZIP_FETCH_SIZE, MAX_ZIP_FETCH_TIME_MILLIS 2025-10-14 20:05:23 +01:00
Olivier Chafik
0106f2d165 Merge branch 'main' into ochafik/zip-tool-outputs 2025-10-14 18:04:49 +01:00
Olivier Chafik
0ee497db3e only accept http(s) and data uris in zip tool 2025-10-14 17:48:11 +01:00
olaservo
636b0872cb chore: add cors dependency to package.json 2025-10-12 18:22:08 -07:00
olaservo
f6fbfc4c5e Merge remote-tracking branch 'upstream/main' into add-sequentialthinking-tests-update-sdk 2025-10-12 18:09:41 -07:00
cliffhall
23b8279aaa Do not initiate sampling on resource subscription.
* In everything.ts
  - remove the automatic sampling call in the resource handler for SubscribeRequestSchema
2025-10-10 16:05:26 -04:00
Cliff Hall
f3c5e4f312 Apply suggestion from @cliffhall 2025-10-10 10:55:27 -04:00
Olivier Chafik
ee5f803135 Update everything.ts 2025-10-09 16:13:41 +01:00
Olivier Chafik
bd496fe7d8 remove inlinedResourceLink 2025-10-09 16:07:38 +01:00
Olivier Chafik
893ee9c5b7 Update everything.ts 2025-10-08 19:05:28 +01:00
Olivier Chafik
e1d2f40f95 Update everything.ts 2025-10-08 19:03:25 +01:00
Olivier Chafik
1fb60a5677 Add outputType to zip tool: (inlined /) resource link / resource 2025-10-08 18:54:23 +01:00
Olivier Chafik
d6e218d0f8 Update everything.ts 2025-10-08 17:53:52 +01:00
Olivier Chafik
232258426e add zip tool to everything server (demonstrates consuming and producing URIs, incl. data URIs) 2025-10-08 17:44:24 +01:00
olaservo
0b5f7e17ec Merge branch 'main' of https://github.com/olaservo/servers 2025-10-07 23:06:25 -07:00
olaservo
072e53322b Add tests for sequential thinking and update typescript sdk versions 2025-10-07 23:01:42 -07:00
evalstate
a753cd6f3a fix sampling and elicitation calls for streamable http 2025-09-28 17:40:11 +01:00
Cliff Hall
f8c05004d0 Open CORS for any origin to allow direct browser connection (#2725)
* * In src/everything/sse.ts
  - import cors
  - use cors with config allowing any origin + GET/POST
* In src/everything/streamableHttp.ts
  - import cors
    - use cors with config allowing any origin + GET/POST/DELETE, and exposed protocol headers for client to read
* In package.json and package-lock.json
  - add cors as a dependency

* * In package.json and package-lock.json
  - add @types/cors as dev dependency

* Add caution note for CORS origin wildcard usage

Added caution note for using '*' in CORS origin.

* * In streamableHttp.ts
  - remove remove unintentional console log

* * In streamableHttp.ts
  - add comment about why opening cors for all routes

* * In sse.ts
  - add comment about using * with caution in production for cors

* * In sse.ts
  - indent on cors config

---------

Co-authored-by: shaun smith <1936278+evalstate@users.noreply.github.com>
2025-09-19 01:28:41 +01:00
Cliff Hall
c3093739ca Let Everything's STDIO server use SDK's automatic log level handling (#2706)
- 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
2025-09-11 17:31:49 -07:00
evalstate
4c91d59d16 direct long running tool progress notifications to correct stream 2025-09-03 11:03:06 +02:00
Ola Hungerford
e322daf123 Merge pull request #2669 from cliffhall/auto-log-level-support-in-everything-server
Everything server - fix regression + auto log level handling support
2025-09-02 22:05:12 -07:00
cliffhall
97c6408f04 * in .gitignore
- 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
2025-09-02 17:18:11 -04:00
Ola Hungerford
38de94b7ad fix: update temperature argument type from number to string in everything server docs (#2610)
Fixes issue #474 - documentation mismatch where temperature was documented as (number) but TypeScript SDK only accepts string arguments via z.record(z.string())

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ola Hungerford <olaservo@users.noreply.github.com>
2025-08-29 12:16:50 +01:00
cliffhall
a32f15750d Suppress startElicitation tool if client does not advertise support for elicitation capability
* 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
2025-08-28 14:13:47 -04:00
AjayKumbham
c45c0e26a0 fix: add missing ClientCapabilities import 2025-08-28 22:25:46 +05:30
Kumbham Ajay Goud
d321841519 Update src/everything/everything.ts
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-08-28 22:17:07 +05:30
Kumbham Ajay Goud
2b8ba4ac9f Update src/everything/everything.ts
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-08-28 22:16:52 +05:30
Kumbham Ajay Goud
d279ace6b4 Update src/everything/everything.ts
Co-authored-by: Cliff Hall <cliff@futurescale.com>
2025-08-28 22:16:33 +05:30
AjayKumbham
f51757eedb fix: remove roots from server capabilities - it's a client capability 2025-08-28 16:21:48 +05:30
AjayKumbham
39c1ca8df0 feat: improve roots messaging to distinguish client support vs configuration
- 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
2025-08-27 20:24:23 +05:30
Kumbham Ajay Goud
cf9f66c14e feat: add MCP roots protocol support to everything server
- 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.
2025-08-18 15:31:23 +05:30
claude[bot]
9da43bc355 Fix SSE server crash by starting notification timers only after client connects
- 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>
2025-08-17 17:20:36 +00:00
Ola Hungerford
1028b32573 Merge pull request #2328 from kunalbabre/main
docs: Update VS Code installation instructions to use mcp.json for issue  #2320
2025-08-07 07:28:32 -07:00
evalstate
4c192aee93 Remove out-of-specification notifications/stderr sending 2025-08-02 08:46:33 +01:00
Richard Michael
84a872145c feature: Add a tool with Structured Content and an Output Schema
Tools gained Structured Content in Specification 2025-16-18
https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content

The MCP Inspector is able to handle these outputs.
2025-07-23 11:43:36 -07:00
Richard Michael
9e28ac7fd1 chore: Add serverInfo title, as in specification 2025-06-18 2025-07-23 11:43:33 -07:00
Richard Michael
bb1b418da1 chore: Code organization: consistent tool order everywhere 2025-07-23 11:43:30 -07:00
Richard Michael
7ec0064157 chore: Code organization: completions follow all schema definitions 2025-07-23 11:43:27 -07:00
Richard Michael
114ad51b54 chore: Format for readability 2025-07-23 11:43:24 -07:00
Richard Michael
0d1653fff3 chore: Adjust to format easier to read and maintain 2025-07-23 11:43:20 -07:00