MCP 客户端 SDK

MCP 服务端 SDK

其他

MCP 服务器 SDK 功能管理

AJ-MCP 注解体系为将 Java 方法声明式地暴露为 MCP(模型上下文协议,Model Context Protocol)工具、资源和提示提供了便捷方式。该体系通过 Java 注解自动发现和注册功能,无需手动配置或注册代码。

资源开发

资源通过在 @McpService 类中的方法上添加 @Resource 注解进行暴露。注解体系会在服务器初始化时自动发现和注册这些资源。

@Resource 注解将方法暴露为 MCP 资源,具有以下属性:

属性 是否必需 描述
uri 资源的唯一标识符
description 人类可读的描述
mimeType 资源内容的 MIME 类型
value 人类可读的名称(默认为空)

资源内容类型

文本资源

文本资源返回包含纯文本或结构化文本数据的 ResourceContentText 对象。

@Resource(uri = "file:///text", description = "一段优美的文本", mimeType = "text/plain")
public ResourceContentText text(){
    ResourceContentText content = new ResourceContentText();
    content.setUri("file:///text");
    content.setMimeType("text/plain");
    content.setText("text888");
    return content;
}

二进制资源

二进制资源返回包含 Base64 编码二进制数据的 ResourceContentBinary 对象。

@Resource(uri = "file:///blob", description = "一张图片", mimeType = "image/jpg")
public ResourceContentBinary blob(){
    String base64EncodedImage = ServerUtils.encodeImageToBase64("bird-eye.jpg");

    ResourceContentBinary content = new ResourceContentBinary();
    content.setUri("file:///blob");
    content.setMimeType("image/jpg");
    content.setBlob(base64EncodedImage);

    return content;
}

资源模板

@ResourceTemplate 注解支持动态资源,采用符合 RFC 6570 URI 模板语法的参数化 URI。

属性 是否必需 描述
uriTemplate RFC 6570 Level 1 URI 模板
name 人类可读的名称
description 模板描述
mimeType 内容的 MIME 类型

模板方法可以接受与 URI 模板变量对应的参数。