J

ModelContextProtocolClient

...
Created 2/25/2025byInnoBridge

Language:

Java

Stars:

1

Forks:

2

ModelContextProtocolClient

A Spring Boot client application that demonstrates different transport methods (WebFlux SSE, Stdio) for communicating with the MCP server.

Setup

  1. Create a .env file 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
  1. Clone https://github.com/InnoBridge/ModelContextProtocolServer

  2. Docker Setup

    1. 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
    
    1. Start the Docker containers:
    sudo docker compose up
    
    1. 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
    
    1. Build and run the client:
    # In another new terminal
    docker exec -it modelcontextprotocolclient-application sh
    ./mvnw spring-boot:run
    

Available Endpoints

WebFlux Transport

  • GET /webflux/tools - List all available tools
  • POST /webflux/calculate - Calculate using the calculator tool
    curl -X POST "http://localhost:8080/webflux/calculate?operation=add&a=5&b=3"
    
  • POST /webflux/weather - Get weather information
    curl -X POST "http://localhost:8080/webflux/weather?location=San%20Francisco&format=celsius"
    

Stdio Transport

  • GET /stdio/tools - List all available tools

  • POST /stdio/calculate - Calculate using the calculator tool

    curl -X POST "http://localhost:8080/stdio/calculate?operation=add&a=5&b=3"
    
  • POST /stdio/weather - Get weather information

    curl -X POST "http://localhost:8080/stdio/weather?location=San%20Francisco&format=celsius"
    
              ### BraveSearch Transport
    
  • GET /tools/bravesearch - List available tools

  • POST /bravesearch - Perform a web search

    curl -X POST "http://localhost:8080/bravesearch?query=spring%20boot"
    

Configuration

The application supports multiple transport configurations:

  1. WebFlux SSE Transport (default)

    • Communicates with the server using Server-Sent Events
    • Server must be running in WebFlux mode
  2. Stdio Transport

    • Communicates with the server using standard input/output
    • Automatically launches the server jar in stdio mode
  3. BraveSearch Transport

    • Communicates with the BraveSearch API
    • Requires BRAVE_SEARCH_API_KEY in .env file
    • Get your API key from Brave Search API
  4. Weather API

    • Used by both WebFlux and Stdio transports for weather information
    • Requires WEATHER_API_KEY in .env file
    • Get your API key from WeatherAPI
Last updated: 2/28/2025

Publisher info

InnoBridge's avatar

InnoBridge

0
followers
0
following
19
repos

More MCP servers built with Java

wildfly-mcp

WildFly MCP server and other tooling to integrate WildFly in AI space

By wildfly-extras4
mcp-server-jina-java

对接jina reader api的mcp服务器

By GARCHENG4
wildfly-weather

Simple MCP Server example

By ehsavoie3