pickuppatrol-mcp
Read and change your children's school dismissal plans on PickUp Patrol (app.pickuppatrol.net) from a shell with curl — students, weekly defaults, day-by-day changes, school cutoff times. Skill: pickuppatrol-mcp Owner: chrischall Summary: Read and change your children's school dismissal plans on PickUp Patrol (app.pickuppatrol.net) from a shell with curl — students, weekly defaults, day-by-day changes, school cutoff times. Tags: latest:1.2.1 Version history: v1.2.1 | 2026-10-09T23:27:54.931Z | auto - Removed the file: skill-card.md - No changes to core API or functional documentation. - Simplified fil
Rank
62
Safety
84
Downloads
1.1k
Updated
Oct 11, 2026
Version
1.2.1
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1.1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 1.2.1release · observed Oct 9, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:pickuppatrol-mcp- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-pickuppatrol-mcp/snapshot"
Documentation
CLAWHUB
144,101 characters of source documentation, loaded on request.
Extracted files
4 files captured from the source.
SKILL.md
--- name: pickuppatrol-api description: "Read and change your children's school dismissal plans on PickUp Patrol (app.pickuppatrol.net) from a shell with curl — students, weekly defaults, day-by-day changes, school cutoff times." --- # PickUp Patrol from a shell `app.pickuppatrol.net` is a ServiceStack JSON API behind an Ionic/Vue SPA. It is reachable **server-side with plain `curl`** — no bot wall, no captcha, no browser bridge. Use this when you want PickUp Patrol data in a script or on a machine without the `pickuppatrol-mcp` server. Full captured shapes: `references/api.md`. ## Sign in once per shell ```bash export PUP_USER='[email protected]' read -rs PUP_PASS && export PUP_PASS # never put the password in a command line export PUP=https://app.pickuppatrol.net/api/json/reply pup_login() { local jar; jar=$(mktemp -t pupjar) curl -sS -c "$jar" -X POST "$PUP/Authenticate" \ -H 'Content-Type: application/json' \ -d "$(jq -nc --arg u "$PUP_USER" --arg p "$PUP_PASS" \ '{provider:"credentials",UserName:$u,Password:$p,RememberMe:true}')" \ -o /tmp/pup_auth.json -w '%{http_code}' >/tmp/pup_code [ "$(cat /tmp/pup_code)" = 200 ] || { jq -r '.ResponseStatus.Message' /tmp/pup_auth.json >&2; return 1; } export PUP_JAR="$jar" # This deployment returns cookies only — BearerToken comes back null. The # JWT path exists server-side, so keep a token if one ever appears. PUP_TOKEN=$(jq -r '.BearerToken // empty' /tmp/pup_auth.json); export PUP_TOKEN } # Every call goes through this: it sends the session cookies, and the bearer # token as well when the deployment issued one. pup() { local method=$1 dto=$2; shift 2 local -a auth=(-b "$PUP_JAR") [ -n "$PUP_TOKEN" ] && auth+=(-H "Authorization: Bearer $PUP_TOKEN") curl -sS -X "$method" "$PUP/$dto" -H 'Content-Type: application/json' "${auth[@]}" "$@" } ``` **Never re-run a rejected login.** PickUp Patrol answers bad credentials with `ResponseStatus.ErrorCode` starting `LOGIN-ERROR`, counts the attempt against the account, and a lockout clears only through their support desk. One failure = stop and fix the credentials. ## Reads ```bash pup GET GetSession | jq '{name:.DisplayName, email:.Email, kids:[.Children[].StudentId]}' pup GET GetChildren | jq -r '.[] | "\(.StudentId) \(.FirstName) — \(.SchoolName)"' # Weekly default plan for one student. DayId is 1-based, SUNDAY = 1. pup GET GetChildren | jq '.[] | select(.StudentId==1050046) | .DefaultPlans | sort_by(.DayId) | map({day:.WeekDayName, option:.TransportationName, note:.Note})' # The dismissal options a school offers, with the rules each imposes. pup GET "GetTransportations?SchoolId=1703" | jq -r '.[] | select(.IsActive) | "\(.TransportationId)\t\(.Name)\tnote=\(.IsNoteRequired)\tcar=\(.UseCarNumbers)\tearly=\(.IsEarlyDismissal)"' # GetPlanEdit returns the date's OVERRIDE, not the effective plan: a date with # no specific plan reads back null even when a weekday default exists. pup GET "GetPlanEdit?P
_meta.json
{
"ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
"slug": "pickuppatrol-mcp",
"version": "1.2.1",
"publishedAt": 1791588474931
}references/api.md
# PickUp Patrol API reference
Every shape here was read off the shipped SPA's own request DTO classes or
observed on a live signed-in session (2026-08-16). No credential, cookie or
token value is recorded.
- Base: `https://app.pickuppatrol.net/api/json/reply/<DtoName>`
- GET args on the query string; POST/PUT/PATCH args in a JSON body
- Auth: session cookies from `Authenticate` (`ss-id`, `ss-pid`, `ss-opt`). This
deployment returns `BearerToken: null`; send `Authorization: Bearer …` too if
one ever appears
- Errors: ServiceStack `{"ResponseStatus":{"ErrorCode","Message","Errors":[…]}}`;
an unauthenticated call to any authorised DTO is a bare `401`
Assumes the `pup` / `pup_login` shell functions from `SKILL.md`.
## Authentication
```bash
curl -sS -c jar -X POST "$PUP/Authenticate" -H 'Content-Type: application/json' \
-d '{"provider":"credentials","UserName":"…","Password":"…","RememberMe":true}'
```
Response: `{UserId, SessionId, UserName, DisplayName, BearerToken, RefreshToken,
Roles, Permissions, ResponseStatus}` — `BearerToken` and `RefreshToken` come
back null here; the session is the cookies.
Two-factor accounts (`User.OtpTypeId` set) need `POST /CreateOtp {OtpTypeId}`
then `PUT /VerifyOtp {Otp, RememberMe}`. Token refresh is
`POST /GetAccessToken {refreshToken}` or `GET /RequestNewtoken?OldToken=…`.
## Read DTOs
| DTO | Args |
|---|---|
| `GetSession` | — |
| `GetSessionInfo` | — |
| `GetChildren` | — |
| `GetStudent` | `StudentId`, `MergeTimeWithNote?` |
| `GetDefaultPlansReviewNeeded` | — |
| `GetParentPlans` | `StartDate`, `EndDate` |
| `GetPlanEdit` | `PlanDate`, `StudentId` |
| `GetBoldedDates` | `StartDate`, `EndDate` (dates differing from the default) |
| `GetInvalidPlanDates` | `SchoolId` (non-school days) |
| `GetTransportations` | `SchoolId` |
| `GetCarNumbers` | `SchoolId` |
| `GetSchool` | `SchoolId` |
| `GetSchoolNotifyTimes` | `SchoolId` |
| `GetSchoolSettings` | `SchoolId` |
| `GetMiddayPlan` | `StudentId`, `PlanDate`, `TypeId?` |
| `GetParentHealthScreenAudits` | `ScreenDate` |
| `GetTermsOfUse` | — |
### Student
```
StudentId SchoolId SchoolName FirstName LastName IsActive SASId TeacherId
AllowPlans CreateDate CreatedBy ModifiedDate ModifiedBy DefaultsModifiedDate
DefaultPlanModifiedBy DefaultsReviewedDate DefaultsReviewedBy DefaultPlans
SafetyFlag DefaultCarNumber LimitedIds
```
`DefaultPlans[]`:
```json
{"StudentId":1050046,"DayId":2,"TransportationId":41246,"Note":"Chris Hall",
"TransportationName":"PickUp","WeekDayName":"Monday","EarlyDismissalTime":null,
"CarNumber":null,"UseCarNumbers":false}
```
`DayId` is 1-based with **Sunday = 1** — verified from a live record where
`DayId: 2` carried `WeekDayName: "Monday"`.
### Transportation
```
TransportationId SchoolId Name NoteHint IsNoteRequired UseCarNumbers
IsNotePrivate IsActive Sequence IsEarlyDismissal IsLimited CutoffTime
CutoffTime{Sunday…Saturday} AllowParentCheck
```
### GetPlanEdit
```
PlanDate StudentId FirstName LastName SchoolId Transkill-card.md
## Description: Provides shell guidance for reading and changing children's school dismissal plans on PickUp Patrol, including weekly defaults, date-specific changes, and school cutoff times. This skill is ready for commercial/non-commercial use. ## Publisher: [chrischall](https://clawhub.ai/user/chrischall) ### License/Terms of Use: MIT-0 ## Use Case: Parents or guardians with a PickUp Patrol account can use this guide to inspect school dismissal options and student plans, then prepare and verify changes from a shell. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: Exposing account credentials, session cookies, or student data stored in temporary files. Mitigation: Use your own account; protect and delete temporary authentication, cookie, and student files after use. Risk: Incorrect write commands can change live student dismissal plans or overwrite student fields. Mitigation: Review every PUT/PATCH command before running it, back up full student JSON before whole-record updates, and re-read plans to verify changes. ## Reference(s): - [PickUp Patrol API reference](references/api.md) ## Skill Output: **Output Type(s):** [Shell commands, Guidance] **Output Format:** [Markdown with shell and JSON examples] **Output Parameters:** [1D] **Other Properties Related to Output:** [Guidance for authenticated reads, plan updates, and verification of changes.] ## Skill Version(s): 1.2.1 (source: ClawHub release metadata) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/chrischall/skills/pickuppatrol-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/skills/pickuppatrol-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T10:19:11.996Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-pickuppatrol-mcp/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-pickuppatrol-mcp/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T10:19:11.996Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.1K downloads",
"href": "https://clawhub.ai/chrischall/pickuppatrol-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/pickuppatrol-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T10:19:11.996Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.2.1",
"href": "https://clawhub.ai/chrischall/pickuppatrol-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/pickuppatrol-mcp",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:27:54.931Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-pickuppatrol-mcp/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-pickuppatrol-mcp/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.2.1",
"description": "- Removed the file: skill-card.md - No changes to core API or functional documentation. - Simplified file structure by eliminating redundant or unnecessary documentation.",
"href": "https://clawhub.ai/chrischall/pickuppatrol-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/pickuppatrol-mcp",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:27:54.931Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
