git:20260505.5c57b27 to git:20260927.f5cfb64

5 added, 0 removed. Audit A to A.

---
name: typed-schema-demo
description: >-
Example skill — demonstrates zero-dependency JSON Schema derivation from
Python dataclasses and type annotations (issue #242). Use as a reference
when authoring typed handlers that should publish inputSchema /
outputSchema without hand-writing JSON. Not intended for production use.
license: MIT
compatibility: Python 3.10+
metadata:
dcc-mcp:
dcc: python
+ recall-context:
+ app_type: python
+ domain: authoring
+ workflow_stage: authoring
+ task_category: query
version: "1.0.0"
layer: example
search-hint: "structured schema, dataclass, json schema, inputSchema, outputSchema, typed handler, pydantic-free"
tags: "example, schema, structured"
---
# Typed Schema Demo (issue #242)
This skill demonstrates the `dcc_mcp_core.schema` helpers landed for
issue #242: authors write a typed handler and
`tool_spec_from_callable` derives both `inputSchema` and `outputSchema`
from the annotations, with no dependency on `pydantic`, `jsonschema`, or
`attrs`.
## What to look at
- `scripts/demo.py` — one handler using a dataclass input and a dataclass
output. The derived schemas are structurally compatible with pydantic's
`model_json_schema()` so callers can swap in pydantic later without
migrating agents or cached schemas.
## How to wire it into a server
The demo module builds a `ToolSpec` that is ready for
`dcc_mcp_core._tool_registration.register_tools(server, [spec])`. Inside
an adapter (e.g. Maya/Blender), register it during bootstrap:
```python
from dcc_mcp_core._tool_registration import register_tools
from typed_schema_demo.scripts.demo import spec
register_tools(server, [spec], dcc_name="python")
```
When the negotiated MCP session is `2025-06-18`, the gateway publishes
`outputSchema` alongside `inputSchema` so clients can validate the
`structuredContent` payload our handler returns.