Commit graph typescript-sdk/src
Author SHA1 Message Date
Justin Spahr-Summers
dbf560f24a
Don't double-add completion handler 2025-01-22 11:41:11 +00:00
Justin Spahr-Summers
eba6461567
Failing test case for double completion handlers 2025-01-22 11:41:05 +00:00
Justin Spahr-Summers
2590d40e74
Fix registering multiple tools/resources/prompts
Request handlers were being re-registered every time a new tool/resource/prompt was added, which would fail since the handlers were already registered. Now we track whether handlers have been initialized and only register them once.

Added tests to verify that multiple registrations work correctly.

Resolves #124.
2025-01-21 09:14:14 +00:00
Justin Spahr-Summers
5a6823a0db
Stick with %20, don't replace with + 2025-01-16 11:24:39 +00:00
Justin Spahr-Summers
2e35b15353
Merge branch 'main' into justin/simplified-api 2025-01-13 20:34:08 +00:00
Kalvin Chau
1bb51d0fca style: remove private getter for getInstructions 2025-01-13 09:50:02 -08:00
Kalvin Chau
54472d2ae1 feat: add optional instructions field to server _oninitialize 2025-01-13 09:09:05 -08:00
Justin Spahr-Summers
7629c70ef9
Remove unused import 2025-01-08 22:02:00 +00:00
Justin Spahr-Summers
2289dbc0d0
Factor out convenience APIs into another class 2025-01-08 21:59:38 +00:00
Jerome
e72ff8d97f
Merge pull request #115 from modelcontextprotocol/jerome/fix/clean-stdio-shutdown
Added clean shutdown + tests
2025-01-08 18:07:28 +00:00
Justin Spahr-Summers
189cc84113
Autocomplete on resource template variables 2025-01-08 15:46:43 +00:00
Justin Spahr-Summers
8635c6384f
Autocomplete on prompt arguments 2025-01-08 15:19:16 +00:00
Justin Spahr-Summers
02fa78728c
Add completable wrapper for Zod schemas 2025-01-08 15:00:33 +00:00
Justin Spahr-Summers
9b95fa8203
Server.prompt() convenience API 2025-01-08 14:20:44 +00:00
Justin Spahr-Summers
5ddfa0a0d9
Add extra to resource request handlers 2025-01-08 14:20:43 +00:00
Justin Spahr-Summers
f090c93127
Move Server helper definitions to bottom of file 2025-01-08 13:47:38 +00:00
Justin Spahr-Summers
8356cb900c
Create ResourceTemplate class and move listCallback into it 2025-01-08 13:44:12 +00:00
Justin Spahr-Summers
45f99e6590
Make Variables non-optional with resource template URIs 2025-01-07 22:36:20 +00:00
Justin Spahr-Summers
3f9acec31e
Add a test for listCallback 2025-01-07 22:10:05 +00:00
Justin Spahr-Summers
1970509131
Method documentation 2025-01-07 22:05:55 +00:00
Justin Spahr-Summers
098266ae22
Add simplified API for registering resources and resource templates 2025-01-07 22:01:41 +00:00
Justin Spahr-Summers
e4b382044e
Add UriTemplate.toString 2025-01-07 22:01:40 +00:00
Justin Spahr-Summers
1e040e9932
Add method to determine if a URI is a template or not 2025-01-07 22:01:40 +00:00
Justin Spahr-Summers
dc77d9cf47
More thorough handling of edge cases/pathologies 2025-01-07 18:40:53 +00:00
Justin Spahr-Summers
7f0cf7305d
URI Template parser and matcher 2025-01-07 16:42:13 +00:00
Justin Spahr-Summers
bb28c9b519
Minor tweak to make test code more idiomatic 2025-01-07 15:57:10 +00:00
Justin Spahr-Summers
aac1959855
Errors invoking tools should be erroneous tool results, not McpErrors 2025-01-07 14:53:56 +00:00
Justin Spahr-Summers
ff22f255ad
Tests for Server.tool 2025-01-07 14:44:23 +00:00
Justin Spahr-Summers
b538731af0
Fix string type check 2025-01-07 14:40:53 +00:00
Justin Spahr-Summers
c14a5d44bf
Tests for mergeCapabilities 2025-01-07 14:34:00 +00:00
Justin Spahr-Summers
7ac5a5fcf5
Automatically register tools capability 2025-01-07 14:34:00 +00:00
Justin Spahr-Summers
1506bd1b51
Allow capabilities to be dynamically registered after initialization 2025-01-07 14:34:00 +00:00
Justin Spahr-Summers
4bf5c5358a
Assert tool request handlers do not already exist 2025-01-07 14:34:00 +00:00
Justin Spahr-Summers
f8f5686966
Server.tool() convenience API 2025-01-07 14:33:56 +00:00
Justin Spahr-Summers
0c5d6c4f18
Missed one 2025-01-06 21:37:30 +00:00
Jerome
a2157dcbd4
Removed unneeded test 2025-01-03 19:09:11 +00:00
Jerome
8a077474a6
Pause stdin if we were the only listeners to the data events 2025-01-03 19:05:38 +00:00
Jerome
6ebf67ea73
Don't remove drain listeners 2025-01-03 18:47:07 +00:00
Jerome
7c91349363
Added clean shutdown + tests 2025-01-03 16:29:06 +00:00
Justin Spahr-Summers
b5711be1ad
Can just reuse z.infer instead of using ReturnType 2025-01-03 14:01:17 +00:00
Justin Spahr-Summers
73ea68cf13
Disable ESLint warning 2025-01-03 13:49:07 +00:00
Justin Spahr-Summers
9b5efc4286
Recursively flatten types for better inference 2025-01-03 13:47:19 +00:00
Sumitesh Naithani
ca319138b9 chore: pulled upstream origin branch 2025-01-03 07:36:18 +05:30
Sumitesh Naithani
21e3d465ca chore: updated documentation comment in ErrorCode enum and set protocol test timeout to 0 2025-01-03 06:59:01 +05:30
Chris Dickinson
d55f966562
feat(client/sse): add {EventSource,Request}Init options param
This enables users of the SSE client to optionally send cookie-based credentials
to the event source MCP server using `EventSourceInit` [1] parameters and set
the outgoing request headers for the POST call.

[1]: https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource#options
2024-12-30 23:11:00 -08:00
Sumitesh Naithani
8fa0a5c88b test: added tests for checking correct error codes are thrown on request timeout and connection closed scenarios 2024-12-23 00:10:14 +05:30
Sumitesh Naithani
d77cd0deb3 style: fixed linting issues 2024-12-22 23:20:35 +05:30
Sumitesh Naithani
e7d08c738e fix(protocol): restrict SDK error codes to JSON-RPC server error range
The SDK's custom error codes were previously using arbitrary negative numbers
(-1, -2) which could conflict with application-specific error codes. This change:

- Updates ConnectionClosed from -1 to -32000
- Updates RequestTimeout from -2 to -32001
- Keeps standard JSON-RPC error codes unchanged
- Adds documentation explaining the server error range usage

This modification ensures compliance with the JSON-RPC 2.0 specification, which
reserves -32000 to -32099 for implementation-defined server errors. This change
allows applications to freely use other error code ranges without potential
conflicts with SDK-generated errors.

Issue: #85
2024-12-22 23:12:22 +05:30
Jerome
881a0ce0e8
Destructured progress and total from notification params object 2024-12-16 16:50:05 +00:00
Justin Spahr-Summers
1f835e044f
Whitespace tweaks 2024-12-09 13:43:17 +00:00