René's URL Explorer Experiment


Title: feat!: enforce required MCP spec fields in McpSchema; lenient wire deserialization by chemicL · Pull Request #928 · modelcontextprotocol/java-sdk · GitHub

Open Graph Title: feat!: enforce required MCP spec fields in McpSchema; lenient wire deserialization by chemicL · Pull Request #928 · modelcontextprotocol/java-sdk

X Title: feat!: enforce required MCP spec fields in McpSchema; lenient wire deserialization by chemicL · Pull Request #928 · modelcontextprotocol/java-sdk

Description: Motivation and Context Every wire-serialized record in McpSchema now validates spec-required fields at construction time. Wire deserialization is intentionally lenient: a missing required field is replaced with a documented default and a WARN is logged, instead of failing the parse. A required-first builder convention is introduced across the schema so it is no longer possible to obtain a builder that is missing required state. Required-field guards Every wire record's compact constructor asserts non-null (and non-empty for String identifiers like name, uri, uriTemplate, version) on its spec-required components. Passing null now throws IllegalArgumentException at construction time instead of silently producing invalid JSON via @JsonInclude(NON_ABSENT). This applies to the JSON-RPC envelopes, lifecycle types, resource/prompt/tool requests and results, sampling and elicitation, content records, root, complete, logging and progress notifications, and the two CompleteReference implementations. See MIGRATION-2.0.md for the full list. Lenient wire deserialization For each of those records (except JSONRPCResponse.JSONRPCError, which still fails fast) a @JsonCreator static fromJson factory substitutes a documented default for any absent required field — "" for strings, [] for collections, {} for maps, 0 / 0.0 for numerics, INFO for LoggingLevel, USER for SamplingMessage.role, ASSISTANT for CreateMessageResult.role, CANCEL for ElicitResult.action, {values=[]} for CompleteResult.completion — and logs a WARN naming the field and the value used. Application code can still observe a malformed message and react, but the SDK no longer halts the conversation. Builder convention Records that have a builder gain a required-first factory method builder(req1, req2, …); setters for required fields are removed from the builder so it cannot be left in an invalid state. Existing no-arg builder() factories and required-field setters are kept where source compatibility demands it but are marked @deprecated. New builders are also added for several records that previously had none (ProgressNotification, JSONRPCError, CompleteRequest, list/result types, content records, ...). JSON-RPC envelope ergonomics Previously every JSON-RPC envelope had to be constructed via the canonical record constructor and the literal "2.0" string had to be threaded through every call site, e.g. new JSONRPCRequest("2.0", "tools/call", id, params) new JSONRPCResponse("2.0", id, result, null) new JSONRPCResponse("2.0", id, null, new JSONRPCError(code, message, null)) Now: new JSONRPCRequest("tools/call", id, params) // jsonrpc defaulted new JSONRPCNotification("notifications/initialized") // params optional JSONRPCResponse.result(id, result) // factory JSONRPCResponse.error(id, new JSONRPCError(code, message)) // 2-arg error JSONRPCResponse's compact constructor additionally enforces the JSON-RPC invariant that exactly one of result / error is set — previously the SDK could build envelopes that violated the protocol. CompleteReference changes PromptReference.equals/hashCode now key on name only (previously derived from identifier()+type()). Two refs with the same name but different titles now compare equal — code using PromptReference as a map/set key should be audited. PromptReference's compact constructor pins type to "ref/prompt" and logs a WARN if the caller supplies a different non-null value. The legacy two-arg PromptReference(String type, String name) constructor remains @deprecated. ResourceReference's record components are reduced from (type, uri) to (uri) — positional construction breaks. The legacy ResourceReference(String type, String uri) constructor stays @deprecated and ignores type. CompleteReference.identifier() is @deprecated and now returns null via a default method on the interface. Tests / refactor Conformance harness, integration tests, sample apps, and internal callers were migrated to the new builder factories and convenience constructors. No semantic changes to client/server runtime behaviour beyond the McpSchema changes above. Docs MIGRATION-2.0.md: required-field section now covers the broader record set and the lenient-deserialization behaviour; PromptReference WARN behaviour and ResourceReference component reduction are documented; the JSON-RPC envelope section is rewritten to compare the pre-2.0 surface with the new one. CONTRIBUTING.md: the "Evolving wire-serialized records" recipe is split into two cases — adding a new optional field (existing rules) and adding/maintaining a spec-required field (new rules covering Assert in compact constructor, @JsonCreator fromJson with defaults and WARN, required-first builder factory). How Has This Been Tested? Test code that constructed these records without required fields was updated to supply valid values; those tests were testing capability-check or error-path logic that fires after construction, so the missing fields were incidental rather than intentional. Breaking Changes PromptReference.equals/hashCode now key on name only (previously derived from identifier()+type()). Two refs with the same name but different titles now compare equal — code using PromptReference as a map/set key should be audited. PromptReference's compact constructor pins type to "ref/prompt" and logs a WARN if the caller supplies a different non-null value. The legacy two-arg PromptReference(String type, String name) constructor remains @deprecated. ResourceReference's record components are reduced from (type, uri) to (uri) — positional construction breaks. The legacy ResourceReference(String type, String uri) constructor stays @deprecated and ignores type. CompleteReference.identifier() is @deprecated and now returns null via a default method on the interface. Types of changes Bug fix (non-breaking change which fixes an issue) New feature (non-breaking change which adds functionality) Breaking change (fix or feature that would cause existing functionality to change) Documentation update Checklist I have read the MCP Documentation My code follows the repository's style guidelines New and existing tests pass locally I have added appropriate error handling I have added or updated documentation as needed

