Skip to content

Instantly share code, notes, and snippets.

@glaforge
Created September 28, 2025 16:59
Show Gist options
  • Save glaforge/f7bc67c22b204ff802caf4ad8762b5d0 to your computer and use it in GitHub Desktop.
Save glaforge/f7bc67c22b204ff802caf4ad8762b5d0 to your computer and use it in GitHub Desktop.
ADK class invoking the MoonPhases MCP server implemented with Micronaut, using the Streamable HTTP transport
import com.google.adk.agents.BaseAgent;
import com.google.adk.agents.LlmAgent;
import com.google.adk.tools.BaseTool;
import com.google.adk.tools.mcp.McpToolset;
import com.google.adk.tools.mcp.SseServerParameters;
import com.google.adk.tools.mcp.StreamableHttpServerParameters;
import com.google.adk.web.AdkWebServer;
import java.util.List;
public class MoonExpert implements AgentProvider {
@Override
public BaseAgent getAgent() {
StreamableHttpServerParameters shParams = StreamableHttpServerParameters
.builder("https://mn-mcp-server-1029513523185.europe-west1.run.app/mcp/")
.builder("http://localhost:8181/mcp/")
.build();
try (McpToolset mcpToolset = new McpToolset(shParams)) {
List<BaseTool> moonPhasesTools =
mcpToolset.getTools(null).toList().blockingGet();
return LlmAgent.builder()
.name("moon-expert")
.model("gemini-2.5-flash")
.description("a moon expert")
.instruction("""
You are a knowledgeable astronomy expert
focusing on everything about the moon.
""")
.tools(moonPhasesTools)
.build();
}
}
public static void main(String[] args) {
AdkWebServer.start(new MoonExpert().getAgent());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment