The Model Context Protocol (MCP) client application utilizes Spring AI and Anthropic Claude models (Or OpenAI). It integrates with MCP protocol-supported servers to enable AI-powered chat interactions.
The MCP Client is a key component in the Model Context Protocol (MCP) architecture, responsible for establishing and managing connections with MCP servers. It implements the client-side of the protocol, handling:
- Protocol version negotiation to ensure compatibility with servers
- Capability negotiation to determine available features
- Message transport and JSON-RPC communication
- Tool discovery and execution
- Resource access and management
- Prompt system interactions
- Optional features like roots management and sampling support
- Supports openai and anthropic models
Java 17+
Maven or Gradle
Docker (Optional)
Anthropic API key Or OpenAI API key
- Anthropic API key from the Anthropic Console.
- OpenAI API key from the OpenAI Console.
git clone <repo-url>
cd spring-ai-mcp-client
The MCP server information must be added to the mcp-servers.json file as follows.
{
"mcpServers":{
"any-mcp-server":{
"command":"node",
"args":[
"any-mcp-server/build/index.js"
]
}
}
}
The application.yml file should be configured as follows:
spring:
ai:
mcp:
client:
enabled: true
name: any-mcp-server # MCP server name
version: 1.0.0
type: SYNC
request-timeout: 20s
stdio:
root-change-notification: true
servers-configuration: classpath:mcp-servers.json # MCP server config such/same as claude desktop configs.
anthropic:
api-key: ${ANTHROPIC_API_KEY}
# openai:
# api-key: ${OPENAI_API_KEY}
server:
port: 8081
mvn clean install
mvn spring-boot:run
Once the application is running, it can be accessed via the following endpoint:
You can start a chat with the following cURL command:
curl -X GET "http://localhost:8081/ai?message=Hello" -H "Accept: application/json"