--- title: json_schema sidebarTitle: json_schema --- # `fastmcp.utilities.json_schema` ## Functions ### `resolve_root_ref` ```python resolve_root_ref(schema: dict[str, Any]) -> dict[str, Any] ``` Resolve $ref at root level to meet MCP spec requirements. MCP specification requires outputSchema to have "type": "object" at the root level. When Pydantic generates schemas for self-referential models, it uses $ref at the root level pointing to $defs. This function resolves such references by inlining the referenced definition while preserving $defs for nested references. **Args:** - `schema`: JSON schema dict that may have $ref at root level **Returns:** - A new schema dict with root-level $ref resolved, or the original schema - if no resolution is needed ### `compress_schema` ```python compress_schema(schema: dict, prune_params: list[str] | None = None, prune_defs: bool = True, prune_additional_properties: bool = True, prune_titles: bool = False) -> dict ``` Remove the given parameters from the schema. **Args:** - `schema`: The schema to compress - `prune_params`: List of parameter names to remove from properties - `prune_defs`: Whether to remove unused definitions - `prune_additional_properties`: Whether to remove additionalProperties\: false - `prune_titles`: Whether to remove title fields from the schema