MCP Server

SACS.ai MCP — California School District Financial Data

ai.sacs/sacs-mcp
Data & Analytics Education Public & reachable MCP 2025-11-25

What this MCP does

Queries, compares, and contextualizes official California school district financial datasets and explains public SACS accounting codes.

sacs_compare_districts
Compare deterministic object-category totals for two explicit official datasets.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'sacs_compare_districtsArguments', 'required': ['base_district_identifier', 'base_dataset_ref', 'compare_district_identifier', 'compare_dataset_ref'], 'properties': {'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'fund_codes': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9]{2}$', 'description': 'Two-digit SACS fund code'}, 'maxItems': 20}, {'type': 'null'}], 'title': 'Fund Codes', 'default': None}, 'resource_codes': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9]{4}$'}, 'maxItems': 20}, {'type': 'null'}], 'title': 'Resource Codes', 'default': None}, 'base_dataset_ref': {'type': 'string', 'title': 'Base Dataset Ref', 'pattern': '^official:[1-9][0-9]*$', 'maxLength': 64, 'minLength': 10}, 'compare_dataset_ref': {'type': 'string', 'title': 'Compare Dataset Ref', 'pattern': '^official:[1-9][0-9]*$', 'maxLength': 64, 'minLength': 10}, 'base_district_identifier': {'type': 'string', 'title': 'Base District Identifier', 'maxLength': 100, 'minLength': 2}, 'compare_district_identifier': {'type': 'string', 'title': 'Compare District Identifier', 'maxLength': 100, 'minLength': 2}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_district_context_pack
Build fiscal-distress rows with source filing details. Deficit spending is signed net operating result / expenditure; negative means deficit.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'sacs_district_context_packArguments', 'required': ['district_identifier'], 'properties': {'basis': {'enum': ['estimated_actuals', 'unaudited_actuals', 'adopted_budget', 'first_interim', 'second_interim'], 'type': 'string', 'title': 'Basis', 'default': 'estimated_actuals'}, 'detail': {'enum': ['summary', 'full'], 'type': 'string', 'title': 'Detail', 'default': 'full'}, 'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'fund_codes': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9]{2}$', 'description': 'Inclusive two-digit SACS fund bound'}, 'maxItems': 2, 'minItems': 1}, {'type': 'null'}], 'title': 'Fund Codes', 'default': None}, 'fiscal_year_max': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}$'}, {'type': 'null'}], 'title': 'Fiscal Year Max', 'default': None}, 'fiscal_year_min': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}$'}, {'type': 'null'}], 'title': 'Fiscal Year Min', 'default': None}, 'district_identifier': {'type': 'string', 'title': 'District Identifier', 'maxLength': 100, 'minLength': 2}, 'one_time_resource_codes': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9]{4}$'}, 'maxItems': 50, 'minItems': 1}, {'type': 'null'}], 'title': 'One Time Resource Codes', 'default': None}, 'include_balance_sheet_from_actuals': {'type': 'boolean', 'title': 'Include Balance Sheet From Actuals', 'default': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_district_context_pack_batch
Build bounded district packs with source filing details. Deficit spending is signed net operating result / expenditure; negative means deficit.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'sacs_district_context_pack_batchArguments', 'required': ['district_identifiers'], 'properties': {'basis': {'enum': ['estimated_actuals', 'unaudited_actuals', 'adopted_budget', 'first_interim', 'second_interim'], 'type': 'string', 'title': 'Basis', 'default': 'estimated_actuals'}, 'detail': {'enum': ['summary', 'full'], 'type': 'string', 'title': 'Detail', 'default': 'summary'}, 'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'fund_codes': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9]{2}$', 'description': 'Inclusive two-digit SACS fund bound'}, 'maxItems': 2, 'minItems': 1}, {'type': 'null'}], 'title': 'Fund Codes', 'default': None}, 'fiscal_year_max': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}$'}, {'type': 'null'}], 'title': 'Fiscal Year Max', 'default': None}, 'fiscal_year_min': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}$'}, {'type': 'null'}], 'title': 'Fiscal Year Min', 'default': None}, 'district_identifiers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100, 'minLength': 2}, 'title': 'District Identifiers', 'maxItems': 25, 'minItems': 1}, 'one_time_resource_codes': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9]{4}$'}, 'maxItems': 50, 'minItems': 1}, {'type': 'null'}], 'title': 'One Time Resource Codes', 'default': None}, 'include_balance_sheet_from_actuals': {'type': 'boolean', 'title': 'Include Balance Sheet From Actuals', 'default': True}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_explain_code
Explain current public fund, resource, goal, function, or object codes.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'sacs_explain_codeArguments', 'required': ['code_type', 'query'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'title': 'Query', 'maxLength': 80, 'minLength': 1}, 'offset': {'type': 'integer', 'title': 'Offset', 'default': 0, 'maximum': 500, 'minimum': 0}, 'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'code_type': {'enum': ['fund', 'resource', 'goal', 'function', 'object'], 'type': 'string', 'title': 'Code Type'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_list_public_datasets
List versioned official public SACS datasets for one district.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'sacs_list_public_datasetsArguments', 'required': ['district_identifier'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'integer', 'title': 'Offset', 'default': 0, 'maximum': 500, 'minimum': 0}, 'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'district_identifier': {'type': 'string', 'title': 'District Identifier', 'maxLength': 100, 'minLength': 2}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_query_attendance
Return recovered Form A ADA observations for one official district filing.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'sacs_query_attendanceArguments', 'required': ['district_identifier', 'dataset_ref'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'integer', 'title': 'Offset', 'default': 0, 'maximum': 500, 'minimum': 0}, 'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'dataset_ref': {'type': 'string', 'title': 'Dataset Ref', 'pattern': '^official:[1-9][0-9]*$', 'maxLength': 64, 'minLength': 10}, 'district_identifier': {'type': 'string', 'title': 'District Identifier', 'maxLength': 100, 'minLength': 2}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_query_financial_summary
Return bounded aggregate financial summaries for one explicit official dataset.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'sacs_query_financial_summaryArguments', 'required': ['district_identifier', 'dataset_ref'], 'properties': {'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'dataset_ref': {'type': 'string', 'title': 'Dataset Ref', 'pattern': '^official:[1-9][0-9]*$', 'maxLength': 64, 'minLength': 10}, 'group_limit': {'type': 'integer', 'title': 'Group Limit', 'default': 10, 'maximum': 25, 'minimum': 1}, 'fund_code_max': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{2}$', 'description': 'Two-digit SACS fund code'}, {'type': 'null'}], 'title': 'Fund Code Max', 'default': None}, 'fund_code_min': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{2}$', 'description': 'Two-digit SACS fund code'}, {'type': 'null'}], 'title': 'Fund Code Min', 'default': None}, 'goal_code_max': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}$'}, {'type': 'null'}], 'title': 'Goal Code Max', 'default': None}, 'goal_code_min': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}$'}, {'type': 'null'}], 'title': 'Goal Code Min', 'default': None}, 'object_code_max': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}$'}, {'type': 'null'}], 'title': 'Object Code Max', 'default': None}, 'object_code_min': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}$'}, {'type': 'null'}], 'title': 'Object Code Min', 'default': None}, 'function_code_max': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}$'}, {'type': 'null'}], 'title': 'Function Code Max', 'default': None}, 'function_code_min': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}$'}, {'type': 'null'}], 'title': 'Function Code Min', 'default': None}, 'resource_code_max': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}$'}, {'type': 'null'}], 'title': 'Resource Code Max', 'default': None}, 'resource_code_min': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{4}$'}, {'type': 'null'}], 'title': 'Resource Code Min', 'default': None}, 'district_identifier': {'type': 'string', 'title': 'District Identifier', 'maxLength': 100, 'minLength': 2}, 'include_zero_categories': {'type': 'boolean', 'title': 'Include Zero Categories', 'default': False, 'description': 'Include zero-amount object category and group rows.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_register_client
Optionally register this MCP installation. Before calling, tell the operator registration is voluntary, data access works without it, list the fields to be stored, and obtain consent. Never infer or submit personal or confidential information.
Input schema
{'type': 'object', 'title': 'sacs_register_clientArguments', 'required': ['consent_to_store'], 'properties': {'use_case': {'anyOf': [{'type': 'string', 'maxLength': 500, 'minLength': 1}, {'type': 'null'}], 'title': 'Use Case', 'default': None}, 'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'user_type': {'anyOf': [{'enum': ['district_staff', 'county_office_staff', 'state_agency_staff', 'researcher', 'consultant', 'vendor', 'community_member', 'other', 'prefer_not_to_say'], 'type': 'string'}, {'type': 'null'}], 'title': 'User Type', 'default': None}, 'agent_client': {'anyOf': [{'type': 'string', 'maxLength': 100, 'minLength': 1}, {'type': 'null'}], 'title': 'Agent Client', 'default': None}, 'consent_to_store': {'type': 'boolean', 'const': True, 'title': 'Consent To Store', 'description': 'Must be true, and only after the operator accepts the disclosed storage.'}, 'home_district_cds': {'anyOf': [{'type': 'string', 'pattern': '^[0-9]{14}$'}, {'type': 'null'}], 'title': 'Home District Cds', 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_search_districts
Resolve a public California district name, 7-digit LEA, or 14-digit CDS code.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'sacs_search_districtsArguments', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'title': 'Query', 'maxLength': 100, 'minLength': 2}, 'offset': {'type': 'integer', 'title': 'Offset', 'default': 0, 'maximum': 500, 'minimum': 0}, 'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
sacs_submit_feedback
Report a wrong, stale, incomplete, or failed result, or send a feature request. Ask the operator to report issues here; explain the exact fields and submit only with consent. Include request ID and data version when available. Anonymous feedback is welcome. Never include personal, student, personnel, or confidential information.
Input schema
{'type': 'object', 'title': 'sacs_submit_feedbackArguments', 'required': ['sentiment', 'message'], 'properties': {'message': {'type': 'string', 'title': 'Message', 'maxLength': 2000, 'minLength': 2}, 'client_id': {'anyOf': [{'type': 'string', 'pattern': '^sacs_client_[0-9a-f]{32}$'}, {'type': 'null'}], 'title': 'Client Id', 'default': None}, 'sentiment': {'enum': ['good', 'bad', 'mixed'], 'type': 'string', 'title': 'Sentiment'}, 'feedback_type': {'enum': ['general', 'feature_request', 'incorrect', 'incomplete', 'stale', 'missing_context'], 'type': 'string', 'title': 'Feedback Type', 'default': 'general'}, 'related_request_id': {'anyOf': [{'type': 'string', 'pattern': '^[A-Za-z0-9._:-]{8,128}$'}, {'type': 'null'}], 'title': 'Related Request Id', 'default': None}, 'related_data_version': {'anyOf': [{'type': 'string', 'maxLength': 256, 'minLength': 1}, {'type': 'null'}], 'title': 'Related Data Version', 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$defs': {'PublicError': {'type': 'object', 'title': 'PublicError', 'required': ['code', 'message'], 'properties': {'code': {'enum': ['invalid_request', 'not_found', 'private_scope_denied', 'dataset_mismatch', 'payload_rejected', 'backend_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable', 'default': False}}, 'additionalProperties': False}, 'SourceProvenance': {'type': 'object', 'title': 'SourceProvenance', 'required': ['source', 'record_ref', 'description'], 'properties': {'source': {'type': 'string', 'title': 'Source', 'maxLength': 120, 'minLength': 1}, 'record_ref': {'type': 'string', 'title': 'Record Ref', 'maxLength': 160, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'PublicToolResponse', 'required': ['data_version', 'request_id', 'ok'], 'properties': {'ok': {'type': 'boolean', 'title': 'Ok'}, 'data': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Data', 'default': None}, 'error': {'anyOf': [{'$ref': '#/$defs/PublicError'}, {'type': 'null'}], 'default': None}, 'request_id': {'type': 'string', 'title': 'Request Id', 'maxLength': 128, 'minLength': 8}, 'limitations': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Limitations', 'maxItems': 50}, 'data_version': {'type': 'string', 'title': 'Data Version', 'maxLength': 256, 'minLength': 1}, 'contract_version': {'type': 'string', 'const': 'sacs.mcp.v1', 'title': 'Contract Version', 'default': 'sacs.mcp.v1'}, 'source_provenance': {'type': 'array', 'items': {'$ref': '#/$defs/SourceProvenance'}, 'title': 'Source Provenance'}}, 'additionalProperties': False}
Changed
sacs_submit_feedback
Oct. 1, 2026, 2:40 a.m.
Added
sacs_query_attendance
Oct. 1, 2026, 2:40 a.m.
Added
sacs_submit_feedback
Sept. 29, 2026, 2:40 a.m.
Added
sacs_register_client
Sept. 29, 2026, 2:40 a.m.
Added
sacs_explain_code
Sept. 29, 2026, 2:40 a.m.
Added
sacs_district_context_pack_batch
Sept. 29, 2026, 2:40 a.m.
Added
sacs_district_context_pack
Sept. 29, 2026, 2:40 a.m.
Added
sacs_compare_districts
Sept. 29, 2026, 2:40 a.m.
Added
sacs_query_financial_summary
Sept. 29, 2026, 2:40 a.m.
Added
sacs_list_public_datasets
Sept. 29, 2026, 2:40 a.m.
Added
sacs_search_districts
Sept. 29, 2026, 2:40 a.m.