1. Conduid
  2. Files
  3. My MCP Stdio Server
MCP server · Files

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

Unclaimed files
34Low

Scored 7 months ago · breakdown

About My MCP Stdio Server

My MCP Stdio Server is an MCP server in the Files category: 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.

Install

From source
git clone https://github.com/cloud4java/my-mcp-stdio-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about My MCP Stdio Server

Powered by Claude · Grounded in docs

I know everything about My MCP Stdio Server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

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

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:

./mvnw clean install -DskipTests

Tool Implementation

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

@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<ToolCallback> 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

@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

@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

// 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:

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:

{
  "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:

# 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

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About My MCP Stdio Server

How do I install My MCP Stdio Server?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is My MCP Stdio Server safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is My MCP Stdio Server still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.