Commit graph

763 commits

Author SHA1 Message Date
Basil Hosmer
9686fc2ead
formatting, more version rollbacks 2025-05-15 10:02:03 -04:00
Basil Hosmer
37dcf753af
remove OUTPUTSCHEMA_CHANGES.md 2025-05-15 10:02:02 -04:00
Basil Hosmer
27d66ef031
back out protocol version change 2025-05-15 10:02:02 -04:00
Basil Hosmer
bb28098d81
feat: add server-side support for tool outputSchema with backward compatibility
- Update McpServer to support registering tools with outputSchema
- Add automatic content generation from structuredContent for backward compatibility
- Add validation to ensure proper usage of structuredContent vs content
- Add comprehensive tests for outputSchema functionality
- Add example servers demonstrating structured output usage
- Update existing test to match new backward compatibility behavior

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-15 10:02:02 -04:00
Basil Hosmer
882e0b7d05
feat: update TypeScript SDK to implement draft spec changes for structured tool output
- Add outputSchema support to Tool interface with proper documentation
- Split CallToolResult into structured and unstructured variants
- Change structuredContent from string to object type
- Add validation that tools without outputSchema cannot return structuredContent
- Add validation that tools with outputSchema must return structuredContent
- Update client to validate structured content as object (no JSON parsing)
- Update tests to use object format for structuredContent
- Add tests for new validation constraints
- Update LATEST_PROTOCOL_VERSION to DRAFT-2025-v2

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-15 10:02:02 -04:00
Basil Hosmer
cf12fe0d83
Add client-side validation for tool output schemas
- Cache tool output schemas when listing tools
- Validate structuredContent against outputSchema during callTool
- Enforce that tools with outputSchema must return structuredContent
- Add json-schema-to-zod dependency for schema conversion
- Add comprehensive tests for validation scenarios

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-15 10:01:58 -04:00
Basil Hosmer
a85fee407a
Add support for outputSchema and optional content fields in tools
- Add outputSchema field to Tool type and RegisteredTool interface
- Make content field optional in CallToolResult
- Update ListToolsRequestSchema handler to include outputSchema in tool list responses
- Add support for structuredContent in tool results
- Update examples to handle optional content field
- Add tests for new outputSchema and structuredContent functionality
- Update ToolCallback documentation to clarify when to use structuredContent vs content

