Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    My Mcp Stdio Server

    Spring AI MCP Weather STDIO Server - A Spring Boot starter project demonstrating how to build a Model Context Protocol (MCP) server that provides weather-related tools

    1 stars
    Java
    Updated Jun 27, 2025

    Table of Contents

    • Prerequisites
    • About Spring AI MCP Server Boot Starter
    • Project Structure
    • About Spring AI MCP Server Boot Starter
    • Project Structure
    • Building and Running
    • Tool Implementation
    • Available Tools
    • 1. Weather Forecast Tool
    • 2. Weather Alerts Tool
    • Client Integration
    • Java Client Example
    • Create MCP Client Manually
    • Use MCP Client Boot Starter
    • Claude Desktop Integration
    • Configuration
    • Application Properties
    • Key Configuration Notes
    • Additional Resources

    Table of Contents

    • Prerequisites
    • About Spring AI MCP Server Boot Starter
    • Project Structure
    • About Spring AI MCP Server Boot Starter
    • Project Structure
    • Building and Running
    • Tool Implementation
    • Available Tools
    • 1. Weather Forecast Tool
    • 2. Weather Alerts Tool
    • Client Integration
    • Java Client Example
    • Create MCP Client Manually
    • Use MCP Client Boot Starter
    • Claude Desktop Integration
    • Configuration
    • Application Properties
    • Key Configuration Notes
    • Additional Resources

    Documentation

    Spring AI MCP Weather STDIO Server

    A Spring Boot starter project demonstrating how to build a Model Context Protocol (MCP) server that provides weather-related tools using the National Weather Service (weather.gov) API. This project showcases the Spring AI MCP Server Boot Starter capabilities with STDIO transport implementation.

    For more information, see the MCP Server Boot Starter reference documentation.

    Prerequisites

    • Java 17 or later
    • Maven 3.6 or later
    • Understanding of Spring Boot and Spring AI concepts
    • (Optional) Claude Desktop for AI assistant integration

    About Spring AI MCP Server Boot Starter

    The spring-ai-mcp-server-spring-boot-starter provides:

    • Automatic configuration of MCP server components
    • Support for both synchronous and asynchronous operation modes
    • STDIO transport layer implementation
    • Flexible tool registration through Spring beans
    • Change notification capabilities

    Project Structure

    About Spring AI MCP Server Boot Starter

    The spring-ai-mcp-server-spring-boot-starter provides:

    • Automatic configuration of MCP server components
    • Support for both synchronous and asynchronous operation modes
    • STDIO transport layer implementation
    • Flexible tool registration through Spring beans
    • Change notification capabilities

    Project Structure

    code
    src/
    ├── main/
    │   ├── java/
    │   │   └── org/springframework/ai/mcp/sample/server/
    │   │       ├── McpServerApplication.java    # Main application class with tool registration
    │   │       └── WeatherService.java          # Weather service implementation with MCP tools
    │   └── resources/
    │       └── application.properties           # Server and transport configuration
    └── test/
        └── java/
            └── org/springframework/ai/mcp/sample/client/
                └── ClientStdio.java             # Test client implementation

    Building and Running

    The server uses STDIO transport mode and is typically started automatically by the client. To build the server jar:

    bash
    ./mvnw clean install -DskipTests

    Tool Implementation

    The project demonstrates how to implement and register MCP tools using Spring's dependency injection and auto-configuration:

    java
    @Service
    public class WeatherService {
        @Tool(description = "Get weather forecast for a specific latitude/longitude")
        public String getWeatherForecastBrazil(
            double latitude,   // Latitude coordinate
            double longitude   // Longitude coordinate
        ) {
            // Implementation
        }
    
        @Tool(description = "Get weather alerts for a US state")
        public String getAlerts(
            String state  // Two-letter US state code (e.g., CA, NY)
        ) {
            // Implementation
        }
    }
    
    @SpringBootApplication
    public class McpServerApplication {
        @Bean
        public List weatherTools(WeatherService weatherService) {
            return ToolCallbacks.from(weatherService);
        }
    }

    The auto-configuration automatically registers these tools with the MCP server. You can have multiple beans producing lists of ToolCallbacks, and the auto-configuration will merge them.

    Available Tools

    1. Weather Forecast Tool

    java
    @Tool(description = "Get weather forecast for a specific latitude/longitude")
    public String getWeatherForecastBrazil(
        double latitude,   // Latitude coordinate
        double longitude   // Longitude coordinate
    ) {
        // Returns detailed forecast including:
        // - Temperature and unit
        // - Wind speed and direction
        // - Detailed forecast description
    }
    
    // Example usage:
    CallToolResult forecast = client.callTool(
        new CallToolRequest("getWeatherForecastBrazil",
            Map.of(
                "latitude", 47.6062,    // Seattle coordinates
                "longitude", -122.3321
            )
        )
    );

    2. Weather Alerts Tool

    java
    @Tool(description = "Get weather alerts for a US state")
    public String getAlerts(
        String state  // Two-letter US state code (e.g., CA, NY)
    ) {
        // Returns active alerts including:
        // - Event type
        // - Affected area
        // - Severity
        // - Description
        // - Safety instructions
    }
    
    // Example usage:
    CallToolResult alerts = client.callTool(
        new CallToolRequest("getAlerts",
            Map.of("state", "NY")
        )
    );

    Client Integration

    Java Client Example

    Create MCP Client Manually

    java
    // Create server parameters
    ServerParameters stdioParams = ServerParameters.builder("java")
        .args("-Dspring.ai.mcp.server.transport=STDIO",
              "-Dspring.main.web-application-type=none",
              "-Dlogging.pattern.console=",
              "-jar",
              "target/my-mcp-stdio-server-0.0.1-SNAPSHOT.jar")
        .build();
    
    // Initialize transport and client
    var transport = new StdioClientTransport(stdioParams);
    var client = McpClient.sync(transport).build();

    The ClientStdio.java demonstrates how to implement an MCP client manually.

    For a better development experience, consider using the MCP Client Boot Starters. These starters enable auto-configuration of multiple STDIO and/or SSE connections to MCP servers. See the starter-default-client and starter-webflux-client projects for examples.

    Use MCP Client Boot Starter

    Use the starter-default-client to connect to the weather starter-stdio-server:

    1. Follow the starter-default-client readme instructions to build a mcp-starter-default-client-0.0.1-SNAPSHOT.jar client application.

    2. Run the client using the configuration file:

    bash
    java -Dspring.ai.mcp.client.stdio.connections.server1.command=java \
         -Dspring.ai.mcp.client.stdio.connections.server1.args=-jar,/Users/christiantzolov/Dev/projects/spring-ai-examples/model-context-protocol/weather/starter-stdio-server/target/my-mcp-stdio-server-0.0.1-SNAPSHOT.jar \
         -Dai.user.input='What is the weather in NY?' \
         -Dlogging.pattern.console= \
         -jar mcp-starter-default-client-0.0.1-SNAPSHOT.jar

    Claude Desktop Integration

    To integrate with Claude Desktop, add the following configuration to your Claude Desktop settings:

    json
    {
      "mcpServers": {
        "spring-ai-mcp-weather": {
          "command": "java",
          "args": [
            "-Dspring.ai.mcp.server.stdio=true",
            "-Dspring.main.web-application-type=none",
            "-Dlogging.pattern.console=",
            "-jar",
            "/absolute/path/to/my-mcp-stdio-server-0.0.1-SNAPSHOT.jar"
          ]
        }
      }
    }

    Replace /absolute/path/to/ with the actual path to your built jar file.

    Configuration

    Application Properties

    All properties are prefixed with spring.ai.mcp.server:

    properties
    # Required STDIO Configuration
    spring.main.web-application-type=none
    spring.main.banner-mode=off
    logging.pattern.console=
    
    # Server Configuration
    spring.ai.mcp.server.enabled=true
    spring.ai.mcp.server.name=my-weather-server
    spring.ai.mcp.server.version=0.0.1
    # SYNC or ASYNC
    spring.ai.mcp.server.type=SYNC
    spring.ai.mcp.server.resource-change-notification=true
    spring.ai.mcp.server.tool-change-notification=true
    spring.ai.mcp.server.prompt-change-notification=true
    
    # Optional file logging
    logging.file.name=my-mcp-stdio-server.log

    Key Configuration Notes

    1. STDIO Mode Requirements

    • Disable web application type (spring.main.web-application-type=none)
    • Disable Spring banner (spring.main.banner-mode=off)
    • Clear console logging pattern (logging.pattern.console=)

    2. Server Type

    • SYNC (default): Uses McpSyncServer for straightforward request-response patterns
    • ASYNC: Uses McpAsyncServer for non-blocking operations with Project Reactor support

    Additional Resources

    • Spring AI Documentation
    • MCP Server Boot Starter
    • MCP Client Boot Starter
    • Model Context Protocol Specification
    • Spring Boot Auto-configuration

    Similar MCP

    Based on tags & features

    • 4E

      4everland Hosting Mcp

      TypeScript·
      1
    • NE

      Nebulablock Mcp Server

      Python·
      1
    • CH

      Chuk Mcp Linkedin

      Python00
    • MC

      Mcp Wave

      TypeScript00

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • 4E

      4everland Hosting Mcp

      TypeScript·
      1
    • NE

      Nebulablock Mcp Server

      Python·
      1
    • CH

      Chuk Mcp Linkedin

      Python00
    • MC

      Mcp Wave

      TypeScript00

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k