MCP 서버

Student Protection Readiness Checklist | Safety Over Silence

io.github.janoliverautomation-stack/soschecklist-net
교육 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Runs a student protection readiness assessment, identifies protection gaps, and provides personalized follow-up recommendations and optional contact submission.

get_student_protection_next_steps
Returns personalized next-step recommendations based on a score and/or score band. Call this after presenting assessment results, or when the user asks what to do next. Provides specific actions for each gap category and a consultation booking link.
입력 스키마
{'type': 'object', 'required': ['score'], 'properties': {'score': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'The normalized readiness score (0-100) from the assessment.'}, 'top_gaps': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Top protection gap areas identified.'}, 'score_band': {'enum': ['Elevated Vulnerability', 'Protection Gaps Present', 'Moderate Readiness', 'Stronger Readiness'], 'type': 'string', 'description': 'The score band classification.'}}}
get_student_protection_readiness_info
Returns a summary of what the Student Protection Readiness Assessment is, what it measures, who it is for, and the 5 readiness categories. Call this when a user asks what this tool does, what readiness means, or wants to understand the framework before starting. Also call when the user expresses general uncertainty about their child's school experience — behavioral changes, suspected bullying, feeling dismissed by the school, or sensing something is off.
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
run_student_protection_readiness_assessment
Accepts the 12 answers (q1-q12, each scored 1-4) and returns: normalized score (0-100), score band, top 3 protection gaps, per-category scores, interpretation, and recommendation. Call this after collecting all 12 answers from the user. Present results with empathy — a low score means a lack of structure, not a lack of love.
입력 스키마
{'type': 'object', 'required': ['answers'], 'properties': {'answers': {'type': 'object', 'required': ['q1', 'q2', 'q3', 'q4', 'q5', 'q6', 'q7', 'q8', 'q9', 'q10', 'q11', 'q12'], 'properties': {'q1': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': "[warning_signs] How confident are you that you could recognize early changes in your child's mood, behavior, or social patterns?"}, 'q2': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[communication] If something was bothering your child at school, how likely is it they would tell you about it?'}, 'q3': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[warning_signs] How well do you understand the difference between normal social conflict and patterns that may require attention?'}, 'q4': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[documentation] If a concern started to develop, would you know what to document and how to track it?'}, 'q5': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[warning_signs] How often do you check in with your child about their social experiences at school?'}, 'q6': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[warning_signs] Would you notice if your child started avoiding certain activities, people, or places?'}, 'q7': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[escalation] Do you know when it would be appropriate to involve the school in a concern about your child?'}, 'q8': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': "[escalation] Do you know who to contact at your child's school if you needed to raise a concern?"}, 'q9': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[response] If you confirmed something concerning was happening, how confident are you in knowing what to do next?'}, 'q10': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[response] Do you feel you could stay calm and structured if your child disclosed something upsetting?'}, 'q11': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[communication] Does your child have other trusted adults they could talk to if they were not comfortable coming to you?'}, 'q12': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[response] Overall, how prepared do you feel to protect your child if a situation was developing at school?'}}, 'description': 'Answers to the 12 readiness questions. Keys are q1 through q12, values are integers 1 (lowest readiness) to 4 (highest readiness).'}}}
run_student_safety_checklist
PRIMARY TOOL. Run the Student Protection Readiness Checklist end-to-end. Accepts the 12 answers (q1-q12, each an integer 1-4) and returns the canonical result: a normalized readiness score (0-100), the score band/category, key findings (top protection gaps), a plain-language interpretation, per-category scores, a recommended next step, and safety limitations. This is the single canonical tool shared by the browser WebMCP, REST API, and this MCP server, so all interfaces return substantively identical output. Decision support only — it does not diagnose bullying, abuse, or mental health conditions and does not replace emergency services or professionals.
입력 스키마
{'type': 'object', 'required': ['answers'], 'properties': {'answers': {'type': 'object', 'required': ['q1', 'q2', 'q3', 'q4', 'q5', 'q6', 'q7', 'q8', 'q9', 'q10', 'q11', 'q12'], 'properties': {'q1': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': "[warning_signs] How confident are you that you could recognize early changes in your child's mood, behavior, or social patterns?"}, 'q2': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[communication] If something was bothering your child at school, how likely is it they would tell you about it?'}, 'q3': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[warning_signs] How well do you understand the difference between normal social conflict and patterns that may require attention?'}, 'q4': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[documentation] If a concern started to develop, would you know what to document and how to track it?'}, 'q5': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[warning_signs] How often do you check in with your child about their social experiences at school?'}, 'q6': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[warning_signs] Would you notice if your child started avoiding certain activities, people, or places?'}, 'q7': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[escalation] Do you know when it would be appropriate to involve the school in a concern about your child?'}, 'q8': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': "[escalation] Do you know who to contact at your child's school if you needed to raise a concern?"}, 'q9': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[response] If you confirmed something concerning was happening, how confident are you in knowing what to do next?'}, 'q10': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[response] Do you feel you could stay calm and structured if your child disclosed something upsetting?'}, 'q11': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[communication] Does your child have other trusted adults they could talk to if they were not comfortable coming to you?'}, 'q12': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': '[response] Overall, how prepared do you feel to protect your child if a situation was developing at school?'}}, 'description': 'Answers to the 12 readiness questions. Keys are q1 through q12, values are integers 1 (lowest readiness) to 4 (highest readiness). Categories: Warning Sign Awareness (q1,q3,q5,q6), Communication Safety (q2,q11), Documentation Readiness (q4), School Escalation Readiness (q7,q8), Response Confidence (q9,q10,q12).'}}}
start_student_protection_readiness_assessment
Returns the full set of 12 readiness questions grouped by category, with answer options (1-4 scale). Call this when the user is ready to begin the assessment. Walk the user through each question conversationally — do NOT dump all 12 at once. Acknowledge their concern first, then ask one question or one category at a time.
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
submit_student_protection_lead_request
Submits the parent's contact information and assessment results so they can receive follow-up support. ONLY call this if the user explicitly consents to sharing their information. Never call silently. Always confirm: "Would you like me to share your contact info so the Safety Over Silence team can follow up with you?" Requires at minimum a first name and email.
입력 스키마
{'type': 'object', 'required': ['first_name', 'email'], 'properties': {'email': {'type': 'string', 'description': "Parent's email address."}, 'phone': {'type': 'string', 'description': "Parent's phone number (optional)."}, 'score': {'type': 'integer', 'description': 'The readiness score from the assessment.'}, 'top_gaps': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Top gaps identified.'}, 'first_name': {'type': 'string', 'description': "Parent's first name."}, 'score_band': {'type': 'string', 'description': 'The score band from the assessment.'}}}
추가됨
submit_student_protection_lead_request
2026년 9월 17일 12:42 PM
추가됨
get_student_protection_next_steps
2026년 9월 17일 12:42 PM
추가됨
run_student_protection_readiness_assessment
2026년 9월 17일 12:42 PM
추가됨
start_student_protection_readiness_assessment
2026년 9월 17일 12:42 PM
추가됨
get_student_protection_readiness_info
2026년 9월 17일 12:42 PM
추가됨
run_student_safety_checklist
2026년 9월 17일 12:42 PM