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 580f95526f feat(McpAsyncServer): Add non-blocking execution for tools and resources
- Execute tool calls, resource reads and prompt handling in a non-blocking
  manner using Schedulers.boundedElastic(). This prevents blocking operations
  from impacting server responsiveness.
- Added integration tests to verify non-blocking behavior with tools that
  make HTTP calls to external services.

Related to #48
This is  a temp patch until #48 is resolved properly.
2025-01-04 17:56:48 +01:00
.github Add deploy docs GH actions 2025-01-03 13:34:24 +01:00
.mvn/wrapper initial 2024-12-06 16:41:17 +01:00
docs refactor: Improve MCP documentation and transport interfaces 2025-01-03 15:54:43 +01:00
mcp feat(McpAsyncServer): Add non-blocking execution for tools and resources 2025-01-04 17:56:48 +01:00
mcp-docs feat(McpAsyncServer): Add non-blocking execution for tools and resources 2025-01-04 17:56:48 +01:00
spring-ai-mcp Next development version 2025-01-04 08:41:43 +01:00
spring-ai-mcp-sample feat(McpAsyncServer): Add non-blocking execution for tools and resources 2025-01-04 17:56:48 +01:00
.gitattributes initial 2024-12-06 16:41:17 +01:00
.gitignore Rename modules, update .gitignore 2024-12-10 18:46:49 -05:00
LICENSE Initial commit 2024-12-06 16:06:20 +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 Next development version 2025-01-04 08:41:43 +01:00
README.md feat(McpAsyncServer): Add non-blocking execution for tools and resources 2025-01-04 17:56:48 +01:00
settings.xml Rename modules, update .gitignore 2024-12-10 18:46:49 -05:00

Java & Spring MCP

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

Projects

MCP Java SDK

Java implementation of the Model Context Protocol specification. It includes:

  • Synchronous and asynchronous MCP Client and MCP Server implementations
  • Standard MCP operations support (tool discovery, resource management, prompt handling, structured logging). Support for request and notification handling.
  • Stdio and SSE transport implementations.
  • Find more.

Spring AI MCP

The Spring integration module provides Spring-specific functionality:

  • Integration with Spring AI's function calling system
  • Spring-friendly abstractions for MCP clients
  • Auto-configurations (WIP)

Installation

Add the following dependencies to your Maven project:

<!-- For core MCP functionality -->
<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp</artifactId>
    <version>0.5.0-SNAPSHOT</version>
</dependency>

<!-- For Spring AI integration -->
<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>spring-ai-mcp</artifactId>
    <version>0.5.0-SNAPSHOT</version>
</dependency>

This is a milestone release, not available on Maven Central. Add this repository to your POM:

<repositories>
  <repository>
    <id>spring-milestones</id>
    <name>Spring Milestones</name>
    <url>https://repo.spring.io/libs-milestone-local</url>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

Example Demos

Explore these MCP examples in the spring-ai-examples/model-context-protocol repository:

  • SQLite Simple - Demonstrates LLM integration with a database
  • SQLite Chatbot - Interactive chatbot with SQLite database interaction
  • Filesystem - Enables LLM interaction with local filesystem folders and files
  • Brave - Enables natural language interactions with Brave Search, allowing you to perform internet searches.
  • Spring-ai-mcp-sample - Showcases how to create and use MCP servers and clients with different transport modes and capabilities.

Documentation

Development

  • Building from Source
mvn clean install
  • Running Tests
mvn test

Contributing

This is an experimental Spring project. Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a Pull Request

Team

  • Christian Tzolov
  • Dariusz Jędrzejczyk

License

This project is licensed under the Apache License 2.0.