Discover what an MCP server offers You inspect the negotiated catalog for tools, prompts, resources, templates, and capabilities. Your app uses server-owned identifiers instead of guessing them. java academy academy/topics/mcp-catalog website/content-src/academy/course.mjs academy Discover what an MCP server offers
Unit 9 · Connect to external tools and data

Discover what an MCP server offers

You inspect the negotiated catalog for tools, prompts, resources, templates, and capabilities. Your app uses server-owned identifiers instead of guessing them.

inspectCatalog()7 focused minutesNot started
Unit example (nearest native match)

See the idea in context

AxMCPClient mcp = new AxMCPClient(new AxMCPStreamableHTTPTransport(endpoint), Map.of("namespace", "inventory"));
      AxMCPClient.CatalogSnapshot catalog = mcp.inspectCatalog();
AxGen program = new AxGen(Ax.s("request:string -> answer:string"), Map.of("mcp", mcp));
      mcp.close();
Run itIn your own project
// Gradle (build.gradle):
implementation 'dev.axllm:ax:22.0.4'
// Maven (pom.xml):
<dependency>
  <groupId>dev.axllm</groupId>
  <artifactId>ax</artifactId>
  <version>22.0.4</version>
</dependency>

import dev.axllm.ax.Ax;

var llm = Ax.ai("openai", Map.of("apiKey", System.getenv("OPENAI_API_KEY")));
var classify = Ax.ax("review:string -> sentiment:class \"positive, negative, neutral\"");

Set OPENAI_APIKEY in your environment before running provider-backed code.

In the ax repo

From a clone of the ax repo:

npm run example -- java src/examples/java/mcp/NativeMCPToolsExample.java
Active practice

Show that you can use it

Answer 2 in a row to learn this · attempt 1
Keep exploring

Source-backed follow-up