Skip to main content
Glama
thehesiod

io.github.thehesiod/psquare

by thehesiod

add_staff

Add a teacher or other staff member to a school, assign them to specific classes with a role, and trigger a registration invite.

Instructions

Add a teacher or other staff member to a school. Requires PS_ENABLE_WRITES.

ParentSquare emails the new account an address-verification/registration invite. Passing section_ids assigns them to those classes right away (as class_role, default TEACHER) — verified live, because ParentSquare's own "invited classes" field does not create the assignment until the person registers, so this tool makes the assignment itself.

Args: school_id: School ID first_name: Staff member's first name last_name: Staff member's last name email: Email address (optional but needed for them to register) phone: Phone number (optional) title: Title shown at the school, e.g. "3rd Grade Teacher" (optional) staff_id: The school's own staff/external ID (optional) is_admin: True to grant school Admin rather than Staff access section_ids: Class/section IDs to assign them to (from list_classes) class_role: Role for those classes — TEACHER (default) or ASSISTANT

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
emailNo
phoneNo
titleNo
is_adminNo
staff_idNo
last_nameYes
school_idYes
class_roleNoTEACHER
first_nameYes
section_idsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the permission requirement, the email invite side effect, and the behavior that section_ids assignments are made directly, contrasting with ParentSquare's own behavior. It also notes that email is needed for registration. While it doesn't cover all edge cases, it gives strong behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and a permission note, then a well-structured bullet list of parameters. Each sentence adds value. It is somewhat long due to the parameter list, but that is justified given the tool's complexity. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, no annotations, and 0% schema coverage, the description covers the core behavior, permissions, side effects, and each parameter meaning. It does not discuss return values (though an output schema exists) or potential errors/edge cases (e.g., duplicate emails, missing email consequences), but overall it is thorough enough for an agent to correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only source of parameter meaning. It provides an 'Args:' section explaining all 10 parameters, including optionality, defaults, and hints like 'from list_classes' for section_ids. This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Add') and resource ('a teacher or other staff member to a school') with clear scope. It distinguishes itself from sibling tools like add_student and add_parent by specifying staff, and also unique behavior with section_ids. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides some context (requires PS_ENABLE_WRITES, mentions when section_ids should be used) but does not explicitly name alternatives or conditions for when not to use this tool. It could mention add_class_staff for adding existing staff to classes, but it doesn't. Guidance is mostly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/thehesiod/psquare-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server