This change enables tools to define structured output schemas and return
structured JSON content, providing better type safety and validation for
tool outputs.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-15 09:58:40 -04:00
ihrpr
41c9996019
Merge pull request #449 from petervandenabeele/fix-readme-toc 1.11.3
Fix Table of Contents in README and markdown linter warnings.
2025-05-15 10:23:47 +01:00
ihrpr
2ee962ca7a
Merge pull request #457 from grimmerk/fix-import-path-in-readme
docs: Fix import paths for ProxyOAuthServerProvider in README
2025-05-15 10:12:17 +01:00
ihrpr
1879922e23
Merge pull request #480 from Boyquotes/patch-1
Fix notificaions in README.md
2025-05-15 10:07:10 +01:00
Xiao Yijun
66dec56467
feat(auth): support custom scope in authorization requests (#491)
* feat(auth): support custom scope in authorization requests

* fix(auth): default to provider's scope if not provided
2025-05-14 18:45:18 +01:00
ihrpr
bac916e804
Merge pull request #399 from its-nikhil/FEAT-auth-ctx-streamable-http
[FEAT] added support for AuthInfo in extra for StreamableHTTPServerTransport
2025-05-14 14:30:28 +01:00
ihrpr
17caa5a6ad
Merge pull request #489 from rafaelportomoura/main
chore: fix cross-spawn version to 7.0.5 (issue: #488)
2025-05-14 10:05:37 +01:00
Rafael Moura
f2fc873859 chore: fix cross-spawn version to 7.0.5 (issue: 488) 2025-05-13 15:37:26 -03:00
ihrpr
68a0ca3505
Merge pull request #466 from modelcontextprotocol/fix/sse-custom-endpoint-paths
fix: preserve custom paths in SSE endpoint URLs
2025-05-12 17:24:46 +01:00
olaservo
2f522bf370
Add failing tests 2025-05-12 11:25:41 -04:00
Basil Hosmer
5a25fe3a6c
fix: preserve custom paths in SSE endpoint URLs
When an SSE client connects with a custom path (e.g., /api/v1/custom/sse),
ensure the endpoint URL maintains the same base path structure but with
/messages instead of /sse. This fixes issues where custom endpoints were
getting collapsed to the root path.

Should fix issues reported in modelcontextprotocol/inspector#313 and #296
Tests demonstrating the issue were added in PR #439

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-12 11:09:12 -04:00
ihrpr
048bc4f755
Merge pull request #482 from modelcontextprotocol/version-1-11-2 1.11.2
Release 1.11.2 - update version
2025-05-12 10:15:56 +01:00
ihrpr
e5909502c2
bump version 2025-05-12 10:09:49 +01:00
Boyquotes
9fe501b9bf
Fix notificaions in README.md
notificaions -> notifications
2025-05-12 07:34:37 +02:00
bhosmer-ant
bced33d8bc
Merge pull request #468 from geelen/fix-tool-annotation-confusion
Fix Zod object detection logic
2025-05-09 18:01:38 -04:00
Basil Hosmer
4a295a4043
remove vendored library tests 2025-05-09 17:48:33 -04:00
Basil Hosmer
3c9496812e
tweak heuristic type test for isZodRawShape
- simpler test for empty object
- only test public zod properties (parse, safeParse)

Confirmed that vendored-library tests still pass. Note that you need the --testPathIgnorePatterns to avoid the __tests__ directory (this is what was breaking the build):
$ npm test -- --testPathIgnorePatterns="vendor"
2025-05-09 17:43:00 -04:00
Grimmer Kang
1e56091c89
Merge branch 'main' into fix-import-path-in-readme 2025-05-09 20:07:11 +08:00
ihrpr
bf7fd4470e
Merge pull request #464 from pcarleton/pcarleton/oauth-scope
feat: Add scope parameter to startAuthorization function
2025-05-09 11:40:37 +01:00
Glen Maddern
b6617dc44c Fix Zod object detection logic
Previously, this check was `value instanceof ZodType`, which breaks if
the user is using a different version of Zod than the library. Instead,
do the check using the structure of the input object rather than its
prototype chain.

Additionally, this adds a vendored version of Zod to use for tests, which
ensures that regressions like this would be caught next time.
2025-05-09 15:26:33 +10:00
ihrpr
35fe98a0d6
Merge pull request #465 from modelcontextprotocol/ihrpr/version-1-11-1 1.11.1
bump version to 1.11.1
2025-05-08 18:07:07 +01:00
ihrpr
51ce07fada
bump version to 1.11.1 2025-05-08 18:05:27 +01:00
bhosmer-ant
2a8efaaa36
Merge pull request #448 from yuna0x0/fix-zod-raw-shape
Fix `isZodRawShape` return false on empty object and add test
2025-05-08 12:58:52 -04:00
Grimmer Kang
c2397b877c docs: Fix import paths for ProxyOAuthServerProvider in README 2025-05-07 03:15:14 +08:00
Peter Vandenabeele
ec7a794f28 Fix ToC in README and markdown linting warnings 2025-05-05 21:53:47 +02:00
yuna0x0
52dc7f1160
Fix isZodRawShape return false on empty object and add test 2025-05-06 01:49:33 +08:00
Paul Carleton
30b5544e8b feat: Add scope parameter to startAuthorization function
- Add optional scope parameter to startAuthorization function signature
- Include scope in authorization URL query parameters when provided
- Update auth function to pass through scope from provider.clientMetadata
- Add tests to verify scope is correctly included/excluded from auth URL

This enhancement allows clients to specify authorization scopes during the OAuth flow.
2025-05-02 08:40:58 +00:00
Justin Spahr-Summers
621ccea997
Merge pull request #438 from modelcontextprotocol/ihrpr/release-1.11.0 1.11.0
Release 1.11.0 - bump version
2025-05-01 18:48:45 +01:00
ihrpr
f250ea5f2b
bump package version 2025-05-01 18:46:30 +01:00
ihrpr
7079818cd2
Merge pull request #437 from hmwildermuth/main
Add stderr access before start
2025-05-01 09:28:00 +01:00
Henry Wildermuth
def417f2df Add stderr access before start 2025-04-30 16:46:35 -07:00
ihrpr
b0255e51ff
Merge pull request #410 from cliffhall/update-protocol-version
Update protocol version
2025-04-29 17:54:30 +01:00
cliffhall
d11673fc2d Add client/server version negotiation tests without mocks
* In src/client/index.test.ts added tests:
  - "should connect new client to old, supported server version"
  - should negotiate version when client is old, and newer server supports its version"
  - "should throw when client is old, and server doesn't support its version"
2025-04-28 18:01:24 -04:00
Cliff Hall
f2f030e479
Merge branch 'main' into update-protocol-version 2025-04-28 17:59:36 -04:00
cliffhall
cada5a4266 Add client/server version negotiation tests without mocks
* In src/client/index.test.ts added tests:
  - "should connect new client to old, supported server version"
  - should negotiate version when client is old, and newer server supports its version"
  - "should throw when client is old, and server doesn't support its version"
2025-04-28 17:58:47 -04:00
ihrpr
7e18c70169
Merge pull request #403 from botengyao/fix-comments-stateless
comment: fix stateless comments that no session-id is included in any responses
2025-04-28 18:39:31 +01:00
ihrpr
dbd439ec57
Merge pull request #406 from botengyao/format-issue
nit: fix the comment format in the streamableHTTP.ts
2025-04-28 18:31:14 +01:00
ihrpr
465ba67194
Merge pull request #409 from mhart/patch-1
Ensure JSONRPCError messages are sent for streamable http
2025-04-28 18:26:57 +01:00
ihrpr
89f7fb7a10
Merge pull request #411 from fredericbarthelet/add-unauthorized-error-test
Add 401 during POST request test case on StreamableHTTP transport to check auth flow
2025-04-28 18:15:48 +01:00
ihrpr
d13a69b031
Merge pull request #417 from c121914yu/main
Update stateless streamable http usecase
2025-04-28 17:46:14 +01:00
archer
73b476d60d
update usecase 2025-04-28 12:35:11 +08:00
Frédéric Barthelet
eb486d5cbc Add auth flow on 401 during POST request test case on StreamableHTTP transport 2025-04-25 16:27:58 +02:00
ihrpr
747369476a
Merge pull request #328 from iamarcel/main
Pass request _meta to request handlers extra param
2025-04-25 14:53:03 +01:00
cliffhall
84dc914231 Update protocol version
* tidy types.test.ts
2025-04-25 09:29:29 -04:00