
Ofw Mcp
Connects Claude to OurFamilyWizard's co-parenting platform with read/write access to messages, calendar events, expenses, and journal entries. You can query recent messages, check upcoming events, log expenses, or draft replies in natural language. Authentication works via credentials or the fetchproxy extension to pull tokens from your browser session. The entire codebase was built and maintained by Claude Sonnet 4.6 without human code review, so audit before use. Worth noting that OFW is a court-of-record platform where everything you write through this server carries the same legal weight as typing it yourself. Useful if you're already managing co-parenting workflows in OFW and want conversational access without clicking through the web interface.
- GitHub stars
- 15
- tools
- 29
- auth
- Secret needed
- transport
- STDIO
- env vars
- 24
- last updated
- Nov 12, 2026
Tools
29 toolsPublic tool metadata for what this MCP can expose to an agent.
ofw_get_profileYour profile and co-parent info
Your profile and co-parent info
No parameter schema in public metadata yet.
ofw_get_notificationsDashboard counts (unread messages, upcoming events, outstanding expenses). Updates your co-parent-visible last-seen status, so it is not marked read-only
Dashboard counts (unread messages, upcoming events, outstanding expenses). Updates your co-parent-visible last-seen status, so it is not marked read-only
No parameter schema in public metadata yet.
ofw_list_message_foldersFolders with unread counts — get folder IDs here before listing messages
Folders with unread counts — get folder IDs here before listing messages
No parameter schema in public metadata yet.
ofw_list_messagesMessages in a folder
Messages in a folder
No parameter schema in public metadata yet.
ofw_get_messageFull content of a single message
Full content of a single message
No parameter schema in public metadata yet.
ofw_sync_messagesSync messages into the local cache (unread bodies left unfetched to avoid read receipts)
Sync messages into the local cache (unread bodies left unfetched to avoid read receipts)
No parameter schema in public metadata yet.
ofw_get_unread_sentSent messages a recipient hasn't read yet (from local cache)
Sent messages a recipient hasn't read yet (from local cache)
No parameter schema in public metadata yet.
ofw_check_freshnessCheap live check that the cache still matches OFW — per id, whether it is still a draft or was sent/deleted, without a full sync
Cheap live check that the cache still matches OFW — per id, whether it is still a draft or was sent/deleted, without a full sync
No parameter schema in public metadata yet.
ofw_statusOne live call for "where does everything stand?" — the full verified draft inventory, and the current state of any ids or draft keys
One live call for "where does everything stand?" — the full verified draft inventory, and the current state of any ids or draft keys
No parameter schema in public metadata yet.
ofw_download_attachmentDownload a message attachment to disk, or inline as extracted content / bytes
Download a message attachment to disk, or inline as extracted content / bytes
No parameter schema in public metadata yet.
ofw_send_messageSend a message
Send a message
No parameter schema in public metadata yet.
ofw_list_draftsDraft messages
Draft messages
No parameter schema in public metadata yet.
ofw_save_draftCreate or update a draft
Create or update a draft
No parameter schema in public metadata yet.
ofw_delete_draftDelete a draft
Delete a draft
No parameter schema in public metadata yet.
ofw_upload_attachmentUpload a local file from the upload directory to My Files; returns a fileId to attach via ofw_send_message/ofw_save_draft
Upload a local file from the upload directory to My Files; returns a fileId to attach via ofw_send_message/ofw_save_draft
No parameter schema in public metadata yet.
ofw_list_eventsCalendar events and custody handoffs in a date range
Calendar events and custody handoffs in a date range
No parameter schema in public metadata yet.
ofw_save_calendar_icsSave a date range as an .ics file — custody schedule included
Save a date range as an .ics file — custody schedule included
No parameter schema in public metadata yet.
ofw_create_eventCreate a calendar event
Create a calendar event
No parameter schema in public metadata yet.
ofw_update_eventUpdate a calendar event
Update a calendar event
No parameter schema in public metadata yet.
ofw_delete_eventDelete a calendar event
Delete a calendar event
No parameter schema in public metadata yet.
ofw_get_expense_totalsExpense summary totals
Expense summary totals
No parameter schema in public metadata yet.
ofw_list_expensesExpense history
Expense history
No parameter schema in public metadata yet.
ofw_list_expense_categoriesExpense category ids and split metadata
Expense category ids and split metadata
No parameter schema in public metadata yet.
ofw_upload_expense_pdfUpload a receipt PDF to My Files for an expense
Upload a receipt PDF to My Files for an expense
No parameter schema in public metadata yet.
ofw_create_expenseLog a new expense; supports private entries and one receipt PDF
Log a new expense; supports private entries and one receipt PDF
No parameter schema in public metadata yet.
ofw_mark_expense_reimbursedIrreversibly record full remaining external reimbursement; no transfer or partial payment
Irreversibly record full remaining external reimbursement; no transfer or partial payment
No parameter schema in public metadata yet.
ofw_update_expenseChange an expense, e.g. publish a private one. Pass only the fields to change
Change an expense, e.g. publish a private one. Pass only the fields to change
No parameter schema in public metadata yet.
ofw_list_journal_entriesJournal entries
Journal entries
No parameter schema in public metadata yet.
ofw_create_journal_entryCreate a journal entry
Create a journal entry
No parameter schema in public metadata yet.
Sponsors
Configuration
OFW_USERNAMEYour OurFamilyWizard login email address. Optional — if omitted, the server falls back to the fetchproxy browser extension (requires being signed in to ourfamilywizard.com).
OFW_PASSWORDsecretYour OurFamilyWizard password. Optional — see OFW_USERNAME.
OFW_WRITE_MODEWrite-tool gate: "none" registers no write tools; "drafts" registers draft-level writes only (save/delete drafts, upload attachments); "all" registers everything (default). Unrecognized values fail closed to "none".
OFW_CALENDAR_WRITESSet to "true" to register calendar write tools (create/update/delete event) in "drafts" write mode. Events have no draft stage but are reversible. Never overrides "none".
OFW_ALLOW_MARK_READDefault "true". Set "false" to forbid any tool from marking a message read on OurFamilyWizard - reading a body for the first time stamps a co-parent-visible "First Viewed" time that cannot be undone. A ceiling: no per-call argument can raise it.
OFW_CONFIRM_MARK_READDefault "false". Set "true" to show an unread message's subject, sender and sent time and ask for confirmation before opening it marks it read. Sync fetchUnreadBodies asks too; allowMarkRead probes are disabled.
OFW_FETCH_UNREAD_BODIESDefault "false". Whether ofw_sync_messages fetches unread inbox bodies by default (each fetch stamps a First Viewed time). Capped by OFW_ALLOW_MARK_READ.
OFW_READ_DAYSAllow list of days message content may be read, e.g. "mon,thu" (weekdays, YYYY-MM-DD, or YYYY-MM-DD..YYYY-MM-DD, in DISPLAY_TZ). Other days: unread inbox messages show subject only and are never marked read; sent and read messages stay readable. Unset = every day.
OFW_NO_READ_DAYSDeny list of days unread inbox messages may NOT be opened (same format as OFW_READ_DAYS; wins over it). Unset = none.
OFW_SESSION_CACHESet to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.
OFW_SESSION_FILEAbsolute path for the session cache file. Defaults to $MCP_DATA_DIR/.ofw-mcp/session.json.
OFW_EXPENSE_ONLYSet true to register only healthcheck plus expense tools. All profile/dashboard, message, calendar, and journal tools are structurally absent.
OFW_EXPENSE_UPLOAD_ONLYSet true for strict reimbursement upload mode: only healthcheck, ofw_upload_expense_pdf, ofw_create_expense, and ofw_update_expense register. Excludes ofw_mark_expense_reimbursed. Implies OFW_EXPENSE_ONLY.
OFW_INLINE_ATTACHMENTSSet "true" to return attachments as MCP content blocks by default (images render directly; other files come back as embedded resources) instead of writing to disk. Callers can still override per call via the tool's `inline` argument.
OFW_ATTACHMENTS_DIRWhere ofw_download_attachment writes (default ~/Downloads/ofw-mcp). Every disk write is confined to it: a saveTo outside it (after resolving symlinks) is refused, and an existing file is replaced only with force:true.
OFW_UPLOAD_DIRThe only directory ofw_upload_attachment may read from (default: OFW_ATTACHMENTS_DIR). Paths outside it after resolving symlinks, hidden files/dirs, and files over 25 MiB are refused.
OFW_CACHE_IDENTITYExplicit cache-key label; overrides OFW_USERNAME for fetchproxy-only multi-account setups. If you have multiple OFW accounts and want them to use separate caches, set it to a label per profile.
OFW_CACHE_DIROverrides the message cache directory (default ~/.cache/ofw-mcp).
OFW_DISABLE_FETCHPROXYSkip the fetchproxy fallback, so missing credentials become a hard error (useful in headless CI).
OFW_AUTO_REFRESHWhen a cached read comes back EMPTY from a non-fresh cache, the read tools sync the backing folders and answer from the refreshed cache instead of refusing with UNVERIFIED_EMPTY (default off, i.e. refuse). Per-call autoRefresh overrides it. A refresh that does not make the read v
OFW_FRESHNESS_TTL_SECONDSHow long a verified-against-OFW folder stays labelled `fresh` in read tools' `freshness` block (default 300). Unusable values fall back to the default — a typo must never widen the window in which stale data reads as current.
OFW_SYNC_MAX_REQUESTSPer-call OFW-request budget for ofw_sync_messages: a positive integer caps how many OFW requests one sync call may make before pausing; the next call resumes where it left off. Unset means unbounded (local installs walk fully in one call).
OFW_REQUEST_TIMEOUT_MSPer-request timeout for OFW API calls, in milliseconds (default 30000). Each retry gets its own fresh window.
OFW_DEBUG_LOGLog every OFW request/response to stderr (Authorization redacted). Diagnostic only.
Readme
OurFamilyWizard MCP
A Model Context Protocol server that connects Claude to OurFamilyWizard, giving you natural-language access to your co-parenting messages, calendar, expenses, and journal.
[!WARNING] AI-developed project. This codebase was entirely built and is actively maintained by Claude Sonnet 4.6. No human has audited the implementation. Review all code and tool permissions before use.
What you can do
Ask Claude things like:
- "Show me my recent OFW messages"
- "What's on the kids' calendar next week?"
- "List recent expenses and tell me what I owe"
- "Add a journal entry about today's pickup"
- "Draft a reply to the last message from my co-parent"
Requirements
Details
- Repository
- github.com/chrischall/ofw-mcp
- Category
- Productivity & Office
- Package
ofw-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active
More from chrischall
- Redfin Mcp3
- Zola Mcp3
- Infinitecampus Mcp5
- Resy Mcp2
- Creditkarma Mcp1
- Gogcli Mcp Docs1
- Gogcli Mcp Sheets1
- Onehome Mcp1
- Setlist Mcp1
- Splitwise Mcp1
- Artsonia Mcp1
- Canvas Parent Mcp1
- Gogcli Mcp Classroom1
- Gogcli Mcp Drive1
- Gogcli Mcp Slides1
- Honeybook Mcp1
- Opentable Mcp1
- Compass Mcp
- Evite Mcp
- Gemini Mcp
- Hellofresh Mcp
- Homes Mcp
- Signupgenius Mcp
- Zillow Mcp