
spring ai mcp test
Showcases how to integrate Spring AI's support for MCP (Model Context Protocol) within Spring Boot applications, covering both server-side and client-side implementations.
Repository Info
About This Server
Showcases how to integrate Spring AI's support for MCP (Model Context Protocol) within Spring Boot applications, covering both server-side and client-side implementations.
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
MCP Host Project
Description
This project showcases how to integrate Spring AI's support for MCP (Model Context Protocol) within Spring Boot applications, covering both server-side and client-side implementations.
MCP
MCP is a standard that streamlines the management of contextual interactions in AI models, enabling consistent integration with external data sources and tools.
Spring AI MCP extends the MCP Java SDK and provides dedicated Spring Boot starters for both clients and servers.
The MCP client handles communication and connection management with MCP servers.
In this project, we leverage Spring AI to build MCP servers, making their capabilities available to LLMs.
Note that the use of a model supporting TOOLS is required; we are using Llama3.2 via Ollama.
Modules
This project consists of three main modules:
Geocoder Service
- Port: 8081
- Description: Provides latitude and longitude for a given city.
- configuration
public interface Geocoder {
GeoCodeResult geocode(String city) throws Exception;
}
public record GeoCodeResult(double latitude, double longitude) {}
Timezone Service
- Port: 8082
- Description: Provides timezone information for a given latitude and longitude.
- configuration
public interface TimeZoneService {
Optional<TimeZone> getTimeZoneFromLocation(double latitude, double longitude) throws Exception;
}
public record TimeZone(
String id,
String name,
int rawOffset,
int dstSavings
) {}
MCP Host
- Description: Uses the Geocoder and Timezone services via MCP clients and provides a console interface to interact with an LLM.
- configuration
@Bean
CommandLineRunner runner(final ChatClient.Builder chatClientBuilder, List<ToolCallback> toolCallbacks) {
final ChatClient agent = chatClientBuilder.build();
return args -> {
try (Scanner scanner = new Scanner(System.in)) {
while (true) {
System.out.print("\n\nEnter city (or type 'exit' to quit): ");
String city = scanner.nextLine();
if ("exit".equalsIgnoreCase(city)) {
break;
}
String queryTemplate = """
Please use the available tools to find the latitude and longitude for the city `{city}`. Once you have this information,
use the tools to determine and provide all the timezone details for that location in the same language.
""";
String systemTemplate = """
You are an AI assistant specialized in providing geographical information. Your task is to use the provided tools to gather and deliver accurate data.
""";
String llmResponse = agent
.prompt()
.advisors(new SimpleLoggerAdvisor())
.system(systemSpec -> systemSpec.text(systemTemplate))
.user(userSpec -> userSpec.text(queryTemplate).param("city", city))
.tools(toolCallbacks)
.call()
.content();
log.info("\n\n{}", llmResponse);
}
}
};
}
Running the Project
-
Start Geocoder Service:
cd geocoder mvn spring-boot:run -
Start Timezone Service:
cd timezone mvn spring-boot:run -
Start MCP Host:
cd mcp-host mvn spring-boot:run
Usage
- Interact with MCP Host:
- Run the MCP Host application.
- Enter city names in the console.
- The system will provide latitude, longitude, and timezone information for the entered city.
Insertamos image
!image
Quick Start
Clone the repository
git clone https://github.com/oalles/spring-ai-mcp-testInstall dependencies
cd spring-ai-mcp-test
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.