MCP Client SDK

MCP Server SDK

Misc

MCP Server SDK Feature Management

The AJ-MCP annotation system provides a declarative approach to exposing Java methods as MCP (Model Context Protocol) tools, resources, and prompts. This system uses Java annotations to automatically discover and register functionality, eliminating the need for manual configuration or registration code.

Resources Development

Resources are exposed through the @Resource annotation on methods within @McpService classes. The annotation system automatically discovers and registers resources during server initialization.

The @Resource annotation exposes methods as MCP resources with the following properties:

Property Required Description
uri Yes Unique identifier for the resource
description No Human-readable description
mimeType No MIME type of the resource content
value No Human-readable name (defaults to empty)

Resource Content Types

Text Resources

Text resources return ResourceContentText objects containing plain text or structured text data.

@Resource(uri = "file:///text", description = "A nice piece of text", mimeType = "text/plain")
public ResourceContentText text() {
    ResourceContentText content = new ResourceContentText();
    content.setUri("file:///text");
    content.setMimeType("text/plain");
    content.setText("text888");
    return content;
}

Binary Resources

Binary resources return ResourceContentBinary objects containing Base64-encoded binary data.

@Resource(uri = "file:///blob", description = "A nice pic", 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;
}

Resource Templates

The SDK contains @ResourceTemplate and the related protocol models, but automatic registration and server dispatch for resource templates are not complete in this version.

Property Required Description
uriTemplate Yes RFC 6570 Level 1 URI template
name No Human-readable name
description No Template description
mimeType No Content MIME type

Treat this annotation as preview API until template methods are registered by FeatureMgr and resources/templates/list is handled by the server.