MCP.so
Sign In
Servers

Mysql Mcp Server For Java

@6000fish

Java 生态的 MCP 基础设施,包含 SDK + 常用 Server 实现

English | 中文

Maven Central Release CI Java License

Java SDK for building custom Model Context Protocol (MCP) servers quickly, with runnable MySQL and Redis server examples.

MCP.so listings: MySQL MCP Server for Java · Redis MCP Server for Java

Why this project

  • Build custom MCP servers in Java with a small SDK.
  • Use stdio for local Agent integration and SSE for HTTP-based integrations.
  • Define tools, resources, and prompts with either Java code or annotations.
  • Start from copyable examples instead of wiring JSON-RPC by hand.
  • Use MySQL and Redis servers as ready-to-run examples for real data sources.

5-minute paths

GoalStart hereRequires external service
Run the fastest SDK demomcp-examples/quick-startNo
Copy a custom server templatemcp-examples/custom-server-templateNo
Build inside Spring Bootmcp-examples/spring-boot-exampleNo
Connect Redis to an Agentdocs/redis-server.mdRedis
Connect MySQL to an Agentdocs/mysql-server.mdMySQL

Full walkthrough: 5-Minute Quick Start.

Install from Maven Central

Core SDK:

<dependency>
    <groupId>io.github.6000fish</groupId>
    <artifactId>mcp-sdk</artifactId>
    <version>0.1.1</version>
</dependency>

Spring Boot starter:

<dependency>
    <groupId>io.github.6000fish</groupId>
    <artifactId>mcp-spring-boot-starter</artifactId>
    <version>0.1.1</version>
</dependency>

Fastest SDK demo

Build the no-database quick-start server:

mvn package -pl mcp-examples/quick-start -am -DskipTests

Add the runnable jar to your MCP Agent configuration:

{
  "mcpServers": {
    "quick-start": {
      "type": "stdio",
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/mcp-java/mcp-examples/quick-start/target/quick-start-0.1.1.jar"
      ]
    }
  }
}

Restart the Agent and ask:

Use the quick-start MCP server to greet Alice and get the current time.

The demo exposes greet, current_time, calculate, text_transform, and resource server://info.

Build your own MCP server

For a copyable annotation-based template:

mvn package -pl mcp-examples/custom-server-template -am -DskipTests

Configure the generated jar:

{
  "mcpServers": {
    "custom-template": {
      "type": "stdio",
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/mcp-java/mcp-examples/custom-server-template/target/custom-server-template-0.1.1.jar"
      ]
    }
  }
}

Then edit CustomMcpServer.java and add your own @McpTool, @McpResource, or @McpPrompt methods.

Minimal SDK API example:

McpServer server = DefaultMcpServer.builder()
        .name("my-server")
        .version("1.0.0")
        .build();

server.tool("greet", "Greet someone", arguments -> {
    String name = (String) arguments.getOrDefault("name", "World");
    return ToolCallResult.success("Hello, " + name + "!");
});

server.start(new StdioTransport());

Annotation example:

@McpServer(name = "my-server", version = "1.0.0")
public class MyServer {

    @McpTool(name = "hello", description = "Say hello")
    public String hello(@Param(name = "name") String name) {
        return "Hello, " + name + "!";
    }
}

Ready-to-use servers

Build the currently published ready-to-use server modules:

mvn package -pl mcp-server-collection/mcp-server-mysql -am -DskipTests
mvn package -pl mcp-server-collection/mcp-server-redis -am -DskipTests

MySQL server config:

{
  "mcpServers": {
    "mysql": {
      "type": "stdio",
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/mcp-java/mcp-server-collection/mcp-server-mysql/target/mcp-server-mysql-0.1.1.jar"
      ],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_DATABASE": "mcp_demo",
        "MYSQL_USERNAME": "my_user",
        "MYSQL_PASSWORD": "your_password"
      }
    }
  }
}

Redis server config:

{
  "mcpServers": {
    "redis": {
      "type": "stdio",
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/mcp-java/mcp-server-collection/mcp-server-redis/target/mcp-server-redis-0.1.1.jar"
      ],
      "env": {
        "REDIS_HOST": "localhost",
        "REDIS_PORT": "6379",
        "REDIS_PASSWORD": ""
      }
    }
  }
}

Before connecting real data, read the Security Guide. Keep credentials in local Agent configuration or environment variables only.

Available server tools

ServerDescriptionTools
MySQLDatabase operationsquery, execute, list_databases, list_tables, describe_table, explain_query, get_table_status
RedisCache operationsget, set, del, keys, type, ttl, hget, hset, hgetall, lrange, llen, scard, smembers, info, dbsize

Documentation

User documentation:

Maintainer documentation:

Compatibility

The stdio servers are designed for mainstream MCP clients and Agents:

  • Claude Code: verified with MySQL and Redis stdio servers.
  • Codex: verified with MySQL stdio server, including tools/list, tools/call, and client _meta fields.
  • Other MCP clients such as opencode, OpenClaw, Gemini-related tooling: use the same stdio JSON-RPC flow and should use the documented config shape.

Compatibility safeguards include required inputSchema on tools, tolerant request parsing for client extension fields such as _meta, omitted null fields in stdio responses, and logging to stderr so stdout stays reserved for MCP JSON-RPC messages.

Project structure

mcp-java/
├── mcp-sdk/                      # Core SDK
├── mcp-spring-boot-starter/      # Spring Boot integration
├── mcp-server-collection/        # Ready-to-use server implementations
└── mcp-examples/                 # SDK examples and templates

Build from source

git clone https://github.com/6000fish/mcp-java.git
cd mcp-java
mvn clean install

Community

Maintainers

Release instructions are in docs/release.md. Do not commit Maven Central credentials, GPG passphrases, private keys, or settings.xml.

License

MIT

More from Databases