io.github.thehesiod/psquare
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PS_PASSWORD | No | Your ParentSquare password | |
| PS_USERNAME | No | Your ParentSquare username (email) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| submit_mfa_codeA | Submit a 6-digit MFA verification code to complete ParentSquare login. When a ParentSquare tool returns an MFA error, a verification code is sent to your email. Check your email for the code and use this tool to complete authentication. Args: code: The 6-digit verification code from your email |
| list_schoolsA | List available schools and students in your ParentSquare account. Returns JSON with schools, students, and your user ID. Use the school_id and student_id values from this output in other tools. For school contact info (phone, address), use get_directory(school_id). |
| list_school_featuresA | List features available for a specific school by parsing its sidebar navigation. Returns a list of available sections (Feed, Messages, Calendar, Photos, etc.). Different schools may have different features enabled. Args: school_id: School ID (use list_schools to find available IDs) |
| get_feedsA | Get recent posts from a school's feed with titles, authors, dates, and summaries. Returns a paginated list of posts. Use get_post with the feed_id to see full details. Args: school_id: School ID page: Page number for pagination (default: 1) |
| get_postB | Get full details of a specific post including body text, comments, and attachments. Image attachments are returned inline so you can see their contents directly. PDF attachments have their text extracted and included inline. Args: feed_id: Post/feed ID (shown as feed_id in get_feeds results) |
| list_conversationsA | List message conversations for a school. Returns conversation IDs, participants, and previews. To read a full conversation, call get_conversation with BOTH the same school_id used here AND the chat_id shown in the results. Args: school_id: School ID (use list_schools to find available IDs) |
| get_conversationA | Read a specific message conversation thread with all messages. IMPORTANT: Both school_id and chat_id are required. Args: school_id: School ID (same school_id used in list_conversations) chat_id: Conversation/chat ID (from list_conversations results) |
| get_calendar_eventsA | Get calendar events for a school using the ICS calendar export. Returns JSON array of events with title, start/end times, location, and description. Note: Some schools post monthly calendars as images or PDFs in the feed instead of using the ICS calendar. If this returns no events, use get_feeds to browse recent posts — look for posts with "calendar" in the title or image/PDF attachments. Use get_post to view them (images are returned inline so you can read them). Args: school_id: School ID |
| list_photosB | List photos posted for a school. Returns photo URLs that can be used with download_file. Args: school_id: School ID page: Page number (default: 1) |
| list_filesC | List files and documents posted for a school. Returns file URLs for download_file. Args: school_id: School ID |
| download_fileA | Download a photo, video, or file to local disk from a ParentSquare URL. Returns the local file path where the file was saved. Use URLs from list_photos, list_files, or get_post attachment results. Args: url: The file URL (from list_photos, list_files, or get_post results) filename: Optional custom filename. If not provided, uses the original filename from the URL. |
| get_directoryA | List school contact info and staff directory with names, roles, and phone numbers. Returns JSON with school details (phone, address) and staff records. Use get_staff_member(school_id, user_id) for full staff details including email, photo, and office hours. Args: school_id: School ID |
| get_staff_memberA | Get detailed info for a specific staff member including email, photo, and office hours. Use get_directory first to find the user_id, then call this for full details. Returns structured data plus an inline profile photo when available. Args: school_id: School ID user_id: Staff member's user ID (from get_directory results) |
| list_groupsA | List groups at a school with member counts and descriptions. To view a group's posts, call get_group_feed with BOTH the same school_id used here AND the group_id shown in the results. Args: school_id: School ID (use list_schools to find available IDs) |
| get_group_feedA | Get posts from a specific group's feed. IMPORTANT: Both school_id and group_id are required. Args: school_id: School ID (same school_id used in list_groups) group_id: Group ID (from list_groups results) |
| get_student_dashboardB | Get student dashboard information including school, grade, classes, and teachers. Args: student_id: Student ID (use list_schools to see available students) |
| list_signupsA | List sign-up and RSVP posts for a school (item donations, volunteer slots, event RSVPs). Shows each signup post with its title, progress (e.g. "53/103 Items"), and author. Use get_post with the feed_id to see full signup details including individual items. Args: school_id: School ID page: Page number for pagination (default: 1) |
| list_noticesC | List alerts and notices for a school (urgent alerts, secure documents, consent forms). Args: school_id: School ID |
| list_pollsA | List polls for a school with questions, options, and vote counts. Shows each poll's question, answer options with vote totals, and which option is winning. Args: school_id: School ID |
| list_linksB | List quick-access links for a school (calendars, menus, forms, etc.). Returns link names and URLs (typically Google Drive or external sites). Args: school_id: School ID |
| list_paymentsB | List payment items for a school with summary stats and item prices. Shows upcoming/paid counts, total amount paid, and each payment post with its available items and prices. Args: school_id: School ID |
| list_volunteer_hoursB | List your logged volunteer hours for a school. Shows each logged entry with month, activity type, notes, and hours. Args: school_id: School ID |
| list_formsA | List available forms and permission slips for a school. Shows form titles, authors, and dates. These are signable forms that may require parent signatures (e.g. field trip permission, driver forms). Use get_post with the feed_id to see the full form content. Args: school_id: School ID |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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