MCP服务器框架

基于注解的Java框架,用于快速构建符合Model Context Protocol规范的服务器,支持工具、资源和提示的定义。

  • by devops-thiago
  • Java
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 devops-thiago/mcp-easy4j

使用说明

MCP Easy4J(注:MCP通常指“Microsoft Certified Professional”或在此上下文中可能指某种特定的框架或库,但“MCP”在通用技术语境下可能不直接对应“MCP Easy4J”的具体含义,这里按原样保留;“Easy4J”可能是一个特定技术或框架的名称,直接音译为中文)

基于注解的构建框架 模型上下文协议 Java 21+ 中的服务器。

特点/特性

  • 🎯 基于注解的API - 通过定义工具、资源和提示来进行 @Tool, @Resource, @Prompt
  • 🚀 零样板代码 - 无需手动注册或协议处理
  • 🔄 从方法签名自动生成模式(或架构)
  • 📦 基于官方MCP Java SDK构建
  • ⚡ Java 21 支持虚拟线程

快速入门

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 = "Echoes a message")
    public String echo(@Property(description = "Message to echo") String message) {
        return "Echo: " + message;
    }

    @Resource(uri = "status://server", description = "Server status")
    public Map<String, Object> getStatus() {
        return Map.of("status", "running", "timestamp", LocalDateTime.now());
    }

    @Prompt(name = "code_review", description = "Code review prompt")
    public String codeReview(@PromptArgument(description = "Language") String language) {
        return "Please review the following " + language + " code...";
    }

    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 = "Does something")
@Property 工具参数 @Property(description = "Input", required = true)
@Resource 定义资源 @Resource(uri = "file://data", mimeType = "application/json")
@Prompt 定义提示 @Prompt(name = "my_prompt")
@PromptArgument 提示参数 @PromptArgument(description = "Argument")

类型映射

Java 类型 JSON 架构
String string
int, Integer, long, Long integer
double, Double, float, Float number
boolean, Boolean boolean
Map, Object object
List, Array array

示例

见 示例/ 包含完整工作示例的目录,其中包括:

  • 具有各种参数类型的工具
  • 包含结构化数据的资源
  • 带有参数的提示

运行示例:

cd examples && mvn exec:java

IDE 集成

VS Code / Cursor / Kiro(这些是编程或代码编辑工具的名称,中文可直接保留原名,不进行翻译)

设置:

  1. 打开命令面板: Ctrl+Shift+P (Windows/Linux) 或者 Cmd+Shift+P (macOS)
  2. 搜索“MCP”或“MCP 设置”
  3. 选择编辑MCP配置的选项
  4. 添加您的服务器配置:
{
  "mcpServers": {
    "my-mcp-server": {
      "command": "java",
      "args": ["-jar", "/path/to/your/server.jar"]
    }
  }
}

测试您的服务器

配置完成后,请重启您的集成开发环境(IDE)/应用程序。您的MCP服务器应该会出现在MCP工具列表中。您可以通过以下方式验证其是否正常工作:

  1. 检查MCP服务器日志(标准错误输出)
  2. 尝试从你的IDE的AI助手调用一个工具
  3. 使用 MCP 检查器 用于调试

建筑学

MCP Easy4J 是一个轻量级的注解封装,围绕着(某框架或库,此处原文未指明具体名称) MCP Java SDK:

Your @Tool/@Resource/@Prompt methods
           ↓
    MCP Easy4J (annotation scanning)
           ↓
    MCP Java SDK (protocol & transport)
           ↓
    stdin/stdout (JSON-RPC 2.0)

SDK处理所有协议细节,我们只需通过注解使其更易于使用。

建筑

mvn clean install
mvn test

许可证

MIT 许可证 - 请参阅 许可证 文件。

做出贡献

欢迎贡献!请提交问题或提出拉取请求。

链接