Commit graph

1,094 commits

Author SHA1 Message Date
Olivier Chafik
031dfc2835
[auth]: support oauth client_secret_basic / none / custom methods (#720)
* Allow OAuthClientProvider to control authentication to token endpoint w/ addClientAuthentication (exchange / refresh)

* Include mockProvider in exchangeAuthorization tests.

* feature. Add client_secret_basic and none authentication methods

---------

Co-authored-by: Jared Hanson <jaredhanson@gmail.com>
Co-authored-by: SightStudio <sdm3285@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-09 18:31:09 +01:00
Christian Bromann
8714f21541
fix(server): validate expiresAt token value for non existence (#446)
* fix(server): validate expiresAt token value for non existence

---------

Co-authored-by: Olivier Chafik <ochafik@anthropic.com>
2025-07-09 15:43:33 +01:00
Inna Harper
d681f14b33
Merge pull request #749 from modelcontextprotocol/ochafik/check-addrinuse
Add missing app.listen error handling to server examples
2025-07-09 12:36:19 +01:00
Olivier Chafik
4056c098a1
Add missing app.listen error handling to server examples 2025-07-09 11:23:24 +01:00
Felix Weinberger
22dc79b2a4
Merge pull request #284 from HoberMin/feat/improve-stdio-test-windows-compatibility
Improve stdio test Windows compatibility and refactor command logic

I've pushed updates to address my own comments - thank you @HoberMin for this contribution!
2025-07-08 15:32:55 +01:00
Felix Weinberger
88ede3783e
Address review feedback: move getDefaultServerParameters to test file
- Moved getDefaultServerParameters from stdio.ts to stdio.test.ts since it's only used in tests
- Reverted unrelated changes to inMemory.ts and inMemory.test.ts
- Kept the core Windows compatibility fix for stdio tests

Co-authored-by: HoberMin <99346635+HoberMin@users.noreply.github.com>
2025-07-08 15:21:09 +01:00
HoberMin
a7dc125850
feat: improve stdio test Windows compatibility and refactor command logic 2025-07-08 15:21:09 +01:00
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
Inna Harper
7d7896fc72
Merge pull request #743 from modelcontextprotocol/jerome/feature/ondelete-shttp-hook
Add onsessionclosed hook to StreamableHTTPServerTransport
2025-07-07 17:11:30 +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
1bd56ee46d
Merge pull request #713 from modelcontextprotocol/jerome/cors-browser-support
feat: Add CORS configuration for browser-based MCP clients
2025-07-07 12:44:34 +01:00
Jerome
0aea3feb66
Merge branch 'main' into jerome/cors-browser-support 2025-07-07 12:42:08 +01:00
Jerome
7c374fd81e
Merged the CORS tips 2025-07-07 12:40:28 +01:00
Jerome
3d381df2bc
Added cors settings to simpleStreamableHttp example server 2025-07-07 12:35:52 +01:00
Inna Harper
593b1f7416
Merge pull request #394 from sunrabbit123/fix/1
fix(client): Some mcp server need default env(#393, #196)
2025-07-07 11:28:47 +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
1ac2e5926c
Merge pull request #730 from modelcontextprotocol/basil/bump_version 1.15.0
bump version to 1.15.0
2025-07-03 18:19:22 -04:00
Basil Hosmer
979700a7b7
npm install 2025-07-03 18:13:48 -04:00
Basil Hosmer
42d4abf383
bump version to 1.15 2025-07-03 18:06:29 -04: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
Inna Harper
bf4c5be38e
Merge pull request #728 from modelcontextprotocol/ihrpr/1.14.0 1.14.0
1.14.0
2025-07-03 16:39:10 +01:00
ihrpr
fc197e01f8
1.14.0 2025-07-03 16:09:00 +01:00
Inna Harper
d94386cd70
Merge pull request #727 from modelcontextprotocol/ihrpr/decline-reject
Rename reject to decline
2025-07-03 16:04:25 +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
Cliff Hall
9766edc5ee
Merge pull request #1 from cliffhall/codex/add-custom-fetch-to-streamablehttp.ts-and-sse.ts
Add custom fetch support to transports
2025-07-01 14:09:40 -04: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
Inna Harper
1b14bd7fa4
Merge pull request #719 from modelcontextprotocol/ihrpr/1.13.3 1.13.3
Bump version to 1.13.3
2025-07-01 16:46:01 +01:00
ihrpr
cfec7d9b39
1.13.3 2025-07-01 16:43:50 +01: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
Inna Harper
5e20ee1fc5
Merge pull request #371 from formulahendry/junhan/http-doc
docs: add error handling when it fails to start HTTP server
2025-06-30 15:28:21 +01:00
ihrpr
a02704cd32
Merge branch 'main' into junhan/http-doc 2025-06-30 15:25:06 +01:00