Honcho
Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.
作者による説明(英語の原文)
Read and change your children's school dismissal plans in PickUp Patrol
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
チェック 2/2 合格 · あなたのパソコンで動きます
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
Pickuppatrol MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
SettingsDeveloperEdit Config
{
"mcpServers": {
"pickuppatrol": {
"command": "npx",
"args": [
"-y",
"@chrischall/pickuppatrol-mcp"
],
"env": {
"PICKUPPATROL_USERNAME": "your-value",
"PICKUPPATROL_PASSWORD": "your-value"
}
}
}
}キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Pickuppatrol MCP を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が Pickuppatrol MCP を使っていると言うか、回答に Pickuppatrol MCP のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ Pickuppatrol MCP につなげません
Pickuppatrol MCP はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
A · Pickuppatrol MCP につなげるアプリを使う
B · ゲーム・スポーツ・料理・学習 の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
Claude Code につなげますが、先に準備が必要です
Pickuppatrol MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)
提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。
キーの取り方は下の提供元 README にあります
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
claude mcp add pickuppatrol --env PICKUPPATROL_USERNAME=your-value --env PICKUPPATROL_PASSWORD=your-value -- npx -y @chrischall/pickuppatrol-mcpEnter の前に「your-value」を自分のキーに書き換えてください
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Pickuppatrol MCP が一覧にあり、接続済みと表示されれば OK です
Pickuppatrol MCP を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が Pickuppatrol MCP を使っていると言うか、回答に Pickuppatrol MCP のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
Pickuppatrol MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)
提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。
キーの取り方は下の提供元 README にあります
Pickuppatrol MCP の設定で PICKUPPATROL_USERNAME, PICKUPPATROL_PASSWORD が空です。自分のキーを入れて保存します
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Pickuppatrol MCP を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が Pickuppatrol MCP を使っていると言うか、回答に Pickuppatrol MCP のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
Pickuppatrol MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)
提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。
キーの取り方は下の提供元 README にあります
Pickuppatrol MCP の設定で PICKUPPATROL_USERNAME, PICKUPPATROL_PASSWORD が空です。自分のキーを入れて保存します
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Pickuppatrol MCP を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が Pickuppatrol MCP を使っていると言うか、回答に Pickuppatrol MCP のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください
JSON 設定は下の「開発者向け」にあります
Claude Code
claude mcp add pickuppatrol --env PICKUPPATROL_USERNAME=your-value --env PICKUPPATROL_PASSWORD=your-value -- npx -y @chrischall/pickuppatrol-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"pickuppatrol": {
"command": "npx",
"args": [
"-y",
"@chrischall/pickuppatrol-mcp"
],
"env": {
"PICKUPPATROL_USERNAME": "your-value",
"PICKUPPATROL_PASSWORD": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"pickuppatrol": {
"command": "npx",
"args": [
"-y",
"@chrischall/pickuppatrol-mcp"
],
"env": {
"PICKUPPATROL_USERNAME": "your-value",
"PICKUPPATROL_PASSWORD": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"pickuppatrol": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@chrischall/pickuppatrol-mcp"
],
"env": {
"PICKUPPATROL_USERNAME": "your-value",
"PICKUPPATROL_PASSWORD": "your-value"
}
}
}
}PICKUPPATROL_USERNAME envPICKUPPATROL_PASSWORD 秘密 envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月11日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント chrischall で確認済みです
コードの最終更新:3 日前
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
まだレビューはありません
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック2項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:PICKUPPATROL_PASSWORD
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は3 日前、最新バージョン(1.3.0)がレジストリに届いたのは6 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Honcho, ShipSwift, Pm Claude Skills
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.
1310 professional Agent Skills + workflow recipes — searchable & fetchable over MCP.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
An MCP server for PickUp Patrol — the school dismissal app. Read and change how your children leave school: their weekly default plan, one-off changes for specific dates, and the school's dismissal options and cutoff times.
Developed and maintained by AI (Claude Code). Use at your own discretion.
app.pickuppatrol.net runs a ServiceStack JSON API behind an Ionic/Vue SPA. There is no published API, but the service is reachable server-side with an ordinary HTTPS request — no browser extension, no bot wall, no captcha. The server signs in with your own email and password and holds the resulting session in memory.
Every request shape is captured in docs/PICKUPPATROL-API.md, read off the shipped client rather than guessed, and exercised against a real account — reads, a write, and its restore.
// .mcp.json
{ "mcpServers": { "pickuppatrol": { "command": "npx", "args": ["-y", "@chrischall/pickuppatrol-mcp"], "env": { "PICKUPPATROL_USERNAME": "you@example.com", "PICKUPPATROL_PASSWORD": "…" } } } }
For local development, copy .env.example to .env and fill it in.
The server starts without credentials — it answers the host's install-time probe and only reports the configuration error on the first tool call.
Reads
| Tool | What it gives you |
|---|---|
pup_get_session | The signed-in account and the students linked to it |
pup_list_students | Every student with their weekly defaults and review flag |
pup_get_student | One student in full |
pup_get_default_plans | A student's weekly default plan, day by day |
pup_list_plans | Day-by-day plans across a date range (view: "brief" for one line per child per day) |
pup_get_plan | One student, one date — including whether it is locked |
pup_list_transportations | A school's dismissal options and the rules each imposes |
pup_get_school | School profile, notify times, cutoff times, settings |
pup_list_non_school_days | Dates no plan can be set for, and dates already changed |
pup_list_car_numbers | Car numbers the school issued to this account |
pup_healthcheck | Credentials sign in and the API answers; on failure, error.kind says which hop broke (edge_blocked, credential_rejected, …) |
Reads are projected to known fields. Plan notes can be written by any guardian on the account, and option hints and school settings by school staff, so every read that carries them is marked untrusted_content with a note telling the model to treat the text as data, not instructions. pup_list_plans, pup_get_plan, pup_get_school and pup_get_student take raw: true for the untouched API record (still marked untrusted) — the only way to see fields such as SASId or SafetyFlag.
Writes — every one asks you to confirm first. A client that can show a confirmation prompt (Claude Code) shows one, unless MCP_CONFIRM_ELICITATION=off. Otherwise the first call makes no change and returns a preview of the exact payload it would send plus a confirmToken, and only a repeat call with that token makes the change — see Confirmations.
| Tool | What it changes |
|---|---|
pup_set_plan | Dismissal for one or more specific dates, or clears them back to the default |
pup_set_default_plans | The weekly default plan, or clears every default |
pup_mark_defaults_reviewed | The school's "defaults need review" prompt |
| variable | default | |
|---|---|---|
MCP_CONFIRM_MODE | ask-user | What a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse. |
MCP_CONFIRM_ELICITATION | on | off never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE path. Set it for a client that claims to support prompts but never shows one (the write hangs — opencode 2.0.x). Any other value stays on, with a warning on stderr. |
MCP_CONFIRM_TTL_SECONDS | 600 | How long a token stays valid. |
MCP_CONFIRM_SECRET | random per process | Signing key; set it only if tokens must survive a server restart. On mcp-host the host supplies a stable per-child key (MCP_HOST_CONFIRM_SECRET) and spent tokens are recorded under MCP_DATA_DIR, so an approval survives an idle restart. |
A token is single-use and bound to the exact payload. The second call re-reads the student and rebuilds the payload, so if anything moved between the preview and the approval — a different date or option, or (for default plans, which round-trip the whole student record) a change made to the record meanwhile — nothing is sent and you get DRAFT_CHANGED with a fresh preview.
Rules are enforced before anything is sent. Each dismissal option carries its own requirements — a note, a car number, an early-dismissal time, or a restriction to particular students. pup_set_plan checks them against the school's own list and refuses with the school's wording, so a rejected write is a validation message rather than an opaque 400.
Writes are verified by re-reading. A 2xx from PickUp Patrol is not proof: a change made after the school's cutoff is accepted and silently ignored. Every write re-reads the affected dates and compares the transportation id and the note — never ModifiedDate, which advances on its own and would make every write look successful. The note is part of the proof because every dismissal option seen so far requires one, which makes a note-only edit ordinary: an id-only comparison would report success from a field that never had to move. The result says verified: true/false, and names the dates that did not move.
skills/pickuppatrol-api/ is a shell-out skill covering the same API with curl and jq, for scripts or a machine where the server is not installed.
npm install
npm run build npm test # fast npm run test:coverage # coverage-enforced at 100%
Tests never touch the network: the transport is injected, and the MCP tools run through a real in-memory client/server pair.
`GetPlanEdit` returns a date's override, not the effective plan. A date with no specific plan reads back TransportationId: null even when the student has a weekly default for that weekday. pup_get_plan passes that through as-is; pup_list_students is where the weekly defaults live.
Sign-in is a session cookie, not a JWT. Authenticate returns BearerToken: null on this deployment and sets ss-id/ss-pid/ss-opt. The client keeps whichever the server returns and sends both, so a future switch to JWTs needs no change here.
DefaultPlans..env (gitignored) or the MCP host's config, and are never written to a result or a log.MIT