Mirror of https://github.com/modelcontextprotocol/java-sdk — The official Java SDK for Model Context Protocol servers and clients. Maintained in collaboration with Spring AI
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Christian Tzolov 8a2f97f1b1 feat: add structured output support for MCP tools (#357)
- Add JsonSchemaValidator interface and DefaultJsonSchemaValidator implementation
 - put the JsonSchemaValidator classes into a dedicated spec package
 - add schema caching to DefaultJsonSchemaValidator for better performance
- Extend Tool schema to support outputSchema field for defining expected output structure
- Add structuredContent field to CallToolResult for validated structured responses
- Implement automatic validation of tool outputs against their defined schemas
- Add comprehensive test coverage for structured output validation scenarios
- Add json-schema-validator and json-unit-assertj dependencies for validation and testing
- Update McpServer builders to accept custom JsonSchemaValidator instances
- Ensure backward compatibility with existing tools without output schemas

This implements the MCP specification requirement that tools with output schemas
must provide structured results conforming to those schemas, with automatic
validation and error handling for non-conforming outputs.
https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content

Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-07-13 15:29:56 +02:00
.github Add CI GitHub Action and rename snapshot publish workflow 2025-03-18 13:37:49 +01:00
.mvn/wrapper initial 2024-12-06 16:41:17 +01:00
mcp feat: add structured output support for MCP tools (#357) 2025-07-13 15:29:56 +02:00
mcp-bom Next development version 2025-05-12 15:04:05 +02:00
mcp-spring feat: add structured output support for MCP tools (#357) 2025-07-13 15:29:56 +02:00
mcp-test refactor: deprecate tool spec's arguments-only handler in favor of CallToolRequest (#375) 2025-07-11 11:43:43 +02:00
.gitattributes initial 2024-12-06 16:41:17 +01:00
.gitignore Rename modules, update .gitignore 2024-12-10 18:46:49 -05:00
CODE_OF_CONDUCT.md Add Contributing Guidelines and Code of Conduct 2025-05-16 11:47:39 +02:00
CONTRIBUTING.md Add note about force pushes 2025-05-16 11:47:39 +02:00
LICENSE Update license text and GH actions 2025-01-28 14:36:31 +01:00
migration-0.8.0.md refactor: introduce session-based architecture for MCP server (#31) 2025-03-20 21:49:51 +01:00
mvnw initial 2024-12-06 16:41:17 +01:00
mvnw.cmd initial 2024-12-06 16:41:17 +01:00
pom.xml feat: add structured output support for MCP tools (#357) 2025-07-13 15:29:56 +02:00
README.md typo fix 2025-06-26 13:45:52 +02:00
SECURITY.md Add Contributing Guidelines and Code of Conduct 2025-05-16 11:47:39 +02:00

MCP Java SDK

Build Status

A set of projects that provide Java SDK integration for the Model Context Protocol. This SDK enables Java applications to interact with AI models and tools through a standardized interface, supporting both synchronous and asynchronous communication patterns.

📚 Reference Documentation

MCP Java SDK documentation

For comprehensive guides and SDK API documentation

Spring AI MCP documentation

Spring AI MCP extends the MCP Java SDK with Spring Boot integration, providing both client and server starters. Bootstrap your AI applications with MCP support using Spring Initializer.

Development

Building from Source

./mvnw clean install -DskipTests

Running Tests

To run the tests you have to pre-install Docker and npx.

./mvnw test

Contributing

Contributions are welcome! Please follow the Contributing Guidelines.

Team

  • Christian Tzolov
  • Dariusz Jędrzejczyk

License

This project is licensed under the MIT License.