.initializeHandler(req -> {
// Read what the client supports
var clientCaps = req.clientCapabilities();
// Advertise our own capabilities
var agentCaps = new AgentCapabilities(
true, // loadSession
new McpCapabilities(false, false), // no MCP
new PromptCapabilities(false, false, true) // embeddedContext only
);
return InitializeResponse.ok(agentCaps);
})
.promptHandler((req, context) -> {
// Check capabilities before attempting operations
NegotiatedCapabilities caps = context.getClientCapabilities();
if (caps.supportsReadTextFile()) {
String content = context.readFile("/etc/hostname");
} else {
// Graceful degradation
context.sendMessage("File read not supported by client");
}
return PromptResponse.endTurn();
})