Dayze MCP
Dayze MCP provides AI agents with life-context and notable-people knowledge packs, plus access to a user's private CRM, calendar, memories, expenses, and trackers.
Public notable-people tools (no API key): search the catalog (
notable_search), fetch a profile (notable_profile), get a full knowledge pack with life-in-days, similar people, and birthday peers (notable_pack), or a premium guaranteed-quality pack (notable_pack_premium).Private life-context tools (API key required): get the user's current life snapshot (
get_life_context), a full Life Context Protocol pack (get_context_pack), and a life-graph export (get_life_graph).CRM/contacts: list user contacts (
get_people) and explore a person's neighborhood in the life graph (get_person_neighborhood).Personal data: retrieve calendar events (
get_events), semantic/recent memories (get_memories), expense summaries (get_expenses), and habit trackers (get_trackers).Semantic search: search across the user's life graph — events, people, and memories (
search).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Dayze MCP show me the life-in-days for Albert Einstein"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Dayze MCP
Dayze gives connected AI tools Life Context: your people, plans and memories in a private, correctable record.
After you sign in, get_context_pack hands your AI the signed-in user's context (who matters, this week's plans, recent memories) over the Model Context Protocol (MCP). The public notable-people catalog (notable_*) is a separate feature and never touches your private record.
ChatGPT + iPhone first. Capture people, plans and moments in Dayze on your iPhone, then connect ChatGPT and ask about your own life. Cursor, Codex, Claude and other MCP clients use the same hosted endpoint.
Listed on LightNow: https://lightnow.ai/servers/com.dayze/life-context
Relationship intelligence
Dayze starts with the people in your life. Ask "When did I last see Maya, and what's next with her?" and your AI can:
Resolve the person —
resolve_person/get_peopleagainst your private Dayze Contacts.Show the linked moments —
get_person_interactionsreturns the events, places and notes connected to that person.Show the evidence —
explain_factreturns the source behind a claim, so the answer is traceable rather than guessed.Correct it —
update_person,merge_peopleand the other write tools fix the record, so the next answer is right.
These four steps use the full endpoint (https://dayze.com/api/mcp). ChatGPT's compact profile is read-only: get_context_pack, get_people_context, get_events, search_dayze and related context reads, with corrections made in Dayze itself.
Related MCP server: cathedral-mcp
Connect ChatGPT
ChatGPT → Settings → Connectors → add a custom connector.
URL:
https://dayze.com/api/mcp?tools_profile=compactClick Connect and sign in to Dayze (OAuth). No API key.
Ask: "Use Dayze to pull my context pack for this week."
More detail: README-CHATGPT.md · https://dayze.com/docs/agents
Claude Code
This repo is also a Claude Code plugin and its own marketplace (.claude-plugin/). The plugin adds the hosted Dayze MCP server and the dayze-life-context skill.
claude plugin marketplace add gohluke/dayze-mcp
claude plugin install dayze@dayze
claude mcp login plugin:dayze:dayzeThe last command opens Dayze sign-in in your browser (OAuth). In a session you can use /mcp → plugin:dayze:dayze → Authenticate instead. No API key.
Then ask: "Use Dayze to pull my context pack for this week."
To point the plugin at a different Dayze connector URL, set DAYZE_MCP_URL in the env block of ~/.claude/settings.json and sign in again. The default is https://dayze.com/api/mcp.
Local development: claude --plugin-dir /path/to/dayze-mcp.
Cursor / Grok Bot
This repo is a Cursor Plugin (v1.33.0): .cursor-plugin/plugin.json, skills/dayze-life-context/, URL-only root mcp.json, plus Codex/ChatGPT metadata in .codex-plugin/ and .mcp.json.
Dayze Contacts is the private CRM. Advertised MCP names stay get_people, create_person, update_person, resolve_person (stable). Call aliases get_contacts / create_contact / update_contact / resolve_contact work on the hosted server. Public People stays notable_*.
Cursor Marketplace: https://github.com/gohluke/dayze-mcp submitted 2026-09-19, in review (see PUBLISH.md). The ChatGPT custom connector works today; the ChatGPT Apps Directory listing is in review.
Until marketplace review lands, test locally:
mkdir -p ~/.cursor/plugins/local
ln -s /path/to/dayze-mcp ~/.cursor/plugins/local/dayzeReload Cursor (Developer: Reload Window), open Customize, and click Connect. Sign in to Dayze in the browser. Do not paste an API key — Cursor discovers OAuth from RFC 9728. Same Connect flow for Cursor desktop, Cursor web, and Grok Bot.
Docs: https://dayze.com/docs/agents
Website | |
Agents docs | |
Streamable HTTP | |
REST MCP | |
Discovery | |
Server card | |
OpenAPI | |
OAuth PRM | |
OAuth AS |
Quick try
# Streamable HTTP (JSON-RPC)
curl -X POST https://dayze.com/api/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'
curl -X POST https://dayze.com/api/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# REST (compat)
curl https://dayze.com/api/mcp
curl -X POST https://dayze.com/api/mcp \
-H 'Content-Type: application/json' \
-d '{"tool":"notable_pack","parameters":{"slug":"albert-einstein"}}'The last call uses the public notable-people catalog. Timeline events include day_number (e.g. Einstein’s Nobel = Day 15,580).
Auth
Private Life Context tools (
get_context_pack, Contacts, events, memories): OAuthdayze_at_…(recommended) orBearer dayze_k_…, scopecontextPublic
notable_*tools: no login (see public tool pricing)OAuth 2.1 + PKCE + DCR for ChatGPT / Claude / Gemini agents — see https://dayze.com/docs/agents
Transport
Streamable HTTP JSON-RPC at
/api/mcp(initialize,tools/list,tools/call)Compact ChatGPT profile at
/api/mcp?tools_profile=compact(read-only subset)REST MCP-compatible at
/api/v1/mcp(GETcapabilities,POST{tool, parameters})GET
/api/mcpreturns discovery JSON (200); SSE sessions are not available on Netlify serverless
Tags
life-context · mcp · model-context-protocol · personal-crm · relationship-intelligence · chatgpt · ai-agents · notable-people
Glama install / Make Release
Dayze MCP is hosted at https://dayze.com/api/mcp. This repo ships a local
stdio adapter (server.mjs) so Glama can build/scan without putting a URL in CMD
(Glama rejects remote endpoints in CMD arguments).
Open https://glama.ai/mcp/servers/gohluke/dayze-mcp/admin/dockerfile
Build steps:
["npm install"]CMD arguments:
["node", "./server.mjs"]Click Build → wait for green → Build & Release (
1.6.2)
If Glama keeps checking out an old commit, use build steps:
["git fetch origin && git checkout origin/main", "npm install"]
Prefer connecting clients directly to https://dayze.com/api/mcp (Streamable HTTP + OAuth).
Technical reference: public tool pricing
This applies only to the public notable-people catalog, not to your private Life Context.
Anonymous
notable_*calls have a free tier. After it, the server may answer402 Payment Requiredusing x402 (USDC on Base).Signed-in Dayze clients (OAuth or API key) skip that anonymous paywall.
Per-call list prices appear in each tool description (e.g.
notable_search$0.01,notable_pack$0.05).Payment recipient on x402scan: https://www.x402scan.com/recipient/0x4DeE3CDA6cb33b1f7A29dE1385B192F802AE3EDa/resources
License
Documentation and listing metadata in this repo: MIT. The Dayze product and API remain proprietary; this repo exists so directories can index a public GitHub URL.
Available Tools
129 toolsadd_inventory_itemAdd Inventory ItemAInspect
Add an owned object to Life Inventory. ($0.10; API key required)
Inputs: name (required), request_id, idempotency_key. Returns: item, message, inventory_id
add_inventory_valuationAdd Inventory ValuationBInspect
Append immutable valuation observation. ($0.10; API key required)
Inputs: value (required), inventory_id (required), currency, request_id, +1 more. Returns: message, valuation
add_person_aliasAdd Person AliasAInspect
Add a nickname/payment handle/misspelling alias for one CRM person. ($0.05; API key required)
Inputs: alias (required), person_id (required), source, alias_kind, +2 more. Returns: alias, aliases, message, change_id, +1 more
archive_assetArchive AssetADestructiveInspect
Soft-delete an asset (sets archived_at). Original rows are preserved for versioning. ($0.05; API key required)
Inputs: asset_id (required), request_id, idempotency_key. Returns: asset, message, archived, asset_id
archive_eventarchive eventAInspect
Reversibly archive one owned event; preserve linked data and return restore_id. Use a new request_id for each intended action. ($0; API key required)
Inputs: event_id (required), request_id (required), reason, idempotency_key. Returns: rows, changed, expires_at, preview_id, +3 more
archive_expensearchive expenseAInspect
Reversibly archive one owned expense; preserve linked data and return restore_id. Use a new request_id for each intended action. ($0; API key required)
Inputs: expense_id (required), request_id (required), reason, idempotency_key. Returns: rows, changed, expires_at, preview_id, +3 more
archive_inventory_itemArchive Inventory ItemADestructiveInspect
Archive instead of destructive delete. ($0.10; API key required)
Inputs: inventory_id (required), reason, request_id, idempotency_key. Returns: message, archived, inventory_id
archive_triparchive tripAInspect
Reversibly archive one owned trip; preserve linked data and return restore_id. Use a new request_id for each intended action. ($0; API key required)
Inputs: trip_id (required), request_id (required), reason, idempotency_key. Returns: rows, changed, expires_at, preview_id, +3 more
attach_assetAttach AssetAInspect
Link an existing asset_id to another entity by creating a linked copy (does not move the original row). Roles: original | processed | thumbnail | cover | document | receipt | certificate | other. Legacy: pass url instead of asset_id. ($0.10; API key required)
Inputs: entity_id (required), entity_type (required), url, role, +5 more. Returns: asset, message, asset_id, attached
audit_peopleAudit People (compact)ARead-onlyInspect
CONTEXT LAYER: server-side contact hygiene. Returns compact candidate clusters only (duplicates, entity-type hints, normalization, payment-handle collisions). Do NOT use get_people bulk dumps for cleanup. ($0.10; API key required)
Inputs: limit, checks, min_confidence. Returns: count, summary, guidance, candidates
bulk_dismiss_clarificationsBulk Dismiss ClarificationsBInspect
Dismiss non-person / typed junk from the clarification queue. ($0.05; API key required)
Inputs: reason, request_id, entity_type, idempotency_key. Returns: message, dismissed
classify_contactClassify ContactAInspect
Set entity_type (person/company/merchant/…) on a CRM row without losing transactions or links. ($0.10; API key required)
Inputs: entity_type (required), source, entity_id, person_id, +4 more. Returns: person, message, change_id
cleanup_applycleanup applyAInspect
Atomically archive the exact reviewed preview. Requires preview_id, candidate_hash and request_id. Refuses changed sources. Returns per-row statuses and restore_id; replay performs no additional actions. ($0; API key required)
Inputs: preview_id (required), request_id (required), candidate_hash (required), idempotency_key. Returns: rows, changed, expires_at, preview_id, +3 more
cleanup_previewcleanup previewARead-onlyInspect
Read-only account audit and durable archive plan for events, expenses or trips. Returns source hashes, linked records, field differences, rollback payloads and a review queue. Review the exact candidate set before cleanup_apply. Preview expires after 30 minutes. ($0; API key required)
Inputs: family (required). Returns: rows, changed, expires_at, preview_id, +3 more
commit_life_updateCommit Life UpdateBInspect
Owner approve+commit via payload_hash + owner_session_id (flagged; off by default). ($0.10; API key required)
Inputs: proposal_id (required), payload_hash (required), owner_session_id (required), request_id, +1 more. Returns: enabled, message, assertionIds, graphVersion
compare_livesCompare Two LivesARead-onlyInspect
Side-by-side notable packs for two slugs (life_in_days + day_number timelines). One call instead of two notable_pack. Example: elon-musk vs steve-jobs. ($0.08)
Inputs: slug_a (required), slug_b (required), date, peers, +1 more. Returns: a, b, pack, compare
convert_contact_entityConvert Contact EntityAInspect
Convert a contact’s entity_type (same as classify_contact). Preserves FKs. ($0.10; API key required)
Inputs: target_type (required), entity_id, person_id, request_id, +1 more. Returns: person, message, change_id
create_personCreate ContactAInspect
Add a Dayze Contacts record; checks duplicates first. Advertised name create_person is stable; tools/call also accepts create_contact. ($0.10; API key required)
Inputs: name (required), tier, email, notes, +5 more. Returns: person, created, message
create_placeCreate Place CardAInspect
Save a venue card (business_contacts): address, opening_hours, affordability ($/$$/$$$), notes, tags. Idempotent by name or idempotency_key — does not create calendar notes. ($0.10; API key required)
Inputs: name (required), area, city, tags, +17 more. Returns: place, created, message, place_id, +2 more
delete_eventDelete Event (calendar remove)AInspect
Reversibly archives one owned event. Required event_id and request_id. Returns the prior row in deleted for compatibility, changed, restore_id and life_state_rebuilt. All food, people and asset links are preserved. Restore with restore_event. Replays perform no additional action. ($0.10; API key required)
Inputs: event_id (required), request_id (required), idempotency_key. Returns: deleted, event_id, food_deleted_ids, life_state_rebuilt
delete_foodDelete Food (Food Diary remove)ADestructiveInspect
MUTATES by removing one Food Diary row the authenticated user owns and its mirrored calendar event. Required: food_id (UUID). Prefer this over delete_event for meals logged via log_food. Unknown or other-user food_id returns an error. Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
Inputs: food_id (required), request_id, idempotency_key. Returns: deleted, food_id, event_id, life_state_rebuilt
dismiss_clarificationDismiss ClarificationBInspect
Dismiss a pending entity clarification (not_person, etc.). ($0.05; API key required)
Inputs: clarification_id (required), reason, request_id, idempotency_key. Returns: message, dismissed
enrich_place_from_googleEnrich Place from GoogleAInspect
Optional Google Places fill for a saved place card (hours/address/phone/website). Defaults to fill_empty_only — does not overwrite agent-supplied fields. ($0.15; API key required)
Inputs: place_id, request_id, fill_empty_only, idempotency_key, +1 more. Returns: place, message, enriched, place_id, +2 more
explain_factExplain FactARead-onlyInspect
Return evidence/provenance for a claim: polaris_learned_facts, life_events / life_event_relationships when present, then memories. Use when the agent must cite why it believes something — do not invent sources. ($0.10; API key required)
Inputs: query (required), fact, limit. Returns: count, query, message, evidence
find_identity_candidatesFind Identity CandidatesARead-onlyInspect
Compact identity resolution candidates by person_id or query (alias/name/payment signals). Prefer over bulk get_people. ($0.05; API key required)
Inputs: limit, query, person_id. Returns: count, candidates
get_assetGet AssetARead-onlyInspect
Fetch one asset by asset_id with signed_url for download/processing. ($0.05; API key required)
Inputs: asset_id (required), include_signed_url. Returns: asset, count
get_cities_visitedCities VisitedBRead-onlyInspect
Canonical cities from confirmed/completed trips only (excludes soft pins / status=possible). Inference requires category=travel + structured location — not todo titles. ($0.10; API key required)
Inputs: to, from. Returns: count, cities
get_context_packLife Context PackARead-onlyInspect
Life Context Protocol (LCP) pack for the authenticated user: identity, pulse, who_matters, whats_next, memories, quiz_results. Pass include_relationships/include_memories/include_quiz_results false to omit those sections; location and money stay opt-in. Spec: https://dayze.com/docs/life-context ($0.20; API key required)
Inputs: focus, query, include_money, include_trips, +5 more. Returns: ok, error, focus, pulse, +12 more
get_countries_visitedCountries VisitedBRead-onlyInspect
Canonical countries from completed trips (not other people travel). ($0.10; API key required)
Inputs: to, from, include_residence. Returns: count, countries
get_current_statesCurrent StatesCRead-onlyInspect
Permitted assertion states for a person (flagged life-graph; off by default). ($0.10; API key required)
Inputs: known_at, valid_at, people_id, person_id, +1 more. Returns: count, states, enabled
get_entity_assetsGet Entity AssetsARead-onlyInspect
List assets linked to an entity (role, signed_url, versions). entity_type inventory_item → inventory. ($0.10; API key required)
Inputs: entity_id (required), entity_type (required), asset_type. Returns: count, assets
get_entity_linksGet Entity LinksARead-onlyInspect
List graph edges for an event, trip, place, or person. ($0.05; API key required)
Inputs: entity_id (required), entity_type (required). Returns: count, links
get_eventsCalendar EventsARead-onlyInspect
Authenticated user's calendar events. Prefer explicit from/to (YYYY-MM-DD). Shortcuts: today|week|month|year (calendar year)|decade. Browsing noise excluded by default. ($0.10; API key required)
Inputs: to, from, kinds, limit, +5 more. Returns: to, cap, from, range, +10 more
get_expensesExpense SummaryARead-onlyInspect
Authenticated user cashflow summary: spend, income, net, and top spend categories. Requires OAuth or a supported scoped credential. ($0.10; API key required)
Inputs: no named parameters. Returns: net, usd, count, spend, +7 more
get_inventoryGet InventoryARead-onlyInspect
Browse owned inventory with filters. ($0.10; API key required)
Inputs: no named parameters. Returns: count, items
get_inventory_itemGet Inventory ItemBRead-onlyInspect
Full item with valuations, people links, assets. ($0.10; API key required)
Inputs: inventory_id (required). Returns: item, assets, valuations, people_links
get_inventory_valuationsGet Inventory ValuationsARead-onlyInspect
Chronological valuation history for an item. ($0.10; API key required)
Inputs: inventory_id (required). Returns: count, valuations
get_life_contextLife Context SnapshotARead-onlyInspect
Get a snapshot of the authenticated user's current life context (identity, today/upcoming events, pulse, trackers). Relationships and memories are included by default; pass include_*=false to omit. Location is opt-in. Requires an authenticated Dayze account via OAuth; scoped API keys are also supported for direct clients. ($0.15; API key required)
Inputs: include_location, include_memories, include_relationships. Returns: identity, mood_score, energy_score, inner_circle, +9 more
get_life_graphLife Graph ExportARead-onlyInspect
Explicit private life-graph export: favorites/VIP plus people with edges or recent event tags. Pass full=true for a larger capped list. Optional event–people links. Requires OAuth or a supported scoped credential. ($0.25; API key required)
Inputs: full, max_people, event_links_limit, include_event_links. Returns: hot, edges, nodes, edge_count, +3 more
get_location_contextLocation ContextARead-onlyInspect
Likely current or at-time place with confidence and provenance. ($0.10; API key required)
Inputs: at. Returns: at, place, confidence, provenance
get_location_historyLocation HistoryBRead-onlyInspect
Normalized visit history (venue-level by default). Merges GPS location_visits + place_visits (MCP/Uber digs). ($0.10; API key required)
Inputs: to, city, from, place, +2 more. Returns: count, visits
get_memoriesAgent MemoriesARead-onlyInspect
Authenticated user memories from Dayze Agent. Pass query for semantic/keyword retrieval. Prefer search for event-first trip and calendar titles. Requires OAuth or a supported scoped credential. ($0.10; API key required)
Inputs: limit, query. Returns: mode, query, events, people, +1 more
get_money_between_peopleMoney Between PeopleARead-onlyInspect
Same as get_person_transactions: authenticated user ↔ one contact via expenses FKs. Prefer get_person_transactions; this alias exists for agent discoverability. ($0.10; API key required)
Inputs: to, from, name, limit, +1 more. Returns: name, model, totals, entries, +1 more
get_peopleDayze ContactsARead-onlyInspect
List the authenticated user's Dayze Contacts (private CRM; table people). Each contact includes avatar_url, photo_count, and has_photos; use get_person_photos(person_id) for the full gallery. Notes omitted by default (has_notes flag); pass include_notes=true for progressive fetch (credential/secret spans are redacted server-side). Supports limit (default 100, max 500) and offset; returns total and truncated. Distinct from public notable People at /people. Advertised name get_people is stable; tools/call also accepts get_contacts / list_contacts. Requires OAuth or a supported scoped credential. ($0.10; API key required)
Inputs: limit, cursor, offset, include_notes. Returns: limit, total, offset, people, +9 more
get_people_cleanup_resultGet People Cleanup ResultARead-onlyInspect
Fetch start_people_cleanup result by cleanup_id. ($0.05; API key required)
Inputs: cleanup_id (required). Returns: status, cleanup_id
get_people_linksGet People LinksBRead-onlyInspect
Alias of get_person_connections — list graph edges for one CRM person. ($0.05; API key required)
Inputs: person_id (required). Returns: count, person, connections
get_person_aliasesPerson AliasesARead-onlyInspect
List canonical aliases (nicknames) for a CRM person. Pass person_id or name (resolved via aliases). Requires OAuth or a supported scoped credential. ($0.05; API key required)
Inputs: name, person_id. Returns: name, aliases, person_id, candidates
get_person_connectionsGet Person ConnectionsARead-onlyInspect
List graph edges for one CRM person. ($0.05; API key required)
Inputs: person_id (required). Returns: count, person, connections
get_person_interactionsPerson InteractionsARead-onlyInspect
Relationship timeline for one CRM person: interactions rows (message/call/meeting/note + extended kinds like visit/gift/stayed_over encoded in summary) plus co-tagged calendar events. Prefer this over dumping people.notes for “when did I last see X?”. Pass person_id or name. ($0.10; API key required)
Inputs: to, from, kind, name, +2 more. Returns: name, count, events, person_id, +2 more
get_person_neighborhoodPerson NeighborhoodARead-onlyInspect
Subgraph around one user-owned person_id — profile (avatar_url, photo_count, has_photos) plus declared connections. Use get_person_photos for the full gallery. Notes omitted unless include_notes=true (redacted). Requires OAuth or a supported scoped credential. ($0.15; API key required)
Inputs: person_id (required), include_notes. Returns: center, connections, include_notes, connection_count
get_person_photosPerson PhotosARead-onlyInspect
Gallery image URLs for a CRM contact. Returns photos[{ id, url, is_primary, created_at }] plus inline MCP image attachments for chat render. Accepts person_id. ($0.10; API key required)
Inputs: person_id (required). Returns: count, photos, person_id
get_person_transactionsPerson TransactionsARead-onlyInspect
Me↔contact money ledger from expenses (paid_to_person_id / income_from_person_id). Pass person_id or name. Returns entries + per-currency totals. Reuses existing expenses — no parallel ledger table. ($0.10; API key required)
Inputs: to, from, name, limit, +1 more. Returns: name, count, totals, entries, +1 more
get_photoGet PhotoARead-onlyInspect
Single photo metadata + secure URL. Returns inline MCP image attachment when available. ($0.10; API key required)
Inputs: photo_id (required). Returns: photo
get_photos_for_eventPhotos For EventDRead-onlyInspect
Assets linked to an event. ($0.10; API key required)
Inputs: event_id (required). Returns: count, photos, event_id
get_photos_for_placePhotos For PlaceCRead-onlyInspect
Assets linked to a canonical place. ($0.10; API key required)
Inputs: place_id (required). Returns: count, photos, place_id
get_placeGet Place CardARead-onlyInspect
Fetch one saved place card (business_contacts) by place_id — address, opening hours, affordability, notes. ($0.05; API key required)
Inputs: id, place_id, business_contact_id. Returns: place, message, place_id, business_contact_id
get_placesList PlacesBRead-onlyInspect
Known venues: visit-graph places plus saved place cards (saved_places from business_contacts) with address, opening_hours, and affordability ($/$$/$$$). ($0.10; API key required)
Inputs: tag, area, city, near, +3 more. Returns: count, places, saved_count, saved_places
get_place_visitsPlace VisitsBRead-onlyInspect
When was I at a venue — merges place_visits, location_visits, and event locations. ($0.10; API key required)
Inputs: place (required), to, from, place_id, +1 more. Returns: count, place, visits, confidence, +2 more
get_residencesList ResidencesARead-onlyInspect
Home / residence history separate from trips: trips with metadata.kind=residence (from log_travel) plus optional life_eras. Use for Boylston / Madeira / current home cards. ($0.10; API key required)
Inputs: to, from, limit, include_eras. Returns: eras, count, residences
get_sleepGet SleepCRead-onlyInspect
Sleep: list typed sleep/nap records with duration_minutes. ($0.05; API key required)
Inputs: to, from, limit. Returns: count, sleeps
get_sleep_summarySleep SummaryARead-onlyInspect
Sleep: day/week/month totals and averages. ($0.05; API key required)
Inputs: range. Returns: count, range, nights, total_minutes, +1 more
get_trackersHabit TrackersARead-onlyInspect
Authenticated user live trackers only; expired countdowns and inactive streaks are omitted. Sobriety/streak trackers remain visible at day 0 after a reset. Merges event-backed trackers with the trackers table when present. Requires OAuth or a supported scoped credential. ($0.10; API key required)
Inputs: no named parameters. Returns: note, trackers
get_transactionsGet TransactionsARead-onlyInspect
List expense/income/transfer rows (includes tags, payment_method). Filter with tag=project:… or project=… ($0.10; API key required)
Inputs: to, tag, from, type, +4 more. Returns: count, transactions
get_travel_historyTravel HistoryBRead-onlyInspect
Completed/confirmed travel only. ($0.10; API key required)
Inputs: to, from. Returns: count, trips
get_tripGet TripARead-onlyInspect
Single trip with linked places and people. ($0.10; API key required)
Inputs: trip_id (required). Returns: trip, people, places
get_tripsList TripsARead-onlyInspect
User trips with status filter (planned/completed/etc.). Residences also appear here with metadata.kind=residence — prefer get_residences for home history. ($0.10; API key required)
Inputs: to, from, limit, cursor, +2 more. Returns: count, trips
import_uber_gmailImport Uber GmailAInspect
Search connected Gmail for Uber trip receipts and write log_place_visit rows with sources gmail:uber-{gmail_id} (idempotent). Optional dry_run, max_results, query, account. ($0.15; API key required)
Inputs: email, query, account, dry_run, +3 more. Returns: query, results, scanned, skipped, +2 more
import_venmo_gmailImport Venmo GmailAInspect
Search connected Gmail for Venmo receipts and write log_transaction rows with external_id=venmo-gmail-{gmail_id} (idempotent). Optional dry_run, max_results, query, mirror_event, account. Prefer this over calendar-only Money · digs. ($0.15; API key required)
Inputs: email, query, account, dry_run, +4 more. Returns: query, results, scanned, skipped, +2 more
link_entitiesLink EntitiesBInspect
Link Trip→Stay→Place / Event→Person (graph, not prose). ($0.10; API key required)
Inputs: to_id (required), from_id (required), to_type (required), from_type (required), +4 more. Returns: link, linked, message
link_inventory_personLink Inventory PersonCInspect
Provenance link e.g. inherited_from, gifted_by. ($0.10; API key required)
Inputs: person_id (required), inventory_id (required), relationship (required), request_id, +1 more. Returns: link, message
link_peopleLink PeopleAInspect
NON-DESTRUCTIVE: create/update a person_connections edge between two distinct people (friends/family/knows/…). Both contacts remain. Do not use for duplicate cleanup — use merge_people. ($0.10; API key required)
Inputs: person_id (required), other_person_id (required), notes, source, +5 more. Returns: linked, message, connection
list_clarificationsList ClarificationsBRead-onlyInspect
Ranked clarification queue: only person-typed mentions + duplicate CRM people. Non-person junk (places, orgs, media, command fragments) is auto-dismissed. Existing contacts auto-link. ($0.05; API key required)
Inputs: kind, limit, auto_cleanup. Returns: count, message, truncated, clarifications
list_gmail_accountsList Gmail AccountsARead-onlyInspect
List connected Gmail mailboxes for the authenticated user (id, email, is_default). Use account on search_gmail / read_gmail_* / import_*_gmail to pick a mailbox. Connect another inbox at /integrations (multi-mailbox after migration). Share tokens cannot call. ($0.05; API key required)
Inputs: no named parameters. Returns: count, accounts, connect_url
log_eventLog Event (calendar write)AInspect
MUTATES the authenticated user calendar. Use for non-food days — funeral, cremation, appointment, dinner, anything that is not a food log. Do not store this as a chat memory. Example (funeral tonight): log_event({ title: "Funeral service — Mr Goh Choo Taw", date: "2026-08-29", time: "8pm", location: "Multi Purpose Hall, Blk 661 Jurong West St 64", category: "funeral" }). Example (Sunday cremation): log_event({ title: "Cremation — Mr Goh Choo Taw", date: "2026-08-30", location: "Mandai Crematorium", category: "funeral" }). Required: title + event_date (YYYY-MM-DD, YYYY-MM, or YYYY; alias date). Soft dates expand to first-of-period and set metadata.date_precision (day|month|year|approx). Optional: event_time (8pm or 20:00; alias time), end_date, end_time, location / city+country, description, category, external_url, visibility (private|friends|public), image_url, timezone, date_precision, share_with (Dayze handles e.g. ["boof"]), people / with / person_ids, idempotency_key (recommended; retries reuse the first write). For trips/residences prefer log_travel({ city, country, start_date, kind }). Unknown people names do not fail the write. Public events return share_url (/e/{id}) for Explore + social. Inserts public.events, optional event_people / shared_events, then rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
Returns: event, people_tagged, unresolved_people, life_state_rebuilt
log_expenseLog ExpenseAInspect
Create an outgoing expense only. For money received (Venmo/Cash App/PayPal/Zelle) use log_transaction with direction=from and type=income. ($0.10; API key required)
Inputs: amount (required), date, notes, category, +5 more. Returns: expense, message, expense_id
log_favorite_songLog Favorite Song (music write)AInspect
MUTATES the authenticated user favorite tracks list at /music. Use when they favorite or save a song — do not store this as a chat memory or in music_preferences. Example: “Henry Mancini - Piano And Strings (1995 Remastered)” → log_favorite_song({ track: "Henry Mancini - Piano And Strings (1995 Remastered)" }) or title + artist. Optional year_note, source_url. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
Inputs: url, title, track, artist, +5 more. Returns: track, created, message, track_id
log_foodLog Food (diary write)AInspect
MUTATES the authenticated user Food Diary and calendar. Use when they ate or drank — do not store this as a chat memory. Example: “I had Mee Pok for late lunch with my parents” → log_food({ what: "Mee Pok", kind: "meal", meal_period: "late lunch", with: ["my parents"] }). Optional: place/merchant, amount, consumed_at (ISO). Resolves with/Mum/Dad via person aliases; unknown names do not fail the food write. Tags companions on the mirrored event. Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
Inputs: what (required), kind, with, notes, +11 more. Returns: food_id, message, event_id, food_log, +3 more
log_incomeLog IncomeAInspect
Record money received (Stripe, refunds, payroll, Venmo). Alias of log_transaction with type=income and direction=from. Use external_id for Stripe/Gmail idempotency. ($0.10; API key required)
Inputs: amount (required), date, notes, source, +7 more. Returns: type, message, event_id, direction, +4 more
log_place_visitLog Place VisitAInspect
MUTATES place_visits for map/history digs (Uber dropoff, address evidence). Required: place (or place_id) + arrived_at/date. Optional: departed_at, source (uber|mcp|…), evidence_expense_id (idempotent), city/country/address. Prefer this over stuffing streets only into expenses. ($0.10; API key required)
Inputs: city, date, name, place, +11 more. Returns: place, visit, message, place_id, +2 more
log_sleepLog SleepAInspect
Sleep: log overnight or nap. Cross-midnight OK (e.g. 14:00→03:00 = 13h / 780m). ($0.10; API key required)
Inputs: ended_at (required), started_at (required), notes, source, +7 more. Returns: ok, sleep, message
log_transactionLog TransactionAInspect
Income/expense/transfer write. direction=from + type=income for Venmo/Stripe/refunds received. Positive amount; external_id dedupes imports. Optional project/tags. Zelle always USD. Optional mirror_event creates a calendar Money · annotation (ledger is still the source of truth for /money). ($0.10; API key required)
Inputs: amount (required), direction (required), date, tags, +15 more. Returns: type, message, event_id, direction, +4 more
log_travelLog TravelAInspect
MUTATES trips (+ optional calendar travel event). Prefer this over free-text log_event for map/history. Required: city + start_date. Optional: country, end_date, kind (trip|residence|soft_pin), confidence (confirmed|likely|possible), evidence, title, mirror_event. Soft pins default to status=possible and stay off cities/map until confidence=confirmed. Zelle/Venmo money belongs in log_transaction — not here. ($0.10; API key required)
Inputs: city (required), date, kind, title, +8 more. Returns: kind, note, trip, message, +2 more
merge_peopleMerge PeopleADestructiveInspect
Apply a reviewed durable preview atomically; undo_contact_change accepts restore_id for 30 days if unchanged. Fold duplicate CRM contact(s) into primary_person_id (same human, spelling variants). Prefer score_people_duplicates first. Not for “X knows Y” — use link_people for relationships. ($0.10; API key required)
Inputs: preview_id (required), primary_person_id (required), duplicate_person_ids (required), restore_window_acknowledged (requir… Returns: person, message, restore_id, reversible, +2 more
merge_people_previewMerge People PreviewAInspect
Save a durable restore snapshot without modifying contacts before merge_people. Returns resulting name/aliases, preserved counts, field conflicts, safe_to_merge. ($0.05; API key required)
Inputs: primary_person_id (required), duplicate_person_ids (required), request_id, field_choices, +1 more. Returns: manifest, warnings, preview_id, reversible, +10 more
normalize_people_applyNormalize People ApplyAInspect
Apply a normalize_people_preview by preview_id. ($0.10; API key required)
Inputs: preview_id (required), request_id (required), candidate_hash (required), idempotency_key. Returns: applied, message, change_id
normalize_people_previewNormalize People PreviewARead-onlyInspect
Preview whitespace/phone/handle normalization changes (no title-case of stylized names). ($0.05; API key required)
Inputs: rules. Returns: count, changes, preview_id
notable_packNotable Knowledge PackARead-onlyInspect
DEFAULT for who is X: profile + life_in_days (age/day_number) + similar people + birthday peers. Timeline events include day_number. Prefer this over notable_profile. Example: albert-einstein. ($0.05)
Inputs: slug (required), date, peers, similar. Returns: profile, timeline, life_in_days, birthday_peers, +1 more
notable_profileNotable Person ProfileARead-onlyInspect
Bio-only profile JSON by slug (no life-in-days, similar, or birthday peers). Prefer notable_pack for “who is X / age in days / peers”. Example: taylor-swift. ($0.02)
Inputs: slug (required). Returns: bio, name, slug, about, +8 more
notable_searchSearch Notable PeopleARead-onlyInspect
Search the public Dayze notable-people catalog by name, occupation, or slug. Use when you need to find a person before fetching a pack. Example slug: albert-einstein. ($0.01)
Returns: total, results
propose_life_updatePropose Life UpdateBInspect
Propose assertion create/correct without committing (flagged; off by default). ($0.10; API key required)
Inputs: value, client_id, people_id, person_id, +5 more. Returns: enabled, message, proposal_id, payload_hash
read_gmail_attachmentRead Gmail Attachment (read-only)ARead-onlyInspect
Download one Gmail attachment by message_id + attachment_id (from read_gmail_message.attachments). Returns utf-8 text for text/csv/vcf/vcard; binary types return filename/mime/size + a note (no base64 dump). Optional account. Read-only. Share tokens cannot call. ($0.10; API key required)
Inputs: message_id (required), attachment_id (required), email, account. Returns: attachment, message_id
read_gmail_messageRead Gmail Message (read-only)ARead-onlyInspect
Read one Gmail message by id from search_gmail. Returns subject, from, date, snippet, plain-text body (truncated), and attachments[] metadata (attachment_id, filename, mime_type, size). Use read_gmail_attachment for text/csv/vcf contents. Optional account when multiple mailboxes. Read-only. Share tokens cannot call. ($0.10; API key required)
Inputs: message_id (required), id, email, account. Returns: message
record_purchaseRecord PurchaseAInspect
Atomic expense + optional inventory item creation. ($0.10; API key required)
Inputs: name (required), amount (required), date, currency, +2 more. Returns: message, expense_id, transaction, inventory_id
record_saleRecord SaleAInspect
Mark inventory sold + record sale proceeds with gain/loss. ($0.10; API key required)
Inputs: amount (required), inventory_id (required), sold_at, currency, +2 more. Returns: message, expense_id, inventory_id, realized_gain_loss
remove_person_aliasRemove Person AliasADestructiveInspect
Remove one alias from a CRM person. ($0.05; API key required)
Inputs: alias (required), person_id (required), request_id, idempotency_key. Returns: alias, message, removed, change_id, +1 more
reset_trackerReset Streak TrackerARead-onlyInspect
MUTATES a sobriety/streak tracker for the authenticated user (sets current value to 0 and restarts the clock). Prefer tracker_id from get_trackers, or tracker_title fuzzy match. Optional reset_at (ISO) and note. Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
Inputs: note, title, reset_at, request_id, +3 more. Returns: ok, error, message, reset_date, +7 more
resolve_clarificationResolve ClarificationBInspect
Link a clarification surface to an existing person. ($0.10; API key required)
Inputs: clarification_id (required), person_id, request_id, person_name, +1 more. Returns: message, resolved, person_id
resolve_personResolve ContactARead-onlyInspect
Resolve a nickname or surface name to a Dayze Contacts row via person_aliases → exact name → slug → unique substring. Returns avatar_url, photo_count, has_photos, and photos[{url,is_primary}] preview; use get_person_photos for full gallery. Notes omitted unless include_notes=true (redacted). Prefer this before money or relationship tools when the agent only has a nickname. Advertised name resolve_person is stable; tools/call also accepts resolve_contact. ($0.05; API key required)
Inputs: name (required), query, include_notes. Returns: query, person, aliases, resolved, +2 more
resolve_placeResolve PlaceBRead-onlyInspect
Canonicalize a venue name via place aliases and fuzzy match. ($0.10; API key required)
Inputs: name, place, query. Returns: place, query, resolved, candidates, +1 more
restore_cleanuprestore cleanupAInspect
Restore an archive or normalization receipt. Requires restore_id and request_id. Refuses intervening edits; repeats are no-ops. ($0; API key required)
Inputs: request_id (required), restore_id (required), idempotency_key. Returns: rows, changed, expires_at, preview_id, +3 more
restore_eventrestore eventAInspect
Restore an archive or normalization receipt. Requires restore_id and request_id. Refuses intervening edits; repeats are no-ops. ($0; API key required)
Inputs: request_id (required), restore_id (required), idempotency_key. Returns: rows, changed, expires_at, preview_id, +3 more
restore_expenserestore expenseBInspect
Restore an archive or normalization receipt. Requires restore_id and request_id. Refuses intervening edits; repeats are no-ops. ($0; API key required)
Inputs: request_id (required), restore_id (required), idempotency_key. Returns: rows, changed, expires_at, preview_id, +3 more
restore_triprestore tripBInspect
Restore an archive or normalization receipt. Requires restore_id and request_id. Refuses intervening edits; repeats are no-ops. ($0; API key required)
Inputs: request_id (required), restore_id (required), idempotency_key. Returns: rows, changed, expires_at, preview_id, +3 more
score_people_duplicatesScore People DuplicatesARead-onlyInspect
Score likely CRM duplicate pairs before merge_people. ($0.05; API key required)
Inputs: limit, person_id, min_probability. Returns: count, candidates
searchSemantic Life SearchARead-onlyInspect
Search the authenticated user life graph. Deterministic routing first: food + relative dates (e.g. "what did I eat yesterday?"); timeline/current-context; money+person; who-is → resolve_person. Otherwise semantic/keyword search. Event hits include event_date and food_id when mirrored from Food Diary. Browser-history titles are excluded. Credential/secret spans are redacted. Requires OAuth or a supported scoped credential. ($0.15; API key required)
Returns: mode, intent, results
search_gmailSearch Gmail (read-only)ARead-onlyInspect
Search one of the authenticated user's connected Gmail inboxes (read-only). Reuses Integrations hub Gmail (service_connections provider=gmail). Optional account/email selects a mailbox when multiple are connected — call list_gmail_accounts first. Prefer Gmail operators: from:, subject:, is:unread, newer_than:7d, has:attachment. Returns id, subject, from, date, snippet only (no body). Follow up with read_gmail_message. Cannot send, archive, or delete. Never invent email contents. If Gmail is not connected, connect at /integrations. Requires API key or OAuth with scope context. Share tokens cannot call this tool. ($0.10; API key required)
Inputs: query (required), q, email, account, +1 more. Returns: query, account, messages, result_size_estimate
search_inventorySearch InventoryARead-onlyInspect
Search owned inventory by name/brand/model/notes. Returns photo_count, has_photos, cover_url; when empty, photo_hint explains upload_asset linkage. ($0.10; API key required)
Inputs: query. Returns: count, items, query
search_photosSearch PhotosBRead-onlyInspect
Search person photos and entity assets by query/metadata. Returns inline MCP image attachments. ($0.10; API key required)
Inputs: to, from, query, place_id, +1 more. Returns: count, query, photos
search_transactionsSearch TransactionsARead-onlyInspect
Keyword search over merchant/description/category, or exact tag query (project:/ext:/rail:). ($0.10; API key required)
Inputs: tag, limit, query, cursor, +2 more. Returns: count, query, transactions
set_primary_person_nameSet Primary Person NameAInspect
Rename a CRM contact’s canonical name and refresh slug. By default preserves the old name as a former_name alias. Prefer this over create+merge for spelling fixes. Dayze is the context layer — bounded mutation only. ($0.10; API key required)
Inputs: name (required), person_id (required), request_id, idempotency_key, +1 more. Returns: person, message, change_id, previous_name
start_people_cleanupStart People CleanupCInspect
Server-side read-only cleanup audit. Returns a review queue; never automatically merges contacts. Use normalize_people_preview/apply for reversible normalization. ($0.15; API key required)
Inputs: checks, request_id, idempotency_key, auto_merge_threshold. Returns: status, message, cleanup_id, auto_merged_count, +1 more
undo_contact_changeUndo Contact ChangeAInspect
Reverse a reversible contact_mutations row (rename, alias, identity, classify, link). For merges, pass restore_id as change_id within 30 days. Restore rejects later edits rather than overwriting them. ($0.10; API key required)
Inputs: change_id (required), request_id, idempotency_key. Returns: undone, message, change_id
unlink_peopleUnlink PeopleBDestructiveInspect
Remove a person↔person graph edge. ($0.10; API key required)
Inputs: person_id, request_id, connection_id, idempotency_key, +1 more. Returns: message, unlinked
update_assetUpdate AssetAInspect
Patch role, metadata, description, or parent_asset_id (e.g. mark as processed). ($0.08; API key required)
Inputs: asset_id (required), role, filename, metadata, +5 more. Returns: asset, message, updated, asset_id
update_current_locationUpdate Current LocationAInspect
MUTATES where the user is now: profiles.location + polaris current_city/country (same as in-app Dayze chat). Pass location ("The Madeira, Singapore") and/or city+country; optional place/venue + lat/lon records a fresh location_visits check-in so get_location_context returns is_current. set_home defaults true; check_in defaults true when place or coordinates are set. Does not invent GPS when omitted. ($0.10; API key required)
Inputs: city, place, venue, address, +8 more. Returns: place, context, message, updated, +6 more
update_eventUpdate Event (calendar patch)AInspect
MUTATES one existing calendar event the authenticated user owns. Required: event_id (UUID). Optional patch (same fields as log_event): title, date / event_date, time / event_time, end_date, end_time, location, description, category, external_url, people / with / person_ids. Unknown or other-user event_id returns an error and does not create a row. For food-diary meals, prefer update_food (it syncs the mirrored event). Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
Inputs: event_id (required), date, time, with, +16 more. Returns: event, changed, people_tagged, unresolved_people, +1 more
update_expenseUpdate ExpenseCInspect
PATCH an expense row. ($0.10; API key required)
Inputs: expense_id (required), date, tags, notes, +11 more. Returns: changed, expense, message
update_foodUpdate Food (diary patch)AInspect
MUTATES one existing Food Diary row the authenticated user owns. Required: food_id (UUID). Optional patch (same fields as log_food): what, kind, place, merchant, notes, append_notes (concat), consumed_at / meal_period (profile TZ civil wall-clock), amount, currency, paid_by / payment_method, with / people_names / person_ids. Example: add hot tea onto an existing Salmon Bento → update_food({ food_id, what: "Salmon Bento + hot tea" }). Unknown or other-user food_id returns an error and does not create a row. Syncs the mirrored calendar event and rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
Inputs: food_id (required), kind, what, with, +14 more. Returns: changed, food_id, event_id, food_log, +3 more
update_inventory_itemUpdate Inventory ItemBInspect
PATCH semantics — unspecified fields untouched. ($0.10; API key required)
Inputs: inventory_id (required), name, tags, brand, +15 more. Returns: item, changed, message
update_notableUpdate Notable (catalog write)AInspect
MUTATES public notable_people. Superuser only. Patch by slug (bio, about, occupation, birth_place, birth_date, net_worth, residence, before_fame, trivia, family_life, zodiac, flag). Rejects unknown fields. No create/delete. Stamps last_updated_via=mcp. ($0.10; API key required)
Inputs: slug (required), bio, flag, about, +11 more. Returns: person, changed
update_people_linkUpdate People LinkAInspect
Patch an existing person↔person graph edge (type/context/source/confidence). ($0.10; API key required)
Inputs: notes, source, person_id, confidence, +5 more. Returns: message, updated, connection
update_personUpdate Contact (CRM write)AInspect
MUTATES Dayze Contacts. Patch one existing contact the user owns (person_id UUID required). Optional fields: name (renames + refreshes slug), is_favorite, tier (vip|normal|low), relationship, notes (replaces stored notes — read first if you need to append), birthday (YYYY|YYYY-MM|YYYY-MM-DD|MM-DD|--MM-DD or null to clear; MM-DD stores month_day precision). Rejects unknown fields. Does not create or delete contacts. Rebuilds life_state so the next get_context_pack inner_circle is fresh. Advertised name update_person is stable; tools/call also accepts update_contact. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)
Inputs: person_id (required), name, tier, notes, +6 more. Returns: person, changed, life_state_rebuilt
update_person_aliasUpdate Person AliasBInspect
Update alias_kind/source/display for an existing alias. ($0.05; API key required)
Inputs: alias (required), person_id (required), source, alias_kind, +3 more. Returns: alias, message, change_id, person_id
update_person_identityUpdate Person IdentityAInspect
Patch identity fields (legal/preferred name, pronouns, social handles, user_relationships[]). Never infer sensitive identity from appearance. Confirmed user_relationships are preserved unless force=true. ($0.10; API key required)
Inputs: person_id (required), force, aliases, website, +7 more. Returns: person, changed, message, change_id
update_placeUpdate Place CardBInspect
Patch a saved place card by place_id / business_contact_id. Unspecified fields stay unchanged (hours, affordability, address, notes, …). ($0.10; API key required)
Inputs: id, area, city, name, +20 more. Returns: place, message, updated, place_id, +1 more
update_sleepUpdate SleepAInspect
Sleep: patch an existing sleep record by sleep_id. ($0.10; API key required)
Inputs: sleep_id (required), notes, quality, ended_at, +5 more. Returns: ok, sleep, message
upload_assetUpload AssetAInspect
Upload image bytes to Dayze storage (WebP re-encode strips EXIF/AI metadata). Returns asset_id. For inventory item photos: pass entity_type=inventory, entity_id=inventory_id, role=photo, image_base64 from chat images. Or upload then attach_asset. ($0.15; API key required)
Inputs: url, role, filename, metadata, +9 more. Returns: asset, message, asset_id, metadata_stripped
upload_photoUpload PhotoAInspect
Upload a photo to a Life Graph entity. Accepts image_base64 or url (one required). Re-encodes via WebP (strips EXIF/AI metadata). Person uploads also write the CRM gallery (person_photos) and avatar when set_as_avatar=true. ($0.15; API key required)
Returns: url, asset, message, asset_id, +4 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 129 tools
Many tools are explicit aliases of one another (get_money_between_people/get_person_transactions, convert_contact_entity/classify_contact, get_people_links/get_person_connections), and delete_event/archive_event are effectively duplicate operations. get_life_context and get_context_pack overlap heavily, while the notable_* family has four options for largely the same lookup. With 129 tools, an agent will frequently struggle to pick the intended endpoint.
Most tools follow a clear verb_noun snake_case convention: get_*, log_*, update_*, delete_*, import_*, archive_*, restore_*. There are minor deviations such as notable_search/notable_profile/notable_pack, the mixed get_/list_/read_ prefixes for reads, and several aliases, but the overall pattern is predictable and readable.
129 tools is an extreme count—far above the 50+ threshold for a 1. Even for a broad personal-life platform, the server bundles many subdomains and micro-endpoints into one MCP surface, which overwhelms agent context and selection. The aliases and near-duplicates make the size harder to justify, not easier.
The server covers the Dayze domain extensively: people CRUD plus duplicate cleanup, events/food/sleep/travel lifecycles, places, inventory, assets, transactions, Gmail search/read/import, and restore/archive flows. Minor gaps exist—no delete_sleep, no single get_event detail, no delete_place—but most are mitigated by archive/restore or list-style endpoints.
Maintenance
Related MCP Connectors
Curated knowledge API for AI agents - skill packs, semantic search, validated patterns.
Data and tools for your AI agent: company, people, SEO, social and EU register data. Pay per call.
Paid business, people, company, lead, and web intelligence for autonomous AI agents.
140+ data APIs for agents: finance, banking validation, geo, weather, text. One API key.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceProvides AI agents with persistent memory and knowledge management through a comprehensive knowledge graph platform. Enables storing, searching, and managing entities, relationships, and observations with advanced features like trending analysis and smart ranking.3MIT
- AlicenseNot gradedqualityDmaintenancePersistent memory and identity infrastructure for AI agents. Cross-session wake protocol, drift detection, immutable snapshots, and shared memory spaces — free hosted API11MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to persist and retrieve memories via a personal knowledge graph, with tools for emotional intelligence, CRM, life management, social features, self-training, and autonomous insights.859 npm7MIT
- AlicenseNot gradedqualityDmaintenanceProvides persistent knowledge graph memory for AI agents, enabling them to store, recall, and query facts about people, projects, and relationships across sessions.MIT