Open Graph Description: Motivation and Context Every wire-serialized record in McpSchema now validates spec-required fields at construction time. Wire deserialization is intentionally lenient: a missing required field is ...

X Description: Motivation and Context Every wire-serialized record in McpSchema now validates spec-required fields at construction time. Wire deserialization is intentionally lenient: a missing required field is ...

Opengraph URL: https://github.com/modelcontextprotocol/java-sdk/pull/928

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:191bb926-a70e-8207-bd05-0dc8e4474b6b
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9742:3E70D2:122380B:19CFB0E:6A5F9542
html-safe-nonce0161f1eab8c4da5a0e830a80a844239142e0d5a07e3531b6fb9e165d2d214598
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NzQyOjNFNzBEMjoxMjIzODBCOjE5Q0ZCMEU6NkE1Rjk1NDIiLCJ2aXNpdG9yX2lkIjoiNDI5ODM4MzU4MzQ5MTM2NDE2MiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac21554619741039347b803922038e11e72df70bbfb657374c4005215b5f7243b4
hovercard-subject-tagpull_request:3557441502
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/modelcontextprotocol/java-sdk/pull/928/files
twitter:imagehttps://avatars.githubusercontent.com/u/2554306?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/2554306?s=400&v=4
og:image:altMotivation and Context Every wire-serialized record in McpSchema now validates spec-required fields at construction time. Wire deserialization is intentionally lenient: a missing required field is ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None419b66b5f218029570caa18c30987e7dbabe4f5a6767918b33a504d02739c9c7
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/modelcontextprotocol/java-sdk git https://github.com/modelcontextprotocol/java-sdk.git
octolytics-dimension-user_id182288589
octolytics-dimension-user_loginmodelcontextprotocol
octolytics-dimension-repository_id919609219
octolytics-dimension-repository_nwomodelcontextprotocol/java-sdk
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id919609219
octolytics-dimension-repository_network_root_nwomodelcontextprotocol/java-sdk
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasede5b18aa36dbc0b61e03aeb111e84e90fde499b8
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/modelcontextprotocol/java-sdk/pull/928/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fjava-sdk%2Fpull%2F928%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
Code QualityEnforce quality at mergehttps://github.com/features/code-quality
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmodelcontextprotocol%2Fjava-sdk%2Fpull%2F928%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=modelcontextprotocol%2Fjava-sdk
Reloadhttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
Reloadhttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
Reloadhttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
Please reload this pagehttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
modelcontextprotocol https://github.com/modelcontextprotocol
java-sdkhttps://github.com/modelcontextprotocol/java-sdk
Notifications https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fjava-sdk
Fork 984 https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fjava-sdk
Star 3.6k https://github.com/login?return_to=%2Fmodelcontextprotocol%2Fjava-sdk
Code https://github.com/modelcontextprotocol/java-sdk
Issues 135 https://github.com/modelcontextprotocol/java-sdk/issues
Pull requests 147 https://github.com/modelcontextprotocol/java-sdk/pulls
Discussions https://github.com/modelcontextprotocol/java-sdk/discussions
Actions https://github.com/modelcontextprotocol/java-sdk/actions
Projects https://github.com/modelcontextprotocol/java-sdk/projects
Models https://github.com/modelcontextprotocol/java-sdk/models
Security and quality 2 https://github.com/modelcontextprotocol/java-sdk/security
Insights https://github.com/modelcontextprotocol/java-sdk/pulse
Code https://github.com/modelcontextprotocol/java-sdk
Issues https://github.com/modelcontextprotocol/java-sdk/issues
Pull requests https://github.com/modelcontextprotocol/java-sdk/pulls
Discussions https://github.com/modelcontextprotocol/java-sdk/discussions
Actions https://github.com/modelcontextprotocol/java-sdk/actions
Projects https://github.com/modelcontextprotocol/java-sdk/projects
Models https://github.com/modelcontextprotocol/java-sdk/models
Security and quality https://github.com/modelcontextprotocol/java-sdk/security
Insights https://github.com/modelcontextprotocol/java-sdk/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmodelcontextprotocol%2Fjava-sdk%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmodelcontextprotocol%2Fjava-sdk%2Fissues%2Fnew%2Fchoose
chemicLhttps://github.com/chemicL
mainhttps://github.com/modelcontextprotocol/java-sdk/tree/main
json-schema-required-fieldshttps://github.com/modelcontextprotocol/java-sdk/tree/json-schema-required-fields
Conversation 2 https://github.com/modelcontextprotocol/java-sdk/pull/928
Commits 5 https://github.com/modelcontextprotocol/java-sdk/pull/928/commits
Checks 66 https://github.com/modelcontextprotocol/java-sdk/pull/928/checks
Files changed https://github.com/modelcontextprotocol/java-sdk/pull/928/files
Please reload this pagehttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
feat!: enforce required MCP spec fields in McpSchema; lenient wire deserialization https://github.com/modelcontextprotocol/java-sdk/pull/928/files#top
Show all changes 5 commits https://github.com/modelcontextprotocol/java-sdk/pull/928/files
0afacff feat!: enforce required MCP spec fields in McpSchema; lenient wire de… chemicL Apr 20, 2026 https://github.com/modelcontextprotocol/java-sdk/pull/928/commits/0afacffbecb9c50e2790a300923e444760e87e3d
882ae5b Change assertion to be independent of jackson behaviour chemicL Apr 29, 2026 https://github.com/modelcontextprotocol/java-sdk/pull/928/commits/882ae5b29e0ef0a5a9237aa70beeaf4ddafa297b
64fd31d Merge branch 'main' into json-schema-required-fields chemicL May 4, 2026 https://github.com/modelcontextprotocol/java-sdk/pull/928/commits/64fd31d392d535302c1b13a2bc0947dcb21db3db
e406ee5 Fix test assuming localhost chemicL May 4, 2026 https://github.com/modelcontextprotocol/java-sdk/pull/928/commits/e406ee55bdd5478e70d2b686cea62126af244a93
54d34d3 Merge remote-tracking branch 'origin' into json-schema-required-fields chemicL May 4, 2026 https://github.com/modelcontextprotocol/java-sdk/pull/928/commits/54d34d324126e932bb1787e84b2e69e703927f76
Clear filters https://github.com/modelcontextprotocol/java-sdk/pull/928/files
Please reload this pagehttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
Please reload this pagehttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
CONTRIBUTING.md https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055
MIGRATION-2.0.md https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-4509b0cd9031442e088398963335035a55e22de59f1f094872f7d61d5b530e49
ConformanceJdkClientMcpClient.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
DefaultScenario.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-12cc15e92e17191800bb2e2f75f0e24e2dfb3577834f2f071b174aa5a0889cbb
PreRegistrationScenario.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-0012e24dfb807afa62703d730d8976ffbc513dd164ff66965dbfa5eaf2b8ba32
ConformanceServlet.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-e90e2e2f7c81b19b5e65842e992337b8a66c1ce879085493e444b6368a7c5fbe
LifecycleInitializer.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-dcff9fbc0a06ad16d7eaee680a4d5435bc7982378f6cb32519876b836def00a4
McpAsyncClient.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-4a7b3cc0ca46d3a01ae36554a9f4ba0cd914bcdb9e9fa7bbdaad3ed3f1856ad1
McpClient.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-75a351c5e8ebafba95458ed93e5ad4a84fc3b715a296b0a1ece82d8f3caf87ea
McpClientFeatures.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-76de0b733b9c354edd31c769f95ecbeeb210288f7e6800adfbf1814f79b1a5c0
ServerParameters.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-a7bc2bce936809c0c55706240e64f5a22e05658a45d4a45778f0c439ae31c054
DefaultMcpStatelessServerHandler.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-b515bc73d614df9fa4f9458712b95cb50a50c709c4c825778eb9cf24c3ef1cb7
McpAsyncServer.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-43308c9508778eb339f4e3310a6d5ea62b6865e878b60367a810437623efc08f
McpAsyncServerExchange.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-5ccbf0e78f2c3331b314693b6e364245f382988e6b56a61fea52d8e463fa69a4
McpServer.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-197e53631067b9ceace45556d6b017b617a8185e73d3d0cda4b5183eb0854f22
McpServerFeatures.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-effde46208dd9e3559462a27dc322c17c5c564232099bb441d20cfa37a3d872d
McpStatelessAsyncServer.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-619ec8d6e2ba9cdf32ae43946adc3c6cee9209a4742afb8308ed3f8579d28689
McpStatelessServerFeatures.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8136b2e62811c0d9e694be501ebb7487c5e7e52012d449082a44892fd2bb46d9
HttpServletStreamableServerTransportProvider.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-412456de564a90c70920887a33ecdabccee9280519e32c8ae55815539f566ebc
McpClientSession.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-c391950ab40dd868baefb42fa07a7aa3e948737c771313bdf63fb1c5412164ae
McpSchema.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8ac83bd9fbe0774d8d98808d03fc46fab670b2bb8e09a1acc84e543886e61d79
McpServerSession.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-614204d9994ef918c0f537335aa5f5b874317dfb3887a155143d426612d5d716
McpStreamableServerSession.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-ff3cf43c9692022ee390bd61e3d3c54cc52db0cb2e5949a88cc2a055f63febc5
ToolInputValidator.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-5782d3b4c13a65d788f118fed495eef243c60747d9930ee82701af788d61fc7a
LifecycleInitializerPostInitializationHookTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-af14986042a8aaceb544c1043e16e3a86e48fee0cc8f23843d08799bc6831260
LifecycleInitializerTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-6f8d7d3a0d76ff2a0fd9b7e42a9d3436432c324b0436864164ddd993acad2fcd
AsyncToolSpecificationBuilderTest.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-dfd2ca4b8d2e160dd06bf8e2af329e6fb318612c8dd35b4106c28032704f2ed3
McpAsyncServerExchangeTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-ee7fca54782969e3dbfc1327ac6fb45b4078c75e09c6f75c9bb2fc27f9dcbffc
McpSyncServerExchangeTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-1fa9a64b3f22fc52d12638da1e61924c8c8bf500284938771efa70ca7899b3d5
ResourceTemplateListingTest.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-f963d5dd4d8dfa9a76c11e7e35bdf9d03cbbebd456e62a423b9ea3057eac8706
SyncToolSpecificationBuilderTest.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-2018ebca0555638513002eaf432d067c71ee81034a36b08b03358969b7e3530a
JSONRPCRequestMcpValidationTest.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-5589941c77b5b5f87ce84d8f7fd2c780334313242ec8a8680e684907a5e2c677
McpClientSessionTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-614e3810f8ec30c4d2e97eeadbfe67c4c965ad6042770bc06278e151c5ea3b72
PromptReferenceEqualsTest.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8a028596f21968c9de9348acff430699248f15d372231a38b8537a190a688629
GsonMcpJsonMapperTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-bc29ae9c6850657a9e28f3d83d2d06d64879833acbea335ab03471b06abdd035
ToolInputValidatorTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-584571f7d329c15b635d753163da0f7ea87320a0a5a50a92843654bf85730da6
AbstractMcpClientServerIntegrationTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8a7092de2b895ef8883890498686ed9d8e2d24f1ca8ae03bf5c64f1e6f4045a0
AbstractStatelessIntegrationTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-287a7c6129afde303c78c86d8a7bdb451528d670ad4823e75228f8500a7c66dd
AbstractMcpAsyncClientResiliencyTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-2c311cb4ba7e45c53777a034a37a9e7279735c92df0c0ea4444267f443d0d971
AbstractMcpAsyncClientTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-6bdf12ed7cfbacd69dc27ba7f902e9dc81ba04b290ac0fb6d2ea9974798f9d9b
AbstractMcpSyncClientTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-228b57ca46d9d35f611cb5dad1f0aefa8b8fbe073668896add489e9ffa7b8690
AbstractMcpAsyncServerTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-46e273514df1ee6f2ad31bcc4211e3fd74bb108fd690a8019bdc8cb39708e5ce
AbstractMcpSyncServerTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-249586dc3b013e820eee2d23089392fa54b42de5f0ba63ef493dc2a82c2adb94
McpAsyncClientResponseHandlerTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-c0bb6120d6530d451871217e81f218f33b2edbb9e41721e22b1d64f4bc0ba462
McpAsyncClientTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-823a7cd3da740e807169531653e635bde4d02eaf3a0791b1b6b02b9c1be5d836
McpClientProtocolVersionTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-fbbb5bb7a4436cad9f594dcc1ba0c39bc2622226d74f44805f9a26f9d7fc4636
HttpClientSseClientTransportTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-bc1d169381a2b1954328b7d0841dd61e30fcc1e73538d00084c5a0c3add355a6
HttpClientStreamableHttpTransportEmptyJsonResponseTest.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-de6c94734b113f4d3b0b12bffa50de2a25a3bb22e7cdf579ca5101f8d5212f05
HttpClientStreamableHttpTransportErrorHandlingTest.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-b94955efa5489b417324c7d3164135705b2baf9e5d8245f99fb862c2d852390e
HttpClientStreamableHttpTransportTest.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-2a2573b70d82cb7bebbe1653f10957e7a608ea1a58df6b7ee52d5cfcccdf665b
AsyncServerMcpTransportContextIntegrationTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-01f1d2a4069b3bdbfb9d45dbd2fd0acebb235551dbb56dc65d019a6edbb7de35
HttpClientStreamableHttpVersionNegotiationIntegrationTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-42c5d296be9b62b51381759fea2309bbc36c7e549465950d12756eb7ab48839c
SyncServerMcpTransportContextIntegrationTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-d493ca9b7c6cd480c27fbd3fe13aac840c7faa45cc323c9438936196d3110386
HttpServletStatelessIntegrationTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-ff765d37c949924d19d5525fbe0c3ea1364922346bf2e43059c1d048bec45b5a
McpCompletionTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-2b5512fd34144ad196534d45f455f0b60a0a2fd3f8a4025235db7f45a848ae6b
McpServerProtocolVersionTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-46d5ebc3499c31d00d944ca63c757fe284d0b13c1d99e2dd8f9f78850664b4db
ResourceSubscriptionTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-12c8ade1412fd098bc4e8c773de75d48bfae56ae6cedf3681b0ff2082dde878c
ResourceTemplateManagementTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-a7aaac1832b5f7ae7f14d028ee4a5bc63a2bb78b8dd954ee184d562f0f582c8f
ToolInputValidationIntegrationTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-d69eb0abc312f21dcf85090d7486be0d1c8f9b47ca9e2f3229e5e6c7b7efe364
HttpServletSseServerCustomContextPathTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-7049b21400a1f70f2971627cd7826f32310ef0f1866ed0d4e17c9f750bd16a53
CompleteReferenceJsonTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-82715b780496f83069764daa71b71d592439e325cdc77369a16efad021fcdc5c
ContentJsonTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-45101a2dd7dc2ebbd2fce02adec866dd5b886bd4908eeb8a6b23d130c3bc41e4
McpSchemaTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-e474a915d644bb8740238fcb9ede490ae6a7e62e61109b7f1987bc4604b5dae3
SchemaEvolutionTests.java https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-70e401382b21accf1cb274012c2d702c23425990f3a5f2d536de10f2e7ea7fda
CONTRIBUTING.mdhttps://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055
View file https://github.com/modelcontextprotocol/java-sdk/blob/54d34d324126e932bb1787e84b2e69e703927f76/CONTRIBUTING.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/java-sdk/pull/928/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055
MIGRATION-2.0.mdhttps://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-4509b0cd9031442e088398963335035a55e22de59f1f094872f7d61d5b530e49
View file https://github.com/modelcontextprotocol/java-sdk/blob/54d34d324126e932bb1787e84b2e69e703927f76/MIGRATION-2.0.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/java-sdk/pull/928/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-4509b0cd9031442e088398963335035a55e22de59f1f094872f7d61d5b530e49
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-4509b0cd9031442e088398963335035a55e22de59f1f094872f7d61d5b530e49
...c/main/java/io/modelcontextprotocol/conformance/client/ConformanceJdkClientMcpClient.javahttps://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
View file https://github.com/modelcontextprotocol/java-sdk/blob/54d34d324126e932bb1787e84b2e69e703927f76/conformance-tests/client-jdk-http-client/src/main/java/io/modelcontextprotocol/conformance/client/ConformanceJdkClientMcpClient.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/java-sdk/pull/928/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-8dc8bb2f11b2fd53d1a6ba58ecde9c5572102f6ff103a56fd7490cfe22b2754f
...nt/src/main/java/io/modelcontextprotocol/conformance/client/scenario/DefaultScenario.javahttps://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-12cc15e92e17191800bb2e2f75f0e24e2dfb3577834f2f071b174aa5a0889cbb
View file https://github.com/modelcontextprotocol/java-sdk/blob/54d34d324126e932bb1787e84b2e69e703927f76/conformance-tests/client-spring-http-client/src/main/java/io/modelcontextprotocol/conformance/client/scenario/DefaultScenario.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/java-sdk/pull/928/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-12cc15e92e17191800bb2e2f75f0e24e2dfb3577834f2f071b174aa5a0889cbb
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-12cc15e92e17191800bb2e2f75f0e24e2dfb3577834f2f071b174aa5a0889cbb
...ain/java/io/modelcontextprotocol/conformance/client/scenario/PreRegistrationScenario.javahttps://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-0012e24dfb807afa62703d730d8976ffbc513dd164ff66965dbfa5eaf2b8ba32
View file https://github.com/modelcontextprotocol/java-sdk/blob/54d34d324126e932bb1787e84b2e69e703927f76/conformance-tests/client-spring-http-client/src/main/java/io/modelcontextprotocol/conformance/client/scenario/PreRegistrationScenario.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/modelcontextprotocol/java-sdk/pull/928/{{ revealButtonHref }}
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-0012e24dfb807afa62703d730d8976ffbc513dd164ff66965dbfa5eaf2b8ba32
https://github.com/modelcontextprotocol/java-sdk/pull/928/files#diff-0012e24dfb807afa62703d730d8976ffbc513dd164ff66965dbfa5eaf2b8ba32
Please reload this pagehttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
Please reload this pagehttps://github.com/modelcontextprotocol/java-sdk/pull/928/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.