Package ai.tabforge.workshop
Class GetReportTool
java.lang.Object
ai.tabforge.workshop.GetReportTool
MCP Tool:
get_report
Polling tool that Claude calls repeatedly after start_review to check
the current state of a review session. Returns different JSON depending on status —
Claude reads the status field and decides what to do next based on
the DESCRIPTION instructions.
Flow:
Claude AI → calls get_report(reviewId)
↓
GetReportTool.execute() → reads ReviewSession from OrchestratorAgent
↓
RUNNING → { status, progress } → Claude waits and calls again
AWAITING_HUMAN → { status, question, ... } → Claude presents question to developer
COMPLETED → { status, report } → Claude presents findings
CANCELLED → { status, message } → Claude informs developer
FAILED → { status, message } → Claude suggests checking logs
Created by: WorkshopServer.start() at server startup.
Receives OrchestratorAgent via constructor injection.
CERTIFICATION NOTE — covers two exam domains:
- Domain 4 — Tool Design & MCP Integration (18%):
Demonstrates that a single tool can return different JSON schemas depending
on state. The
DESCRIPTIONfield teaches Claude how to interpret each possible response — this is Task Statement 4.1: "Design MCP tool interfaces with clear descriptions and input schemas." - Domain 1 — Agentic Architecture & Orchestration (27%):
This tool implements the polling side of the async pattern started by
StartReviewTool. Claude polls this tool periodically — not because we programmed a loop, but because theDESCRIPTIONtells it to. This is Task Statement 1.7: "Manage session state, resumption, and forking."
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionio.modelcontextprotocol.server.McpServerFeatures.AsyncToolSpecificationtoolSpecification(io.modelcontextprotocol.json.McpJsonMapper jsonMapper)
-
Constructor Details
-
GetReportTool
-
-
Method Details
-
toolSpecification
public io.modelcontextprotocol.server.McpServerFeatures.AsyncToolSpecification toolSpecification(io.modelcontextprotocol.json.McpJsonMapper jsonMapper)
-