ModelContextProtocolClient

by InnoBridge

314 downloads
Not rated
GitHub

About

Host with MCP client to call MCP servers for MCP development

Details

Author
InnoBridge
Downloads
314
Categories
Other

- Supports WebFlux SSE, Stdio, and BraveSearch transports
- Exposes REST endpoints for listing tools and invoking actions
- Integrates with a calculator tool and a weather API
- Runs inside Docker alongside an MCP server

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name ModelContextProtocolClient
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Set up a .env file with API keys, clone the required server repository, then use Docker Compose to start both containers. Build and run the server inside one container, then build and run the client inside another. The client exposes HTTP endpoints for each transport to list tools and perform calculations or weather lookups.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "modelcontextprotocolclient": {
            "ModelContextProtocolClient": {
                "command": "docker",
                "args": [
                    "compose",
                    "up"
                ]
            }
        }
    }
}

McpServers

{
    "ModelContextProtocolClient": {
        "command": "docker",
        "args": [
            "compose",
            "up"
        ]
    }
}

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

2. Clone https://github.com/InnoBridge/ModelContextProtocolServer

3. 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

2. Start the Docker containers:

   sudo docker compose up

3. 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

4. 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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.