OptionaldescriptionHuman-readable description — surfaced in tools/list.
OptionaltitleOptional title hint for the MCP inspector.
OptionalinputZod raw shape or schema for argument validation.
OptionaloutputZod raw shape or schema for the declared response payload.
Forwarded verbatim to registerTool. The MCP SDK validates every
non-error response's structuredContent against this schema on the
server AND on the buyer's client (the latter fires regardless of
isError — see the NOTE on outputSchema block earlier in this
file). Framework-registered AdCP tools skip this field for that
reason; custom tools opt in here and own the trade-off.
Footgun: a too-strict schema (e.g. z.never(), or one that
accidentally rejects the caller's own valid shape) turns the tool
into a silent client-side validation error for every buyer. The
seller sees a successful response go out; the buyer receives an
Output validation error. Test against a real buyer call before
relying on this.
OptionalannotationsTool annotations (readOnlyHint / destructiveHint / idempotentHint / openWorldHint).
Tool handler. Gets SDK-validated args based on inputSchema and
must return a CallToolResult. Use capabilitiesResponse,
mediaBuyResponse, adcpError, or a hand-built { content, structuredContent? }.
Declarative registration for a tool outside AdcpToolMap — seller extensions (e.g. collection-list helpers), test-harness endpoints (
comply_test_controller), or AdCP surfaces whose JSON Schemas haven't landed in the framework yet.These tools bypass the framework's spec-tool pipeline: idempotency middleware, governance pre-checks, account resolution, and response wrapping are all skipped. The handler receives the SDK-validated arguments and must return a
CallToolResultdirectly. If you need any of those behaviors, call the framework helpers from inside the handler (e.g.,checkGovernance(...),adcpError(...)).Type parameters match the SDK's
McpServer.registerToolsignature so argument and response types infer from the declared schemas.