get_artifact_schema
Retrieve the schema definition for a stored artifact by providing its pattern ID. Choose between minimal or full detail to get the exact structure needed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_id | Yes | ||
| schema | Yes | ||
| example_minimal | Yes | ||
| guidance | Yes |
Implementation Reference
- src/web_gui_mcp/mcp_tools.py:48-55 (handler)The main handler function for the 'get_artifact_schema' tool. It looks up the artifact pattern by pattern_id, calls artifact_schema() to get the JSON schema (minimal or full detail), and returns the schema along with the pattern's example_minimal and guidance.
def get_artifact_schema_handler(input_data: GetArtifactSchemaInput) -> GetArtifactSchemaOutput: pattern = get_pattern(input_data.pattern_id) return GetArtifactSchemaOutput( pattern_id=pattern.id, schema=artifact_schema(detail=input_data.detail), example_minimal=pattern.example_minimal, guidance=pattern.guidance, ) - Pydantic input/output schemas for the 'get_artifact_schema' tool. Input accepts pattern_id and detail (minimal/full). Output returns pattern_id, schema (aliased from schema_), example_minimal, and guidance.
class GetArtifactSchemaInput(ToolBaseModel): pattern_id: str detail: Literal["minimal", "full"] = "minimal" class GetArtifactSchemaOutput(ToolBaseModel): pattern_id: str schema_: dict[str, Any] = Field(alias="schema") example_minimal: dict[str, Any] guidance: list[str] - src/web_gui_mcp/mcp_tools.py:176-178 (registration)Registration of the 'get_artifact_schema' tool as an MCP tool via the @mcp.tool() decorator inside register_tools(). Delegates to the handler function.
@mcp.tool() def get_artifact_schema(input: GetArtifactSchemaInput) -> GetArtifactSchemaOutput: return get_artifact_schema_handler(input) - Helper function artifact_schema() that returns the JSON schema for ArtifactSpec. When detail='full', returns the entire schema. When detail='minimal', returns only title, type, required, and properties.
def artifact_schema(detail: str = "minimal") -> dict[str, Any]: schema = ArtifactSpec.model_json_schema() if detail == "full": return schema return { "title": schema.get("title"), "type": schema.get("type"), "required": schema.get("required", []), "properties": schema.get("properties", {}), } - Helper function called by the handler to look up an ArtifactPattern by its id from the PATTERNS registry. Raises ValueError if pattern_id is unknown.
def get_pattern(pattern_id: str) -> ArtifactPattern: try: return PATTERNS[pattern_id] except KeyError as exc: raise ValueError(f"Unknown artifact pattern: {pattern_id}") from exc