MCP服务器工具集

一个基于Java的MCP协议服务器,提供计算、文本反转和字数统计等工具功能,适用于Claude Desktop集成开发。

  • by steveo-ocheng
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 steveo-ocheng/my-mcp-server-java

使用说明

我的MCP服务器(Java版)

一个Java实现的模型上下文协议(MCP)服务器,为Claude Desktop提供示例工具。

特点/功能

这个MCP服务器提供了三个示例工具:

  1. 计算 - 执行基本的数学运算(加、减、乘、除)
  2. 反转文本 - 反转任何文本字符串
  3. 词数统计 - 分析文本并返回统计信息(字数、字符数、行数、句子数)

要求

  • Java 17或更高版本
  • Gradle 8.5 或更高版本(包含包装器)

安装

  1. 克隆或导航到项目目录:
cd /Users/steveo/projects/my-mcp-server-java
  1. 使用 Gradle 构建项目:
./gradlew build

这将在(指定位置)生成一个可执行的JAR文件 build/libs/my-mcp-server-1.0.0.jar

测试服务器

你可以通过直接运行服务器来测试它:

java -jar build/libs/my-mcp-server-1.0.0.jar

服务器将启动并通过标准输入/输出等待JSON-RPC消息。

或者,您可以使用 Gradle 来运行它:

./gradlew run

Claude桌面版的配置

要在Claude Desktop中使用此服务器,请将其添加到您的Claude配置文件中:

在 macOS 上: ~/Library/Application Support/Claude/claude_desktop_config.json

在Windows上: %APPDATA%\Claude\claude_desktop_config.json

添加以下配置:

{
  "mcpServers": {
    "my-mcp-server-java": {
      "command": "java",
      "args": [
        "-jar",
        "/Users/steveo/projects/my-mcp-server-java/build/libs/my-mcp-server-1.0.0.jar"
      ]
    }
  }
}

重要的将上述路径更新为您的实际安装位置。

添加配置后:

  1. 重启Claude桌面版
  2. 这些工具现在应该可以在Claude中使用了
  3. 试着让克劳德:
    • “计算5加3”
    • “反转文本 hello world”
    • “分析这段文字的字数:The quick brown fox jumps over the lazy dog”

发展

项目结构

my-mcp-server-java/
├── build.gradle              # Gradle build configuration
├── settings.gradle           # Gradle settings
├── gradlew                   # Gradle wrapper script (Unix)
├── gradlew.bat              # Gradle wrapper script (Windows)
├── gradle/
│   └── wrapper/             # Gradle wrapper files
└── src/
    └── main/
        └── java/
            └── com/
                └── example/
                    └── mcp/
                        ├── MCPServer.java           # Main server implementation
                        ├── Tool.java                # Tool interface
                        ├── ToolRegistry.java        # Tool management
                        ├── TextContent.java         # Response content wrapper
                        ├── CalculateTool.java       # Calculator tool
                        ├── ReverseTextTool.java     # Text reversal tool
                        └── WordCountTool.java       # Word count tool

添加新工具

要在您的服务器上添加新工具:

  1. 创建一个实现(某接口或抽象类)的新类 Tool 接口
  2. 实现三个必需的方法:
    • getName() - 返回工具名称
    • getDefinition(ObjectMapper mapper) - 返回JSON工具定义
    • execute(JsonNode arguments) - 执行工具逻辑
  3. 在(系统/平台中)注册该工具 MCPServer.registerTools() 方法
  4. 重建项目: ./gradlew build
  5. 重启Claude桌面应用以重新加载服务器

示例工具实现:

public class MyTool implements Tool {
    @Override
    public String getName() {
        return "my_tool";
    }

    @Override
    public JsonNode getDefinition(ObjectMapper mapper) {
        ObjectNode tool = mapper.createObjectNode();
        tool.put("name", "my_tool");
        tool.put("description", "Description of what my tool does");

        // Define input schema
        ObjectNode inputSchema = mapper.createObjectNode();
        inputSchema.put("type", "object");
        // ... add properties

        tool.set("inputSchema", inputSchema);
        return tool;
    }

    @Override
    public List<TextContent> execute(JsonNode arguments) throws Exception {
        // Tool implementation
        String result = "Tool result";
        return Collections.singletonList(new TextContent(result));
    }
}

建筑

# Build the project
./gradlew build

# Run tests
./gradlew test

# Create JAR file
./gradlew shadowJar

# Clean build artifacts
./gradlew clean

记录日志

服务器使用Java内置的日志记录功能(java.util.logging),默认情况下将日志记录到标准错误输出(stderr),以避免破坏通过标准输出(stdout)发送的JSON-RPC消息。您可以在Claude Desktop的开发者控制台或您的终端中查看日志。

实施说明

这是一个独立实现的版本,用于演示MCP协议,且不依赖于官方的Java SDK(该SDK可能尚未发布)。服务器:

  • 使用JSON-RPC 2.0进行通信
  • 实现了MCP协议规范
  • 通过标准输入/输出进行通信
  • 使用 Jackson 进行 JSON 处理
  • 遵循与Python参考实现相同的架构

资源

许可证

这是一段示例代码,仅用于演示目的。