MCP 服务器

Centering Lab

com.centeringlab/centering-lab
电商与零售 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Measures trading-card centering from photos or ratios and checks centering thresholds used by PSA, BGS, CGC, and SGC.

get_centering_standards
Card centering standards and sources
Look up card centering thresholds for PSA, BGS, CGC and SGC, optionally by house and front/back. Use for threshold/rules questions and source checks. Returns per-band official/interpreted/approximate status, source links, verification date/provenance and rounding rule. TAG is excluded. These are centering ceilings, not grade predictions.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'face': {'enum': ['front', 'back'], 'type': 'string'}, 'house': {'enum': ['PSA', 'BGS', 'CGC', 'SGC'], 'type': 'string'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['standards', 'rounding_rule', 'tag_note', 'summary', 'disclaimer'], 'properties': {'summary': {'type': 'string'}, 'tag_note': {'type': 'string'}, 'standards': {'type': 'array', 'items': {'type': 'object', 'required': ['house', 'face', 'bands', 'source', 'sources', 'status', 'verified', 'verification', 'note'], 'properties': {'face': {'enum': ['front', 'back'], 'type': 'string'}, 'note': {'type': 'string'}, 'bands': {'type': 'array', 'items': {'type': 'object', 'required': ['value', 'label', 'rank', 'loose', 'status'], 'properties': {'rank': {'type': 'number'}, 'label': {'type': 'string'}, 'loose': {'type': 'number'}, 'tight': {'type': 'number'}, 'value': {'type': 'number'}, 'status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}}, 'additionalProperties': False}}, 'house': {'enum': ['PSA', 'BGS', 'CGC', 'SGC'], 'type': 'string'}, 'source': {'type': 'string'}, 'status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'verification': {'type': 'string'}}, 'additionalProperties': False}}, 'disclaimer': {'type': 'string'}, 'rounding_rule': {'type': 'string'}}, 'additionalProperties': False}
grade_centering
Grade known card centering ratios
Convert known card centering ratios into the maximum grade permitted by centering at PSA, BGS, CGC and SGC. Use for questions such as “is 58/42 a PSA 10?” without needing a photo. Accept reversed ratios and percentages. At least one axis is required. Missing axes or faces may lower the ceiling; never describe it as a predicted grade. BGS uses both axes. Return provenance, limiting face/axis and distance to the next step.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'back_lr': {'anyOf': [{'type': 'number', 'maximum': 100, 'minimum': 0}, {'type': 'string', 'maxLength': 40, 'minLength': 1}], 'description': 'A percentage (55 or 45), or two percentages summing to 100 ("55/45" or "45/55"). Normalized to the larger side.'}, 'back_tb': {'anyOf': [{'type': 'number', 'maximum': 100, 'minimum': 0}, {'type': 'string', 'maxLength': 40, 'minLength': 1}], 'description': 'A percentage (55 or 45), or two percentages summing to 100 ("55/45" or "45/55"). Normalized to the larger side.'}, 'front_lr': {'anyOf': [{'type': 'number', 'maximum': 100, 'minimum': 0}, {'type': 'string', 'maxLength': 40, 'minLength': 1}], 'description': 'A percentage (55 or 45), or two percentages summing to 100 ("55/45" or "45/55"). Normalized to the larger side.'}, 'front_tb': {'anyOf': [{'type': 'number', 'maximum': 100, 'minimum': 0}, {'type': 'string', 'maxLength': 40, 'minLength': 1}], 'description': 'A percentage (55 or 45), or two percentages summing to 100 ("55/45" or "45/55"). Normalized to the larger side.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['front', 'back', 'combined', 'incomplete', 'missing_faces', 'summary', 'disclaimer'], 'properties': {'back': {'anyOf': [{'type': 'object', 'required': ['ratios', 'missing_axes', 'ceilings'], 'properties': {'ratios': {'type': 'object', 'required': ['lr', 'tb'], 'properties': {'lr': {'type': ['number', 'null']}, 'tb': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'ceilings': {'type': 'object', 'required': ['PSA', 'BGS', 'CGC', 'SGC'], 'properties': {'BGS': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'CGC': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'PSA': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'SGC': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'missing_axes': {'type': 'array', 'items': {'enum': ['lr', 'tb'], 'type': 'string'}}}, 'additionalProperties': False}, {'type': 'null'}]}, 'front': {'anyOf': [{'type': 'object', 'required': ['ratios', 'missing_axes', 'ceilings'], 'properties': {'ratios': {'type': 'object', 'required': ['lr', 'tb'], 'properties': {'lr': {'type': ['number', 'null']}, 'tb': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'ceilings': {'type': 'object', 'required': ['PSA', 'BGS', 'CGC', 'SGC'], 'properties': {'BGS': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'CGC': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'PSA': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'SGC': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'missing_axes': {'type': 'array', 'items': {'enum': ['lr', 'tb'], 'type': 'string'}}}, 'additionalProperties': False}, {'type': 'null'}]}, 'summary': {'type': 'string'}, 'combined': {'type': 'object', 'required': ['PSA', 'BGS', 'CGC', 'SGC'], 'properties': {'BGS': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'CGC': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'PSA': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'SGC': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'disclaimer': {'type': 'string'}, 'incomplete': {'type': 'boolean'}, 'missing_faces': {'type': 'array', 'items': {'enum': ['front', 'back'], 'type': 'string'}}}, 'additionalProperties': False}
measure_card_centering
Measure centering from a card photo
Measure worst-station left/right and top/bottom card centering from one photograph. Ask front or back before calling. Request a whole card, flat on a dark surface, straight from above and out of its sleeve. The photo is processed on the server in memory and discarded, unlike the local-only website. Use a public HTTPS URL or image bytes supported by the client. If a chat attachment cannot be passed to this remote tool, send the user to https://centeringlab.com/. needs-review or failed means no grade ceilings: suggest a retake or manual website adjustment. Never predict a final grade.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['face'], 'properties': {'face': {'enum': ['front', 'back'], 'type': 'string', 'description': 'Required: ask the user whether the photo shows the front or back if unclear.'}, 'card_size': {'enum': ['standard', 'small'], 'type': 'string', 'default': 'standard', 'description': 'standard = 63×88 mm; small = 59×86 mm.'}, 'image_url': {'type': 'string', 'format': 'uri', 'maxLength': 8192, 'description': 'Public HTTPS image URL, port 443. Private network addresses and non-image responses are rejected.'}, 'image_base64': {'type': 'string', 'maxLength': 12582912, 'minLength': 4, 'description': 'Raw base64 encoded raster image, without a data-URL prefix. Intended for clients that can supply image bytes.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'code', 'face', 'card_size', 'lr', 'tb', 'confidence', 'warnings', 'ceilings', 'adjust_url', 'advice', 'elapsed_ms', 'image_bytes', 'summary', 'disclaimer'], 'properties': {'lr': {'anyOf': [{'type': 'object', 'required': ['ratio', 'major_percent', 'minor_percent', 'uncertainty_pp', 'sigma_pp', 'worst_station_px', 'stations_major_percent'], 'properties': {'ratio': {'type': 'string'}, 'sigma_pp': {'type': 'number'}, 'major_percent': {'type': 'number'}, 'minor_percent': {'type': 'number'}, 'uncertainty_pp': {'type': 'number'}, 'worst_station_px': {'type': 'number'}, 'stations_major_percent': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}, {'type': 'null'}]}, 'tb': {'anyOf': [{'type': 'object', 'required': ['ratio', 'major_percent', 'minor_percent', 'uncertainty_pp', 'sigma_pp', 'worst_station_px', 'stations_major_percent'], 'properties': {'ratio': {'type': 'string'}, 'sigma_pp': {'type': 'number'}, 'major_percent': {'type': 'number'}, 'minor_percent': {'type': 'number'}, 'uncertainty_pp': {'type': 'number'}, 'worst_station_px': {'type': 'number'}, 'stations_major_percent': {'type': 'array', 'items': {'type': 'number'}}}, 'additionalProperties': False}, {'type': 'null'}]}, 'code': {'type': 'string'}, 'face': {'enum': ['front', 'back'], 'type': 'string'}, 'advice': {'type': 'string'}, 'status': {'enum': ['ok', 'needs-review', 'failed'], 'type': 'string'}, 'summary': {'type': 'string'}, 'ceilings': {'anyOf': [{'type': 'object', 'required': ['PSA', 'BGS', 'CGC', 'SGC'], 'properties': {'BGS': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'CGC': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'PSA': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'SGC': {'type': 'object', 'required': ['maximum_grade', 'label', 'rank', 'limiting_face', 'limiting_axis', 'distance_to_next', 'next_grade', 'next_label', 'borderline', 'unconstrained', 'source_status', 'standard_status', 'source', 'sources', 'verified', 'verification'], 'properties': {'rank': {'type': ['number', 'null']}, 'label': {'type': ['string', 'null']}, 'source': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'string'}}, 'verified': {'type': 'string'}, 'borderline': {'type': 'boolean'}, 'next_grade': {'type': ['number', 'null']}, 'next_label': {'type': ['string', 'null']}, 'verification': {'type': 'string'}, 'limiting_axis': {'enum': ['lr', 'tb'], 'type': 'string'}, 'limiting_face': {'enum': ['front', 'back'], 'type': 'string'}, 'maximum_grade': {'type': ['number', 'null']}, 'source_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'unconstrained': {'type': 'boolean'}, 'standard_status': {'enum': ['official', 'interpreted', 'approximate'], 'type': 'string'}, 'distance_to_next': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'null'}]}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'card_size': {'enum': ['standard', 'small'], 'type': 'string'}, 'adjust_url': {'type': 'string'}, 'confidence': {'anyOf': [{'type': 'number', 'maximum': 1, 'minimum': 0}, {'type': 'null'}]}, 'disclaimer': {'type': 'string'}, 'elapsed_ms': {'type': 'number'}, 'image_bytes': {'type': 'number'}}, 'additionalProperties': False}
已添加
measure_card_centering
2026年10月3日 02:40
已添加
get_centering_standards
2026年10月3日 02:40
已添加
grade_centering
2026年10月3日 02:40