Commit graph typescript-sdk/src
Author SHA1 Message Date
HoberMin
60310e9478
feat: Add error handling tests for InMemoryTransport 2025-07-08 15:21:09 +01:00
anthonjn
6ae4a5727c
add custom headers on initial _startOrAuth call (#318)
* add custom headers on initial _startOrAuth call

* update client/sse.ts: align commonHeaders w/ streamableHttp version

---------

Co-authored-by: Olivier Chafik <ochafik@anthropic.com>
2025-07-07 19:54:44 +01:00
Jerome
61052b1fa8
Add comprehensive tests for onsessionclosed callback in StreamableHTTPServerTransport
• Tests callback is called when session is closed via DELETE
• Tests system works correctly when callback is not provided
• Tests callback is not called for invalid session DELETE requests
• Tests correct session ID is passed when multiple sessions exist
• Follows existing test patterns and includes proper cleanup

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 15:19:40 +01:00
Jerome
52e22ad7cb
Refactor ondelete hook to onsessionclosed in StreamableHTTPServerTransport
- Renamed ondelete callback to onsessionclosed for better clarity
- Moved callback from public property to private field following options pattern
- Added comprehensive JSDoc documentation explaining the callback's purpose
- Updated DELETE request handler to use the new callback structure

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 14:57:41 +01:00
Jerome
afb8971569
Add ondelete hook to StreamableHTTPServerTransport
Adds optional ondelete callback that fires when DELETE request is received, providing the sessionId for cleanup handling.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 14:44:35 +01:00
Jerome
0aea3feb66
Merge branch 'main' into jerome/cors-browser-support 2025-07-07 12:42:08 +01:00
Jerome
3d381df2bc
Added cors settings to simpleStreamableHttp example server 2025-07-07 12:35:52 +01:00
ihrpr
0ff7ae09f9
simplify tests 2025-07-07 11:23:32 +01:00
sunrabbit123
d4bfe556bf
fix: format error with merge
Signed-off-by: sunrabbit123 <qudwls185@naver.com>
2025-07-07 18:50:24 +09:00
오병진
4607f37953
Merge branch 'main' into fix/1 2025-07-07 18:45:13 +09:00
Jerome
bda811a950
feat: Add CORS configuration for browser-based MCP clients
- Add cors middleware to example servers with Mcp-Session-Id exposed
- Add CORS documentation section to README
- Configure minimal CORS settings (only expose required headers)

This enables browser-based clients to connect to MCP servers by properly
exposing the Mcp-Session-Id header required for session management.

Reported-by: Jerome
2025-07-04 16:06:20 +01:00
bhosmer-ant
9879d7a98e
Merge pull request #725 from sushichan044/revert-670-feat/structured-content-with-type-safety
Revert "fix: add type safety for tool output schemas in ToolCallback"
2025-07-03 17:03:31 -04:00
Inna Harper
0b0ea5b1a1
Merge pull request #721 from cliffhall/allow-custom-fetch
Allow custom fetch
2025-07-03 17:17:35 +01:00
ihrpr
d868c4a147
build 2025-07-03 16:01:14 +01:00
ihrpr
25048b9eaf
rename reject to decline 2025-07-03 15:51:16 +01:00
Kentaro Suzuki
a45e4febd9
Revert "fix: add type safety for tool output schemas in ToolCallback" 2025-07-03 22:13:24 +09:00
오병진
f31cefe2fa
Merge branch 'main' into fix/1 2025-07-02 20:24:40 +09:00
cliffhall
f383a9cb8c * In sse.test.ts
- More specific expectations in test "uses custom fetch implementation from options"

* In sse.ts
  - Import FetchLike from transport.ts

* In steramableHttp.ts
  - Import FetchLike from transport.ts
  - Export StartSSEOptions interface for testing

* In streamableHttp.test.ts
  - import StartSSEOptions from streamableHttp.ts
  - use StartSSEOptions instead of any in test "uses custom fetch implementation"

* In transport.ts
  - Add FetchLike function type
2025-07-01 14:00:56 -04:00
Cliff Hall
242c8248f7
Update src/client/streamableHttp.ts
nullish coalescing operator ?? instead of the logical OR operator || to handle the case where this?._eventSourceInit?.fetch or this._fetch might be null or undefined but not falsy

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-07-01 13:34:04 -04:00
Cliff Hall
7d8c061028
Update src/client/streamableHttp.ts
nullish coalescing operator ?? instead of the logical OR operator || to handle the case where this?._eventSourceInit?.fetch or this._fetch might be null or undefined but not falsy

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-07-01 13:33:56 -04:00
Cliff Hall
8e02df150e
Update src/client/sse.ts
nullish coalescing operator ?? instead of the logical OR operator || to handle the case where this?._eventSourceInit?.fetch or this._fetch might be null or undefined but not falsy

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-07-01 13:33:48 -04:00
Cliff Hall
a3c4e28138
Update src/client/streamableHttp.ts
nullish coalescing operator ?? instead of the logical OR operator || to handle the case where this?._eventSourceInit?.fetch or this._fetch might be null or undefined but not falsy

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-07-01 13:33:39 -04:00
Cliff Hall
3300a43742
Update src/client/sse.ts
nullish coalescing operator ?? instead of the logical OR operator || to handle the case where this?._eventSourceInit?.fetch or this._fetch might be null or undefined but not falsy

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-07-01 13:33:31 -04:00
Cliff Hall
e5167cbe20 Update streamableHttp custom fetch test 2025-07-01 13:20:28 -04:00
Glen Maddern
6f5e53b44b
Returning undefined from discoverOAuthMetadata for CORS errors (#717)
* Returning undefined from `discoverOAuthMetadata` for CORS errors

This behaviour was already happening for the root URL, but the new `fetchWithCorsRetry` logic differed.

The issue was if the server returns a 404 for `/.well-known/oauth-authorization-server/xyz` that didn't have the `access-control-allow-origin`, a TypeError was being thrown. There was logic there already to handle a TypeError for a _preflight_ request (cause by custom headers), but not the fallback. I refactored so all combinations return `undefined`.

* Add test for CORS error handling that should return undefined

This test covers the scenario where both the initial request with headers
and the retry without headers fail with CORS TypeErrors. The desired
behavior is to return undefined instead of throwing.

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

Co-Authored-By: Claude <noreply@anthropic.com>

* fix test comment

---------

Co-authored-by: Glen Maddern <glen@glenmaddern.com>
Co-authored-by: Paul Carleton <paulc@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Paul Carleton <paulcarletonjr@gmail.com>
2025-07-01 16:24:27 +01:00
Inna Harper
fb4d07f0ee
Merge pull request #698 from RishiNandha/main
Added Sampling Example to README
2025-06-30 16:31:42 +01:00
ihrpr
a8fa0b342a
build 2025-06-30 16:25:26 +01:00
ihrpr
3d6acd3d9a
add an example and update readme 2025-06-30 16:23:19 +01:00
bhosmer-ant
a40b353fb6
Merge branch 'main' into feat/structured-content-with-type-safety 2025-06-30 10:08:09 -04:00
ihrpr
0db4407d43
Merge branch 'main' into xiaofhua/pid-StdioClientTransport 2025-06-30 14:44:36 +01:00
Inna Harper
7682c4cf4f
Merge pull request #598 from sinedied/fix-empty-schema
fix: missing "properties" property in empty schema
2025-06-30 13:20:42 +01:00
sunrabbit123
afb128d8c9
fix: should pass environment variables correctly
Signed-off-by: sunrabbit123 <qudwls185@naver.com>
2025-06-30 13:35:46 +09:00
sunrabbit123
f43bfccf66
test: fix test code for save test case principal
Signed-off-by: sunrabbit123 <qudwls185@naver.com>
2025-06-30 13:33:02 +09:00
오병진
bd61d2149a
Merge branch 'main' into fix/1 2025-06-30 13:20:32 +09:00
sushichan044
fb303d748f
tidying up 2025-06-28 14:56:02 +09:00
Inna Harper
64a60c4ecd
Merge pull request #571 from garciasdos/main
fix: extra headers when they are a Headers object
2025-06-27 17:29:06 +01:00
Inna Harper
99c75281bd
Merge pull request #661 from kentcdodds/resource-types
add overloads for registerResource method in McpServer class
2025-06-27 17:05:01 +01:00
Felix Weinberger
d54ebee8fe
Merge branch 'main' into hotfix/windows-default-env 2025-06-27 15:50:27 +01:00
ihrpr
53ad0a01d5
fix lint 2025-06-27 14:14:21 +01:00
David Dworken
8bc7374f5e
Fix merge conflict 2025-06-26 16:12:26 -07:00
David Dworken
185fb23f34
Merge branch 'main' into main 2025-06-26 16:10:00 -07:00
Christian Bromann
f76652bb10
Update src/server/sse.test.ts 2025-06-26 10:22:27 -07:00
Christian Bromann
08c767f8e1
Merge branch 'main' into cb/sse-tests 2025-06-26 09:50:41 -07:00
Inna Harper
71d309d0d8
Merge pull request #477 from nichtsam/pr/protocol-overwriting-transport-hooks
Pr/protocol overwriting transport hooks
2025-06-26 14:04:16 +01:00
Konstantin Konstantinov
a94a63a2d0
Merge branch 'main' into request-propagation-in-tools 2025-06-25 16:25:24 +03:00
Konstantin Konstantinov
924c1ce56b
Merge branch 'request-propagation-in-tools' of github.com:KKonstantinov/typescript-sdk into request-propagation-in-tools 2025-06-25 16:25:09 +03:00
Konstantin Konstantinov
606c278668
clean up tests - remove mockRequestInfo 2025-06-25 16:24:30 +03:00
Inna Harper
f733207dae
Merge pull request #640 from cliffhall/report-session-id-per-request
Show session id per request in simpleStreamableHttp example server
2025-06-25 14:18:49 +01:00
Konstantin Konstantinov
384095c30b
Merge branch 'main' into request-propagation-in-tools 2025-06-25 14:16:18 +03:00
Chris Dickinson
05d98bb3a4
feat(shared/auth): support software_statement in OAuthClientMetadata (#696)
Per [Section 3.1.1][ref], `software_statement` is an OPTIONAL member
of the client creation request, which may contain a JWT encoding claims
about client software.

[ref]: https://datatracker.ietf.org/doc/html/rfc7591#section-3.1.1
2025-06-25 11:20:26 +01:00