Student Protection Readiness Checklist | Safety Over Silence

A 2-minute assessment to help parents understand and respond to student safety concerns with clarity

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
77%
Naming quality
83%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'get_student_protection_readiness_info' name length outside 3-30 rangein get_student_protection_readiness_info
  • LOWTool 'start_student_protection_readiness_assessment' name length outside 3-30 rangein start_student_protection_readiness_assessment
  • LOWTool 'run_student_protection_readiness_assessment' name length outside 3-30 rangein run_student_protection_readiness_assessment
  • LOWTool 'get_student_protection_next_steps' name length outside 3-30 rangein get_student_protection_next_steps
  • LOWTool 'submit_student_protection_lead_request' name length outside 3-30 rangein submit_student_protection_lead_request

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,061Tokens (tool definitions)
~3.0 KBTypical response size
Moderate attention impact (1.61% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "soschecklist-net": {
      "url": "https://soschecklist.net/mcp"
    }
  }
}

Remote endpoints

https://soschecklist.net/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪run_student_safety_checklist(answers)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "answers": {
      "type": "object",
      "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).",
      "properties": {
        "q1": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "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",
          "minimum": 1,
          "maximum": 4,
          "description": "[communication] If something was bothering your child at school, how likely is it they would tell you about it?"
        },
        "q3": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[warning_signs] How well do you understand the difference between normal social conflict and patterns that may require attention?"
        },
        "q4": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[documentation] If a concern started to develop, would you know what to document and how to track it?"
        },
        "q5": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[warning_signs] How often do you check in with your child about their social experiences at school?"
        },
        "q6": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[warning_signs] Would you notice if your child started avoiding certain activities, people, or places?"
        },
        "q7": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[escalation] Do you know when it would be appropriate to involve the school in a concern about your child?"
        },
        "q8": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[escalation] Do you know who to contact at your child's school if you needed to raise a concern?"
        },
        "q9": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[response] If you confirmed something concerning was happening, how confident are you in knowing what to do next?"
        },
        "q10": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[response] Do you feel you could stay calm and structured if your child disclosed something upsetting?"
        },
        "q11": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[communication] Does your child have other trusted adults they could talk to if they were not comfortable coming to you?"
        },
        "q12": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[response] Overall, how prepared do you feel to protect your child if a situation was developing at school?"
        }
      },
      "required": [
        "q1",
        "q2",
        "q3",
        "q4",
        "q5",
        "q6",
        "q7",
        "q8",
        "q9",
        "q10",
        "q11",
        "q12"
      ]
    }
  },
  "required": [
    "answers"
  ]
}
🟢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.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}
🟡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.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": []
}
⚪run_student_protection_readiness_assessment(answers)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "answers": {
      "type": "object",
      "description": "Answers to the 12 readiness questions. Keys are q1 through q12, values are integers 1 (lowest readiness) to 4 (highest readiness).",
      "properties": {
        "q1": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "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",
          "minimum": 1,
          "maximum": 4,
          "description": "[communication] If something was bothering your child at school, how likely is it they would tell you about it?"
        },
        "q3": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[warning_signs] How well do you understand the difference between normal social conflict and patterns that may require attention?"
        },
        "q4": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[documentation] If a concern started to develop, would you know what to document and how to track it?"
        },
        "q5": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[warning_signs] How often do you check in with your child about their social experiences at school?"
        },
        "q6": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[warning_signs] Would you notice if your child started avoiding certain activities, people, or places?"
        },
        "q7": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[escalation] Do you know when it would be appropriate to involve the school in a concern about your child?"
        },
        "q8": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[escalation] Do you know who to contact at your child's school if you needed to raise a concern?"
        },
        "q9": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[response] If you confirmed something concerning was happening, how confident are you in knowing what to do next?"
        },
        "q10": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[response] Do you feel you could stay calm and structured if your child disclosed something upsetting?"
        },
        "q11": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[communication] Does your child have other trusted adults they could talk to if they were not comfortable coming to you?"
        },
        "q12": {
          "type": "integer",
          "minimum": 1,
          "maximum": 4,
          "description": "[response] Overall, how prepared do you feel to protect your child if a situation was developing at school?"
        }
      },
      "required": [
        "q1",
        "q2",
        "q3",
        "q4",
        "q5",
        "q6",
        "q7",
        "q8",
        "q9",
        "q10",
        "q11",
        "q12"
      ]
    }
  },
  "required": [
    "answers"
  ]
}
🟢get_student_protection_next_steps(score, score_band, top_gaps)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "score": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100,
      "description": "The normalized readiness score (0-100) from the assessment."
    },
    "score_band": {
      "type": "string",
      "enum": [
        "Elevated Vulnerability",
        "Protection Gaps Present",
        "Moderate Readiness",
        "Stronger Readiness"
      ],
      "description": "The score band classification."
    },
    "top_gaps": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Top protection gap areas identified."
    }
  },
  "required": [
    "score"
  ]
}
🟡submit_student_protection_lead_request(first_name, email, phone, score, score_band, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "description": "Parent's first name."
    },
    "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."
    },
    "score_band": {
      "type": "string",
      "description": "The score band from the assessment."
    },
    "top_gaps": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Top gaps identified."
    }
  },
  "required": [
    "first_name",
    "email"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools