基于注解的框架,用于在Java 21+中构建模型上下文协议服务器。
@Tool、@Resource、@Prompt定义工具、资源和提示Maven:
<dependency>
<groupId>br.com.arquivolivre</groupId>
<artifactId>mcp-easy4j</artifactId>
<version>1.0.0</version>
</dependency>
Gradle:
dependencies {
implementation 'br.com.arquivolivre:mcp-easy4j:1.0.0'
}
Gradle (Kotlin DSL):
dependencies {
implementation("br.com.arquivolivre:mcp-easy4j:1.0.0")
}
创建你的服务器:
@McpServer(name = "my-server", version = "1.0.0")
public class MyServer {
@Tool(description = "回显消息")
public String echo(@Property(description = "要回显的消息") String message) {
return "回显: " + message;
}
@Resource(uri = "status://server", description = "服务器状态")
public Map<String, Object> getStatus() {
return Map.of("status", "运行中", "时间戳", LocalDateTime.now());
}
@Prompt(name = "code_review", description = "代码审查提示")
public String codeReview(@PromptArgument(description = "语言") String language) {
return "请审查以下" + language + "代码...";
}
public static void main(String[] args) {
McpServerBootstrap.start(MyServer.class);
}
}
运行:
mvn exec:java -Dexec.mainClass="com.example.MyServer"
| 注解 | 目的 | 示例 |
|---|---|---|
@McpServer | 标记服务器类 | @McpServer(name = "my-server") |
@Tool | 定义一个工具 | @Tool(description = "执行某些操作") |
@Property | 工具参数 | @Property(description = "输入", required = true) |
@Resource | 定义一个资源 | @Resource(uri = "file://data", mimeType = "application/json") |
@Prompt | 定义一个提示 | @Prompt(name = "my_prompt") |
@PromptArgument | 提示参数 | @PromptArgument(description = "参数") |
| Java类型 | JSON模式 |
|---|---|
String | string |
int, Integer, long, Long | integer |
double, Double, float, Float | number |
boolean, Boolean | boolean |
Map, Object | object |
List, Array | array |
参见examples/目录中的完整工作示例,包括:
运行示例:
cd examples && mvn exec:java
设置:
Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (macOS){
"mcpServers": {
"my-mcp-server": {
"command": "java",
"args": ["-jar", "/path/to/your/server.jar"]
}
}
}
配置完成后,重启你的IDE/应用程序。你的MCP服务器应该出现在MCP工具列表中。你可以通过以下方式验证它是否正常工作:
MCP Easy4J是围绕MCP Java SDK的一个薄注解包装器:
你的@Tool/@Resource/@Prompt方法
↓
MCP Easy4J (注解扫描)
↓
MCP Java SDK (协议及传输)
↓
stdin/stdout (JSON-RPC 2.0)
SDK处理所有协议细节 - 我们只是通过注解使其更易于使用。
mvn clean install
mvn test
MIT许可证 - 详见LICENSE文件。
欢迎贡献!打开一个问题或提交一个PR。