George Mcp

repo: ~/Projects/george-mcp · 10 commits · 0 in last 24h, 0 in last 7d ·

Search the build

10 commits indexed

  1. 4cdbff5 2026-09-10 george-mcp: retry once on a Gmail quota error before fail-closed refusal — TK-11231
  2. accb909 2026-09-10 george-mcp: drafts are no longer a terminal success — TK-11231
  3. 67b3cb6 2026-07-10 chore: lint, refactor, v0.2.0 (session close)
  4. d9bbb80 2026-07-10 add gmail_send_attachment tool: send email with local-file attachments via /api/send-with-attachment
  5. b2cbb3d 2026-07-09 fix gmail_get_attachment: fetch raw bytes + save locally (remote George), was calling broken server-side /api/attachment-local
  6. dacdbfb 2026-07-07 feat: add gmail_get_attachment MCP tool (wraps George /api/attachment-local)
  7. e616a1b 2026-06-18 gmail send: pass X-Send-Approval from GEORGE_EXTERNAL_SEND_TOKEN env (toggleable external-send approval; unset env to re-gate)
  8. a8aaa43 2026-05-18 Add account param to all george MCP tools (5-account routing)
  9. 4834576 2026-05-18 george-mcp: derive BASE_PATH_PREFIX — empty for direct-port URLs, /george for reverse-proxy hostname (fixes 404 on :9850)
  10. 0267de5 2026-05-06 initial scaffold (gitify-all 2026-05-06)

Authors

Agents used

  • none detected

Skills used

  • /claude2
  • /code2
  • /attachment-local2
  • /update1
  • /send-with-attachment1
  • /george1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

4cdbff5 · 2026-09-10 · george-mcp: retry once on a Gmail quota error before fail-closed refusal — TK-11231
Red-team finding: dedupe adds a search to every create, and fail-closed turns a
quota blip into a hard block on legitimate drafting. The 60s id-join cache does
not help a burst of drafts to DIFFERENT recipients — which is exactly the
vendor-blast pattern (Command, Maya Romanoff, Newmor back to back) that produced
the original backlog. Retry once with backoff on a quota/429 error, then refuse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VTxE4MgnygQ9EY2rPZvtcK
accb909 · 2026-09-10 · george-mcp: drafts are no longer a terminal success — TK-11231
Three causal failures in the record, three fixes (DTD-4 verdict, 2026-09-04):

1. FALSE COMPLETION SIGNALLING (the deepest cause). create_draft returned a
   plain success, so assistants reported the task done and tickets recorded
   'waiting on the vendor' for 17 days while the ask had never left Drafts.
   Draft results now carry status=awaiting_owner_send, delivered=false,
   recipient_has_not_received_this=true and an explicit instruction not to
   close a ticket or record waiting-on-the-other-party.

2. DUPLICATE COMPOSITION. The same vendor ask was drafted twice three times
   over (Command, Maya Romanoff, Newmor) because an agent could not see or
   revise its own prior draft. Adds gmail_list_drafts (with age_days and an
   agent_composed flag) and gmail_update_draft (revise in place), and makes
   create_draft query-before-write: it REFUSES when unsent drafts to that
   recipient already exist, handing them back with their draftIds.

3. Dedupe FAILS CLOSED. Caught by live test: a Gmail per-minute quota error
   made the check a silent no-op and a duplicate vendor draft was created
   reporting success. An unverifiable check now refuses instead of guessing.

Also: cache the expensive drafts.list id-join (60s TTL) since calling it per
invocation is what exhausted the quota, and invalidate it on create/update —
without that a draft created seconds earlier came back with draftId:null,
i.e. un-updatable, reopening the duplicate hole.

Verified end-to-end over real stdio JSON-RPC against live George: refusal
fires (isError), update replaces in place leaving exactly one artifact, and
every test draft created was deleted (counts back to 136/41 baseline).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VTxE4MgnygQ9EY2rPZvtcK

File tree

4 files tracked. Click any to browse the source at HEAD.

Other build journals

← George Gmail  ·  all 4 projects  ·  George Token Broker →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 1ms