使用说明
uMCP(超MCP)
一个用Java构建MCP(模型上下文协议)服务器的轻量级框架。uMCP在官方MCP Java SDK上提供了一个简单的抽象层,使创建和部署具有TCP传输的MCP服务器变得容易。
特性
- 简单抽象:干净的接口(
SyncCapability,AsyncCapability)用于实施MCP工具 - 默认TCP传输:始终通过以下方式使用TCP传输 mcp-java桥
- 类型安全:自动类型处理和JSON模式生成
- 生成器模式:用于服务器配置的Fluent API
- 最小依赖性:基于官方SDK构建的轻量级框架
- 克劳德桌面就绪:使用桥接器与Claude Desktop无缝协作
安装
先决条件
- Java 17或更高版本
- Gradle 8.5+(用于从源代码构建)
作为依赖使用
将uMCP添加到您的项目中:
梅文
<dependency>
<groupId>org.gegolabs</groupId>
<artifactId>uMCP</artifactId>
<version>1.0.0</version>
</dependency>
Gradle
implementation 'org.gegolabs:uMCP:1.0.0'
备注:目前在Maven Local中可用。跑 ./gradlew publishToMavenLocal 克隆后。
从源头构建
# Clone the repository
git clone https://github.com/cobach/uMCP.git
cd uMCP
# Build and install to local Maven repository
./gradlew publishToMavenLocal
# Run tests
./gradlew test
创建工具
uMCP中的工具实现 SyncCapability 或 AsyncCapability 接口:
@Name("my-tool")
@Description("Description of what my tool does")
public class MyTool implements SyncCapability<MyInput, MyOutput> {
@Override
public void initialize() throws CapabilityException {
// Initialize resources if needed
}
@Override
public void shutdown() throws CapabilityException {
// Clean up resources if needed
}
@Override
public MyOutput execute(MyInput input) throws CapabilityException {
// Tool implementation
return new MyOutput(result);
}
}
服务器配置
uMCP服务器始终使用TCP传输。您可以配置主机和端口:
// Default: localhost:3000
MCPServer server = MCPServer.builder()
.name("MyServer")
.version("1.0.0")
.tool(new MyTool())
.build();
// Custom port
MCPServer server = MCPServer.builder()
.name("MyServer")
.version("1.0.0")
.port(8080)
.tool(new MyTool())
.build();
// Custom host and port
MCPServer server = MCPServer.builder()
.name("MyServer")
.version("1.0.0")
.host("0.0.0.0")
.port(8080)
.tool(new MyTool())
.tool(new AnotherTool())
.build();
// Start the server
server.start();
安装 Claude Desktop
构建MCP服务器后,您需要配置Claude Desktop以连接到它。MCP-java桥JAR包含一个用于此目的的CLI安装程序。
步骤1:访问Bridge JAR
使用uMCP时,桥JAR会自动作为依赖项包含在内。您可以通过两种方式访问它:
来自Maven仓库:
java -jar ~/.m2/repository/org/gegolabs/mcp/mcp-java-bridge/1.0.0/mcp-java-bridge-1.0.0.jar
或者使用Gradle任务复制它:
task copyBridgeJar(type: Copy) {
from configurations.runtimeClasspath.filter { it.name.contains('mcp-java-bridge') }
into 'install'
rename { 'mcp-bridge.jar' }
}
然后: ./gradlew copyBridgeJar
步骤2:配置Claude桌面
从以下三个选项中选择一个:
选项A:交互式安装(推荐)
运行安装程序,不带参数,以进行引导安装:
java -jar mcp-java-bridge-1.0.0.jar
这将:
- 自动检测JAR位置
- 提示输入服务器名称(例如“我的服务器”)
- 主机提示(默认:localhost)
- 提示输入端口(默认值:3000)
- 自动配置克劳德桌面
- 创建现有配置的备份
选项B:命令行安装
对于自动设置,请使用特定参数:
java -jar mcp-java-bridge-1.0.0.jar install \
-n "my-server" \
-c mcp-java-bridge-1.0.0.jar \
-h localhost \
-p 3000
参数:
-n-Claude Desktop中的服务器名称(必填)-c-充当连接器的JAR的路径-h-服务器主机(默认:localhost)-p-服务器端口(默认值:3000)
选项C:手动配置
如果您更喜欢手动配置,请编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"my-server": {
"command": "java",
"args": [
"-jar",
"/path/to/mcp-java-bridge-1.0.0.jar",
"--connector",
"localhost",
"3000"
]
}
}
}
步骤3:启动服务器
- 启动MCP服务器(确保它在配置的端口上运行)
- 重新启动Claude Desktop以加载新配置
- 您的服务器现在应该可以在Claude Desktop中使用
MCP网桥JAR命令
使用uMCP时,会包含mcp-java桥JAR。这是一个多功能工具,有三种模式:
1.交互式安装程序(默认)
java -jar mcp-java-bridge-1.0.0.jar
2.连接器模式
Claude Desktop用于桥接stdio↔TCP:
# Default settings (localhost:3000)
java -jar mcp-java-bridge-1.0.0.jar --connector
# Custom host/port
java -jar mcp-java-bridge-1.0.0.jar --connector 192.168.1.100 8080
3.安装命令
java -jar mcp-java-bridge-1.0.0.jar install -n <server-name> -c <jar-path> [-h <host>] [-p <port>]
4.帮助
java -jar mcp-java-bridge-1.0.0.jar --help
创建MCP服务器
步骤1:创建新项目
使用以下内容创建新的Gradle项目 build.gradle:
plugins {
id 'java'
id 'application'
}
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
implementation 'org.gegolabs:uMCP:1.0.0'
}
application {
mainClass = 'com.example.MyMCPServer'
}
java {
sourceCompatibility = JavaVersion.VERSION_17
}
// Task to copy mcp-java-bridge JAR for easy Claude Desktop installation
task installBridge(type: Copy) {
from configurations.runtimeClasspath.filter { it.name.contains('mcp-java-bridge') }
into 'install'
rename { 'mcp-bridge.jar' }
doLast {
println "Bridge JAR copied to: install/mcp-bridge.jar"
println "Run installer: java -jar install/mcp-bridge.jar"
}
}
// Run installBridge after build
build.finalizedBy installBridge
步骤2:创建服务器应用程序
package com.example;
import org.gegolabs.mcp.MCPServer;
import org.gegolabs.mcp.impl.DomainAvailability;
import org.gegolabs.mcp.impl.SystemInformation;
public class MyMCPServer {
public static void main(String[] args) throws Exception {
int port = args.length > 0 ? Integer.parseInt(args[0]) : 3000;
MCPServer server = MCPServer.builder()
.name("MyMCPServer")
.version("1.0.0")
.port(port)
.tool(new DomainAvailability())
.tool(new SystemInformation())
.build();
server.start();
System.out.println("MCP Server running on port " + port);
// Keep running until interrupted
Thread.currentThread().join();
}
}
步骤3:构建和配置
# Build your project (this also copies the bridge JAR)
./gradlew build
# Configure Claude Desktop using the bridge installer
java -jar install/mcp-bridge.jar
# Run your server
./gradlew run
# Or run the JAR directly
java -jar build/libs/your-project.jar 3000
uMCP库结构
uMCP/
├── src/
│ ├── main/java/org/gegolabs/mcp/
│ │ ├── protocol/ # Core interfaces (SyncCapability, AsyncCapability)
│ │ ├── impl/ # Example tool implementations
│ │ ├── bridge/ # Bridge integration (from mcp-java-bridge)
│ │ └── MCPServer.java # Main server builder class
│ └── test/ # Unit tests
├── docs/ # Additional documentation
└── build.gradle # Build configuration
当您在项目中使用uMCP时,它提供:
- 核心抽象 用于创建MCP工具
- MCPServer构建器 便于服务器设置
- 内置TCP传输 通过mcp-java桥
- 示例实现 参考
依赖项
- MCP Java SDK 0.10.0
- mcp java桥1.0.0
- Project Reactor(通过SDK)
- SLF4J+Logback用于日志记录
- 龙目岛减少样板
MCP检验员测试
虽然MCP Inspector需要stdio传输,但您可以使用网桥测试uMCP服务器:
- 启动uMCP服务器
- 使用mcp-java桥连接器作为中介
- 将MCP检查员指向连接器
地方发展
在本地使用uMCP进行开发时:
# Clone and install uMCP to local Maven repository
git clone https://github.com/cobach/uMCP.git
cd uMCP
./gradlew publishToMavenLocal
这将uMCP安装到您的本地Maven存储库(~/.m2/repository),使其可供您的项目用作依赖项。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
[将添加贡献指南]