ModelContextProtocolClient
Language:
Java
Stars:
1
Forks:
2
README
ModelContextProtocolClient
A Spring Boot client application that demonstrates different transport methods (WebFlux SSE, Stdio) for communicating with the MCP server.
Setup
-
Create a
.envfile in the root directory with your API keys:BRAVE_SEARCH_API_KEY=your_brave_search_api_key_here WEATHER_API_KEY=your_weather_api_key_here -
Clone https://github.com/InnoBridge/ModelContextProtocolServer
-
Docker Setup
- Update volume mappings in docker-compose.yml:
modelcontextprotocolclient_application ... volumes:
- .:/app
- /var/run/docker.sock:/var/run/docker.sock
- ./local/root:/root
- ../{path to ModelContextProtocolServer repo}:/ModelContextProtocolServer
-
Start the Docker containers:
sudo docker compose up -
Build and run the mcp server:
# In a new terminal sudo docker exec -it modelcontextprotocolserver-application sh cd /app ./mvnw clean install ./mvnw spring-boot:run -
Build and run the client:
# In another new terminal docker exec -it modelcontextprotocolclient-application sh ./mvnw spring-boot:run
- Update volume mappings in docker-compose.yml:
Available Endpoints
WebFlux Transport
GET /webflux/tools- List all available toolsPOST /webflux/calculate- Calculate using the calculator toolcurl -X POST "http://localhost:8080/webflux/calculate?operation=add&a=5&b=3"POST /webflux/weather- Get weather informationcurl -X POST "http://localhost:8080/webflux/weather?location=San%20Francisco&format=celsius"
Stdio Transport
GET /stdio/tools- List all available toolsPOST /stdio/calculate- Calculate using the calculator toolcurl -X POST "http://localhost:8080/stdio/calculate?operation=add&a=5&b=3"POST /stdio/weather- Get weather informationcurl -X POST "http://localhost:8080/stdio/weather?location=San%20Francisco&format=celsius"
BraveSearch Transport
GET /tools/bravesearch- List available toolsPOST /bravesearch- Perform a web searchcurl -X POST "http://localhost:8080/bravesearch?query=spring%20boot"
Configuration
The application supports multiple transport configurations:
-
WebFlux SSE Transport (default)
- Communicates with the server using Server-Sent Events
- Server must be running in WebFlux mode
-
Stdio Transport
- Communicates with the server using standard input/output
- Automatically launches the server jar in stdio mode
-
BraveSearch Transport
- Communicates with the BraveSearch API
- Requires
BRAVE_SEARCH_API_KEYin.envfile - Get your API key from Brave Search API
-
Weather API
- Used by both WebFlux and Stdio transports for weather information
- Requires
WEATHER_API_KEYin.envfile - Get your API key from WeatherAPI
Publisher info
More MCP servers built with Java
Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.