Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PROCARE_BASE_URLYesThe base URL of your Procare Connect tenant subdomain, e.g., https://<your-subdomain>.procareconnect.com
PROCARE_CLIENT_IDYesYour OAuth client ID for the Procare Connect API
PROCARE_CLIENT_SECRETYesYour OAuth client secret for the Procare Connect API

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
health_checkA

Verify credentials work. Calls list_schools (the cheapest read).

If this fails with ProcareAuthError, check PROCARE_BASE_URL (must be your tenant subdomain, e.g. https://mycenter.procareconnect.com) and that PROCARE_CLIENT_ID / PROCARE_CLIENT_SECRET are correct.

Example: call with no arguments to run a smoke test.

list_schoolsA

List all schools/locations accessible to the enterprise account.

Use when: "what schools are on our Procare account?" or "what center IDs do I have access to?" before calling per-school tools.

Example: returns [{"id": "...", "name": "...", ...}, ...].

get_schoolA

Fetch a single school by id (name, address, phone, hours, etc.).

Use when: "what's the address of school 1234?" or "what are the hours for our downtown location?"

Example: school_id="abc-123" returns {"id": "abc-123", "name": "..."}.

list_childrenA

List children enrolled, optionally filtered by school.

Use when: "show me all children at school 1234" or "list the next 50 children across all schools." Combine with offset for pagination.

Args: school_id: restrict to one school within the enterprise account. limit: max records to return (server-side cap applies). offset: skip N records for pagination.

Example: list_children(school_id="abc-123", limit=20) returns [{"id": "...", "first_name": "...", "last_name": "...", ...}, ...].

get_childA

Fetch a single child by id (full record: allergies, schedule, etc.).

Use when: "what are the allergies for child X?" or "show me the enrollment record for this child."

Example: child_id="kid-789" returns {"id": "kid-789", "first_name": "...", "allergies": [...], "schedule": {...}, ...}.

list_familiesA

List families (households), optionally filtered by school.

Use when: "show me all families at school 1234" or "how many active households are on our books?"

Args: school_id: restrict to one school. limit: max records. offset: skip N records for pagination.

get_familyA

Fetch a single family by id (guardians, children, contacts, balance).

Use when: "what's the balance on family 555?" or "show me the guardians

  • emergency contacts for this household."

Example: family_id="fam-555" returns {"id": "fam-555", "guardians": [...], "children": [...], "balance_cents": ...}.

list_attendanceA

List attendance records, filterable by school / child / date range.

Use when: "who was absent on Monday at school 1234?" or "give me the full attendance log for child X over the last 30 days."

Args: school_id: restrict to one school. child_id: restrict to one child. date_from: ISO date YYYY-MM-DD (inclusive). date_to: ISO date YYYY-MM-DD (inclusive). limit: max records.

list_programsA

List programs (camps, preschool, after-school, summer).

Use when: "what programs do we currently offer?" or "show me the active summer programs at school 1234."

Args: school_id: restrict to one school. active: filter by active flag (True / False / None = all).

get_programA

Fetch a single program by id (description, schedule, capacity, fee).

Use when: "what's the capacity and weekly fee for program 7777?"

list_registrationsA

List registrations (enrollments), filterable by program / child / school.

Use when: "who's enrolled in program 7777?" or "what programs is child X currently in?" or "how many active registrations does school 1234 have?"

Args: program_id: restrict to one program. child_id: restrict to one child. school_id: restrict to one school. limit: max records.

list_paymentsA

List payments / invoices, filterable by family / school / date range.

Use when: "show me all payments for family 555 in October" or "what was our total revenue at school 1234 last month?"

Args: family_id: restrict to one family. school_id: restrict to one school. date_from: ISO date YYYY-MM-DD (inclusive). date_to: ISO date YYYY-MM-DD (inclusive). limit: max records.

list_staffA

List staff members, optionally filtered by school / active flag.

Use when: "who are the active teachers at school 1234?" or "show me all staff across all our schools."

get_staff_memberA

Fetch a single staff member by id (name, role, classrooms, schedule).

Use when: "what's the role and classroom assignment for staff 222?"

list_classroomsA

List classrooms, optionally filtered by school.

Use when: "what classrooms do we have at school 1234?"

get_classroomA

Fetch a single classroom by id (capacity, age range, lead teacher).

Use when: "what's the capacity and age range for classroom 33?"

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: singular get_* for individual records, plural list_* for collections, and health_check for auth verification. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (e.g., get_child, list_schools). The only outlier is health_check, which still follows verb_noun and is standard for such tools.

Tool Count5/5

16 tools cover the major entities (children, classrooms, families, programs, schools, staff, attendance, payments, registrations) without being excessive. The number is well-scoped for a child care management API.

Completeness2/5

The tool set is entirely read-only (get and list only). No create, update, or delete operations exist for any entity, which is a significant gap for typical CRUD workflows and will cause agent failures when mutation is needed.

Maintenance

ActivityStale
ResponsivenessNo issues