aeat.entrypoints.mcp._tools module

Build the MCP tool descriptors from the Layer 0 capability manifest.

Each operator-callable registry command becomes one SDK-independent McpToolDescriptor: a namespaced tool name, a description drawn from the family’s operator intent, a per-verb input schema derived from the command’s own click parameters (via build_verb_input_schemas()), the command’s registered result model as the output schema, and the mutability annotations. The server shell adapts these into the MCP SDK’s Tool / ToolAnnotations types. This module owns no protocol detail and is unit-tested.

class McpToolDescriptor(**data)[source]

Bases: BaseModel

SDK-independent description of one exposed MCP tool.

input_schema is the rendered per-verb JSON Schema a client reads to build a typed argument form; verb_schema is the structured source of that render plus the resolved CLI path, which the server consumes to reconstruct the argv from named arguments. The two are always in lock-step: input_schema is exactly verb_schema.json_schema().

Parameters:
name: str
command_key: str
description: str
input_schema: dict[str, Any]
output_schema: dict[str, Any]
annotations: McpAnnotations
verb_schema: VerbInputSchema
build_tool_descriptors()[source]

Build the exposed MCP tool descriptors from the live manifest + registry.

Reuses the CLI’s own payload-discovery so the registry is fully populated, then emits one descriptor per operator-callable command key, skipping group-callback help surfaces. The output schema is the command’s registered result model; the input schema is the CLI argument vector.

Return type:

tuple[McpToolDescriptor, ...]

Returns:

Tuple of exposed McpToolDescriptor entries.