Dayze — Life Context

com.dayze由 dayze.com 发布官方发布者v1.28.0更新于 Oct 26, 2026

Life context for agents: get_context_pack + public notable packs. x402 + OAuth.

已验证Streamable HTTP可网页运行效率与工作流知识与记忆商业与电商

概览

AI 生成的概览

Dayze Life Context 让助手读取已登录用户的私人人物、计划、记忆与支出,并提供公众名人资料库。

可以做什么
  • 获取生活情境包:身份、状态、人物、下一步行动、记忆、测验与近期到访地点
  • 读取并搜索日历事件、Dayze Agent 记忆、现金流摘要与私人联系人 CRM
  • 解析人物、查看别名、联系人清单与人物关系子图,并记录互动、时刻、餐饮与事件
  • 创建、更新和删除自有记录,破坏性操作提供预览与 30 天撤销
  • 按姓名或 slug 查询公众名人、获取资料包、对比两人人生,超级用户可更新名人条目
适用场景
适合让助手回答关于用户本人生活的问题,例如认识谁、有什么安排、记得什么、花了多少钱;也适合需要公众人物传记资料包的场景。偏向个人 CRM 与关系智能工作流,而非通用网页任务。
运行要求
远程托管端点,无需本地运行时或安装包。私人工具需通过 OAuth 登录 Dayze(或使用带 context 权限的 Bearer API 密钥),部分工具还需特定范围的凭证。公众名人工具无需登录。ChatGPT 连接器可使用只读精简配置。
安装前请注意
该服务器会读写私人生活记录,包括联系人、日历、记忆、餐饮、支出与到访地点。许多工具会修改或删除数据,破坏性操作虽有预览与 30 天撤销。公众名人工具按次计费,匿名使用可能收到以 Base 上 USDC 付款的提示,已登录客户端可跳过该付费墙。update_notable 仅限超级用户。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Dayze — Life Context,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.dayze%2Flife-context/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "dayze-life-context": {
      "type": "http",
      "url": "https://dayze.com/api/mcp"
    }
  }
}

README

Dayze MCP

[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

[LightNow MCP capabilities]

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:

  1. Resolve the person — resolve_person / get_people against your private Dayze Contacts.
  2. Show the linked moments — get_person_interactions returns the events, places and notes connected to that person.
  3. Show the evidence — explain_fact returns the source behind a claim, so the answer is traceable rather than guessed.
  4. Correct it — update_person, merge_people and 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.

Connect ChatGPT

  1. ChatGPT → Settings → Connectors → add a custom connector.
  2. URL: https://dayze.com/api/mcp?tools_profile=compact
  3. Click Connect and sign in to Dayze (OAuth). No API key.
  4. 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.

bash
claude plugin marketplace add gohluke/dayze-mcpclaude plugin install dayze@dayzeclaude mcp login plugin:dayze:dayze

The 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:

bash
mkdir -p ~/.cursor/plugins/localln -s /path/to/dayze-mcp ~/.cursor/plugins/local/dayze

Reload 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

Quick try

bash
# 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): OAuth dayze_at_… (recommended) or Bearer dayze_k_…, scope context
  • Public 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 (GET capabilities, POST {tool, parameters})
  • GET /api/mcp returns 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).

  1. Open https://glama.ai/mcp/servers/gohluke/dayze-mcp/admin/dockerfile
  2. Build steps: ["npm install"]
  3. CMD arguments: ["node", "./server.mjs"]
  4. 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.

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.

来源:README.md,提交 58aafee

工具

180

notable_profile

Notable Person Profile

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)

输入参数slug必填

notable_pack

Notable Knowledge Pack

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)

输入参数dateslug必填peerssimilar

notable_pack_premium

Premium Notable Pack

S-tier guaranteed pack (score≥85, timeline≥8, image, embedding). Errors if below bar. Use when you need high-quality, complete notable context. Example slug: elon-musk. ($0.10)

输入参数dateslug必填peerssimilar

compare_lives

Compare Two Lives

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)

输入参数datepeersslug_a必填slug_b必填similar

get_life_context

Life Context Snapshot

Get a snapshot of the authenticated user's current life context (identity, today/upcoming events, pulse, trackers, plus a question-aware facts slice with trace). Relationships and memories are included by default; pass include_*=false to omit. social_edges is capped at the highest-confidence 40 — check social_edges_truncated / social_edges_total. 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)

输入参数qatquerytimezoneinclude_moneyinclude_locationinclude_memoriesinclude_relationships

get_context_pack

Life Context Pack

Life Context pack for one Dayze account (`account` names it — with more than one Dayze connection, say which account you are answering from): identity, pulse, people, next actions, memories, quizzes, recent consented place visits, and traced facts. Use include_*=false to omit default sections; current location and money stay opt-in. Spec: https://dayze.com/docs/life-context Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). ($0.20; API key required)

输入参数qatfocusquerytimezoneinclude_moneyinclude_tripsinclude_placesinclude_locationinclude_memoriesinclude_place_visitsinclude_quiz_results另有 1 个

get_life_graph

Life Graph Export

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)

输入参数fullmax_peopleevent_links_limitinclude_event_links

get_berklee_relationship_map

Berklee Relationship Map

Read-only owner view of the 2012–2015 Berklee email archive: per-person first/last cited contact, imported message volume, explicitly stored courses/projects, and email-anchor versus name-only provenance. Optional exact course, term, and project filters. Every cited event carries an inspect_url. Volume is not closeness; silence is not interpreted. Identity-document, health, and legal records are excluded. ($0.15; API key required)

输入参数termcourseproject

get_person_neighborhood

Person Neighborhood

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)

输入参数person_id必填include_notes

get_events

Calendar Events

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. Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). ($0.10; API key required)

输入参数attofromkindslimitqueryrangecursoroffsetdate_totimezonedate_from另有 5 个

get_people

Dayze Contacts

List or search the authenticated user's Dayze Contacts (private CRM; table people). query matches literal substrings of name, slug, email, occupation or context tags (no fuzzy fallback). context_tags requires all exact tags; occupation requires a substring. These filters combine with query and search the full owned contact set before pagination. Set wealth_category=reviewed for only explicitly owner-reviewed wealth-category contacts: returns id and name only, even with include_notes=true. That mode searches names only, uses offset rather than cursor, and cannot combine with occupation or context_tags. Without it, each contact includes avatar_url, photo_count, and has_photos; use get_person_photos(person_id) for the full gallery. With financial_details:read, net_worth_assessment includes category, scope, estimated range (when supported), confidence, methodology, caveat, dated source URLs, and review date. Context-only and insufficient-evidence assessments carry no personal number. birthday_precision says which parts of birthday are real: month_day means the year is unknown (stored 1900, or 1904 for Feb 29), year means only the year. 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)

输入参数limitlistsquerycursoroffsetoccupationcontext_tagsinclude_listsinclude_noteswealth_category

update_person

Update Contact (CRM write)

MUTATES one owned Dayze contact by person_id. A context_tags-only patch is supported; send the full desired tag array (a repeat is a no-op). For personal-write OAuth send request_id, a unique string for each new write; reuse it for an exact retry. Fields left out are untouched. undo_contact_change(change_id) reverts a change. Requires context.write; share tokens cannot write. ($0.10; API key required)

输入参数nametiernoteswalletsbirthdayperson_id必填request_idis_favoritecontext_tagsrelationshiprelationshipsidempotency_key另有 1 个

update_notable

Update Notable (catalog write)

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)

输入参数bioflagslug必填abouttriviazodiacnet_worthresidencebirth_dateoccupationrequest_idbefore_fame另有 3 个

log_food

Log Food (diary write)

MUTATES the authenticated user Food Diary and calendar. Use when they ate or drank — do not store this as a chat memory. Supports dish_items for multiple named dishes with optional price and rating. 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: calories (user-stated kilocalories), place/merchant, amount, consumed_at (ISO). Explicit calories override the automatic heuristic. 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)

输入参数kindwhat必填withnotesplaceamountpaid_bycaloriescurrencymerchantdish_itemsexpense_id另有 7 个

update_food

Update Food (diary patch)

MUTATES one existing Food Diary row the authenticated user owns. Required: food_id (UUID). Optional patch (same fields as log_food): what, kind, contains_alcohol, dish_items, place, merchant, notes, append_notes (concat), consumed_at (ISO instant) / meal_period (profile TZ), amount, currency, paid_by (self / a name / unknown), payment_method (how it was paid, saved on the linked Finance transaction), expense_id (link one existing owned Finance transaction; null unlinks), with / people_names / person_ids. dish_items replaces the complete ordered dish list. A dish or notes correction never creates another Finance transaction. Unknown or other-user food_id or expense_id returns an error and changes nothing. Returns changed fields and a fresh linked_expense read. 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)

输入参数fooditemkindwhatwithnotesplaceamountdishespeoplefood_id必填paid_by另有 17 个

delete_food

Delete Food (Food Diary remove)

Preview first, 30-day undo. Removes one Food Diary row the authenticated user owns and archives its mirrored calendar event. Prefer this over delete_event for meals logged via log_food. Unknown or other-user food_id returns an error. Rebuilds life_state. Reviewed and reversible: first call preview_destructive_change({ tool: "delete_food", arguments: { food_id } }), which stores the exact change without applying it. After the user confirms, call delete_food with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. Requires API key or OAuth with context.delete. Share tokens cannot write. ($0.10; API key required)

输入参数food_id必填preview_id必填request_id必填idempotency_keyrestore_window_acknowledged必填

attach_food_photo

Attach Food Photo (Food Diary photo)

MUTATES one Food Diary row the authenticated user owns by storing a meal photo on it (same pipeline as the web diary upload). Required: food_id (UUID from log_food / search) plus exactly one of image_base64 (raw base64 or data: URL) or url (public https image). JPEG, PNG, WebP, GIF, HEIC, or AVIF under 8 MB. One photo per entry: calling again replaces photo_url (replaced/previous_photo_url report it). EXIF capture time moves consumed_at unless keep_consumed_at=true. Unknown or other-user food_id returns not_found and stores nothing. Response photo_url is re-read from the row. Syncs the mirrored calendar event and rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.15; API key required)

输入参数urlfood_id必填filenamerequest_idimage_base64idempotency_keykeep_consumed_at

log_event

Log Event (calendar write)

MUTATES the calendar (non-food events, tasks, sleep). Replies owed ('what to reply to X') go to create_pending_reply. Woke at X: end_time. Requires title plus event_date or date (YYYY-MM-DD, YYYY-MM, or YYYY). A task with no deadline: ask for a date, never fill in today. Soft dates preserve date_precision. A story or anecdote about something that already happened is a moment: use log_moment (with event_id when it is about an event here), not a second event. Optional: event_time (alias time), end_date, end_time, location, description (alias notes), category, visibility, timezone, reminder fields, sharing/people, scoreboard (structured operating status; keep description for notes), and idempotency_key. Sleep with only a wake time ('I woke at 11:15'): category sleep, event_date the day they woke, end_time 11:15 and no event_time. Don't invent a bedtime; add it later with update_event event_time (a bedtime the night before also sets event_date to that night and end_date to the wake day). Timed events default to the profile push-reminder timing; all-day events and starts already in the past stay off. Log / past-tense entries should pass reminder_enabled=false; reminder_minutes_before sets the lead time. Prefer log_travel for trips/residences. Unknown people do not fail the write. Public events return share_url. Requires API key or OAuth with context scope; share tokens cannot write. ($0.10; API key required)

输入参数citydatetimewithnotestitle必填amountpeoplesourcecountrycategorycurrency另有 27 个

update_event

Update Event (calendar patch)

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 (alias notes), category, external_url, image_url, timezone, visibility, people / with / person_ids, scoreboard (merged; null clears), reminder_enabled (false turns the push reminder off; needs a timed event to turn on), reminder_minutes_before. Adds a bedtime to a wake-only sleep: event_time (and event_date / end_date when it was the night before). 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)

输入参数datetimewithnotestitlepeoplecategoryend_dateend_timeevent_id必填locationtimezone另有 15 个

log_moment

Log Moment (story or memory)

Save a past story or memory as a private moment. Plans go to log_event; a touchpoint with a contact to log_interaction. Requires title, and moment_date (YYYY-MM-DD, YYYY-MM or YYYY; alias date) unless event_id is given. With event_id (an owned event the story is about) it creates a NEW moment linked to that event and takes the event's date and location when you pass none; the event itself is never changed, converted or deleted, and one event can have many moments. Don't also save the story as an event. Optional: description (the longer story), moment_date_precision (exact, month, year, circa), end_date, moment_type (default memory), location_name (only a place the user said), person_ids (owned contacts; any other id saves nothing), people_names (tag saved contacts only, never created), cover_image_url / media_urls (https links), tags. Always private: there is no visibility argument; the owner shares a moment in Dayze. Fix it later with update_moment. Requires API key or OAuth with context.write. ($0.10; API key required)

输入参数datetagstitle必填end_dateevent_idlocationmedia_urlsperson_idsrequest_iddescriptionmoment_datemoment_time另有 6 个

update_moment

Update Moment (patch a story)

Patch one owned moment by moment_id (from log_moment); fields left out are untouched. It stays private. Requires moment_id. Patchable: title, description, moment_date, moment_date_precision, end_date, moment_type, location_name, people, event_id, images, tags. Unknown or other-user moment_id returns an error and creates nothing. person_ids / people_names, media_urls and tags replace the stored list ([] clears); event_id links an owned event (the event is not changed), empty or null unlinks. Visibility is not an argument. Returns changed_fields. Requires API key or OAuth with context.write. ($0.10; API key required)

输入参数datetagstitleend_dateevent_idlocationmoment_id必填media_urlsperson_idsrequest_iddescriptionmoment_date另有 7 个

create_pending_reply

Create Pending Reply

Pending Replies (Inbox): save a reply the user owes someone, e.g. 'what to reply to X', 'I owe X a reply'. Use this, not log_event or a task. Optional draft (the reply text), summary (one line in your own words; never the email body, subject or sender), channel, category, received_at, and source { kind, thread_id, message_id } (ids only). Links the contact only when resolve_person finds exactly one (or pass person_id); otherwise the reply is saved unlinked and person_link says why. An unsent reply for the same thread or person comes back instead of a second one (created: false, deduplicated: true); update_existing: true replaces its draft and summary. Never sends anything. Requires API key or OAuth with context.write; share tokens cannot write. ($0.10; API key required)

输入参数draftsourcechannelsummarycategoryperson_idrequest_idperson_name必填received_atdraft_messageidempotency_keyupdate_existing

get_pending_replies

Get Pending Replies

Pending Replies (Inbox): the replies the user owes ('who do I owe a reply?'), newest first, or one by reply_id. status: unsent (default; pending + snoozed), sent, dismissed, all. Filter by person_name or person_id. Each reply has reply_id, person_name, person_id (null when unlinked), draft, summary, channel, category, source ids, status, state (unsent | sent | dismissed) and due (owed now; false while snoozed until snooze_until). Read-only. ($0.05; API key required)

输入参数limitstatusreply_idperson_idperson_name

update_pending_reply

Update Pending Reply

Pending Replies: change one reply by reply_id: its draft (replaces; null clears), summary, channel, category, received_at, person (person_id, or person_name linked only on one match), source, or status pending (reopen / unsnooze) or snoozed with snooze_until. Unknown or other-user reply_id returns not_found. To mark it sent or dismissed use resolve_pending_reply. Never sends anything. Requires API key or OAuth with context.write. ($0.10; API key required)

输入参数draftsourcestatuschannelsummarycategoryreply_id必填person_idrequest_idperson_namereceived_atsnooze_until另有 2 个

resolve_pending_reply

Resolve Pending Reply

Pending Replies: mark a reply done: sent (default; the user replied, logged privately in the contact's history) or dismissed. Dayze sends nothing. By reply_id, or person_name / person_id when that person has exactly one unsent reply (otherwise the candidates come back and nothing changes). Marking sent writes one private interaction for the linked contact (not for an unlinked reply, and not twice); interaction in the result says what was written. Reopen with update_pending_reply status pending. Requires API key or OAuth with context.write. ($0.05; API key required)

输入参数outcomereply_idperson_idrequest_idperson_nameidempotency_key

log_interaction

Log Interaction

Contacts: log that the user was in touch with a contact ('I replied to Vadim', 'called Mum'): kind message, call, meeting, note, check_in or thought_of. Private to the owner. person_id (an owned contact) or person_name (linked only on one resolve_person match; otherwise nothing is logged and the candidates come back). With reply_id it also marks that Pending Reply sent: this interaction is the reply's one write-back (a later resolve adds no second). summary: one line in your own words, never email text or a subject. occurred_at: when it happened (ISO), default now; not in the future. Never sends anything. Requires API key or OAuth with context.write. ($0.05; API key required)

输入参数kindsummaryreply_idperson_idrequest_idoccurred_atperson_nameidempotency_key

delete_event

Delete Event (calendar remove)

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)

输入参数event_id必填request_id必填idempotency_key

log_favorite_song

Log Favorite Song (music write)

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, and person_id from get_people to link the track to one owned contact. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)

输入参数urltitletrackartistperson_idyear_noterequest_idsource_urlremaster_noteidempotency_key

get_memories

Agent Memories

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)

输入参数qfocuslimitquery

delete_memory

Delete Memory (Agent memory remove)

Preview first, 30-day undo. Removes Dayze Agent memories the authenticated user owns: memory_id (or up to 50 memory_ids) from get_memories. Rows get_memories marks source "event" are calendar events (use delete_event). An unknown or other-user id is not found and nothing changes. Dayze chat and get_memories stop using them at once; rebuilds life_state. Reviewed and reversible: first call preview_destructive_change({ tool: "delete_memory", arguments: { memory_id } }), which stores the exact change without applying it. After the user confirms, call delete_memory with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. Requires API key or OAuth with context.delete. Share tokens cannot write. ($0.10; API key required)

输入参数memory_idpreview_id必填request_id必填idempotency_keyrestore_window_acknowledged必填

merge_memory

Merge Exact Memories

Preview first, 30-day undo. Retire exact duplicates while keeping the named canonical memory. Preview shows every retired id and distinct provenance; the receipt restores all rows for 30 days. Similar wording is refused. Reviewed and reversible: first call preview_destructive_change({ tool: "merge_memory", arguments: { canonical_memory_id, duplicate_memory_ids } }), which stores the exact change without applying it. After the user confirms, call merge_memory with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. ($0.10; API key required)

输入参数preview_id必填request_id必填idempotency_keycanonical_memory_idrestore_window_acknowledged必填

correct_memory_atom

Correct Memory Atom

Preview first, 30-day undo. Remove one exact false atom from a bundled memory, retaining the other text and clearing its stale embedding. Reviewed and reversible: first call preview_destructive_change({ tool: "correct_memory_atom", arguments: { memory_id, false_atom } }), which stores the exact change without applying it. After the user confirms, call correct_memory_atom with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. ($0.10; API key required)

输入参数memory_idpreview_id必填request_id必填idempotency_keyrestore_window_acknowledged必填

get_expenses

Expense Summary

Authenticated user cashflow summary: spend, income, net, and top spend categories. Requires OAuth or a supported scoped credential. ($0.10; API key required)

输入参数period

resolve_person

Resolve Contact

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. With financial_details:read, net_worth_assessment has the same sourced fields as the Contacts card; context-only evidence carries no personal number. Notes omitted unless include_notes=true (redacted). person.lists names the contact lists they are on. 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)

输入参数name必填queryinclude_notes

get_person_aliases

Person Aliases

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)

输入参数nameperson_id

list_contact_lists

Contact Lists

List the owner's contact lists (the lists on Contacts), by name: id, name, slug, member_count, created_at. auto_synced marks Family, which follows each contact's relationship. Filter contacts by list with get_people(lists). ($0.05; API key required)

输入参数include_counts

create_contact_list

Create Contact List

Create a contact list by name. A list whose slug matches is returned unchanged (created=false), so a repeat creates nothing. ($0.05; API key required)

输入参数name必填request_ididempotency_key

add_people_to_list

Add People To Contact List

Add owned contacts to a contact list (list_id, or list_name as its name or slug). Returns added, already_member and not_found (ids that aren't the owner's contacts); a repeat adds nothing. create_if_missing=true creates a list named list_name first. Family follows relationships and is refused (code AUTO_SYNCED_LIST): set the relationship with update_person. undo_contact_change(change_id) removes the ones added. ($0.05; API key required)

输入参数list_idlist_nameperson_ids必填request_ididempotency_keycreate_if_missing

remove_people_from_list

Remove People From Contact List

Remove contacts from a contact list (list_id, or list_name as its name or slug). The contacts themselves are unchanged. Returns removed, not_member and not_found. Family follows relationships and is refused (code AUTO_SYNCED_LIST). undo_contact_change(change_id) puts them back. ($0.05; API key required)

输入参数list_idlist_nameperson_ids必填request_ididempotency_key

get_person_transactions

Person Transactions

Me↔contact money ledger from individual expenses (paid_to_person_id / income_from_person_id). Requires context.read and financial_details:read. Pass person_id or name. Returns entries + per-currency totals. Reuses existing expenses — no parallel ledger table. Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). ($0.10; API key required)

输入参数tofromnamelimitperson_id

get_money_between_people

Money Between People

Same as get_person_transactions: authenticated user ↔ one contact via individual expense rows. Requires context.read and financial_details:read. Prefer get_person_transactions; this alias exists for agent discoverability. ($0.10; API key required)

输入参数tofromnamelimitperson_id

get_person_interactions

Person Interactions

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. Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). ($0.10; API key required)

输入参数tofromkindnamelimitperson_id

get_interactions

Life Update Interactions

Bounded graph read over life_updates (PHI-54/61): traverse interaction → person/event/expense/place with source/confidence on every hop. When life_update edges are missing, projects hops from CRM interactions, event_people, and expense person FKs (PHI-100). Prefer for “who was I with at X?”, “when am I meeting Y next?”, “how much at Z?”. 93-day default window. Pass person_name, place_query, or ids. Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). ($0.10; API key required)

输入参数tofromlimitevent_idplace_idperson_idexpense_idperson_nameplace_query

explain_fact

Explain Fact

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)

输入参数factlimitquery必填

list_clarifications

List Clarifications

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)

输入参数kindlimitauto_cleanup

get_trackers

Habit Trackers

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. current_value is read from the tracker's events: days for sobriety/streak, days left for a countdown, the total for a counter (value_unit), with last_event_date. Returns up to `limit` trackers (default 50, max 200; get_context_pack's active_trackers keeps 6); total and truncated say whether more exist. Requires OAuth or a supported scoped credential. ($0.10; API key required)

输入参数limit

reset_tracker

Reset Streak Tracker

Preview first, 30-day undo. Resets 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 go in the preview arguments. Rebuilds life_state. Reviewed and reversible: first call preview_destructive_change({ tool: "reset_tracker", arguments: { tracker_id } }), which stores the exact change without applying it. After the user confirms, call reset_tracker with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. Restore puts back the previous start date, streak and reset count. Requires API key or OAuth with context.delete. Share tokens cannot write. ($0.10; API key required)

输入参数notetitlereset_atpreview_id必填request_id必填tracker_idtracker_titleidempotency_keyrestore_window_acknowledged必填

search_gmail

Search Gmail (read-only)

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. For clock-time constraints, pass after/before as account-local civil datetimes; the tool converts them to precise UTC instants. Returns id, subject, from, canonical date, account-local date_local, time_zone, and snippet only (no body), newest first (newest_first: true). For the latest / most recent email from someone, query from:<sender> alone, without quoted topic phrases (the newest reply often lacks them); a from: + topic search with no match from the last 7 days also searches the sender alone and marks those messages sender_only (see note). Follow up with read_gmail_message. Cannot send, archive, or delete. Never invent email contents. If Gmail is not connected, connect at /integrations. Requires mail.read on an API key or non-ChatGPT OAuth connection. ChatGPT profiles do not grant mail.read or list this tool. Share tokens cannot call this tool. ($0.10; API key required)

输入参数qafteremailquery必填beforeaccountmax_results

list_gmail_accounts

List Gmail Accounts

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). Requires mail.read on an API key or non-ChatGPT OAuth connection. ChatGPT profiles do not grant mail.read or list this tool. Share tokens cannot call. ($0.05; API key required)

无需输入参数。

read_gmail_message

Read Gmail Message (read-only)

Read one Gmail message by id from search_gmail. Returns subject, from, canonical date, account-local date_local, time_zone, 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. On failure returns code gmail_read_failed with retryable: retry once only when retryable; if the newest message still cannot be read, say so and never present an older one as the latest. Read-only. Requires mail.read on an API key or non-ChatGPT OAuth connection. ChatGPT profiles do not grant mail.read or list this tool. Share tokens cannot call. ($0.10; API key required)

输入参数idemailaccountmessage_id必填

read_gmail_attachment

Read Gmail Attachment (read-only)

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. Requires mail.read on an API key or non-ChatGPT OAuth connection. ChatGPT profiles do not grant mail.read or list this tool. Share tokens cannot call. ($0.10; API key required)

输入参数emailaccountmessage_id必填attachment_id必填

get_event_fact_source

Get Event Fact Source

Inspect an event fact from a saved Dayze answer before correcting it. Requires calendar read and travel details access. ($0.10; API key required)

输入参数message_id必填source_ref必填

list_event_fact_corrections

List Event Fact Corrections

List the owner’s recent event classification and event-person correction ledger, including undone entries. ($0.10; API key required)

无需输入参数。

apply_event_fact_correction

Apply Event Fact Correction

Correct or dispute an event fact from a saved answer. Inspect its source first. Supply request_id for safe retries. ($0.10; API key required)

输入参数valueaction必填message_id必填request_id必填source_ref必填idempotency_key

undo_event_fact_correction

Undo Event Fact Correction

Undo an owned event fact correction by ledger ID. Supply request_id for safe retries. ($0.10; API key required)

输入参数request_id必填correction_id必填idempotency_key

log_sleep

Log Sleep

Sleep: log overnight or nap. Cross-midnight OK (e.g. 14:00→03:00 = 13h / 780m). ($0.10; API key required)

输入参数notessourcequalityended_at必填timezonerequest_idsleep_typestarted_at必填timezone_endtimezone_startidempotency_key

get_sleep

Get Sleep

Sleep: list typed sleep/nap records with duration_minutes. ($0.05; API key required)

输入参数tofromlimit

get_sleep_summary

Sleep Summary

Sleep: day/week/month totals and averages. ($0.05; API key required)

输入参数range

update_sleep

Update Sleep

Sleep: patch an existing sleep record by sleep_id. ($0.10; API key required)

输入参数notesqualityended_atsleep_id必填timezonerequest_idsleep_typestarted_atidempotency_key

get_conditions

Get Conditions

Private health conditions owned by the user, for subject_type self (default) or an explicitly resolved Dayze Contacts person_id. A person condition never appears in the user's self list. status: open (default), suspected, active, improving, resolved or all. condition_id returns recent check-ins and care items for the same subject. ($0.05; API key required)

输入参数statusperson_idcondition_idsubject_type

create_condition

Add Condition

Add a private condition for an explicit subject_type: self, or person plus an owned person_id from get_people/resolve_person. Never turn a family member's condition into self; if the person is unresolved, ask and write nothing. status defaults suspected—never infer active or confirmed from a mention. Keep the user's words; source defaults user_reported and confirmation_status reported. ($0.10; API key required)

输入参数name必填notessourcestatussymptomsbody_areaperson_idrequest_idstarted_ontreatmentssubject_type必填tracking_focus另有 2 个

update_condition

Update Condition

Patch a condition by condition_id with its explicit subject_type (and person_id for a contact). The subject must match. Patch status, confirmation_status, source or condition fields; omitted fields stay untouched and null clears nullable text. Never infer active/confirmed. ($0.10; API key required)

输入参数namenotessourcestatussymptomsbody_areaperson_idrequest_idstarted_ontreatmentscondition_id必填subject_type必填另有 3 个

log_condition_checkin

Condition Check-in

Save a day's check-in for one condition with the same explicit subject_type/person_id. Self check-ins show on the user's Day Card; another person's do not. severity 0-10, note, treatment_done; logged_on defaults today. One per condition/day. ($0.05; API key required)

输入参数noteseveritylogged_onperson_idrequest_idcondition_id必填subject_type必填treatment_doneidempotency_key

record_health_trend

Record Health Trend

Append a private trend for explicit subject_type self, or a person through a matching condition_id/person_id. Corrections supersede a point and retain history. ($0.05; API key required)

输入参数kind必填unitvalue必填metric必填source必填person_idconfidence必填request_idobserved_at必填condition_idsubject_type必填supersedes_id另有 2 个

resolve_place

Resolve Place

Canonicalize a venue name via place aliases and fuzzy match. ($0.10; API key required)

输入参数nameplacequery

get_places

List Places

Known venues: visit-graph `places` plus saved place cards (`saved_places` from business_contacts) with address, opening_hours, and affordability ($/$$/$$$). `query` filters both lists by name. ($0.10; API key required)

输入参数tagareacitynearlimitquerycountryaffordability

get_place

Get Place Card

Fetch one saved place card (business_contacts) by place_id — address, opening hours, affordability, notes. ($0.05; API key required)

输入参数idplace_idbusiness_contact_id

create_place

Create Place Card

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)

输入参数areacityname必填tagshoursnotesphoneaddresscountrywebsitecategorylatitude另有 9 个

update_place

Update Place Card

Patch a saved place card by place_id / business_contact_id. Unspecified fields stay unchanged (hours, affordability, address, notes, …). ($0.10; API key required)

输入参数idareacitynametagshoursnotesphoneaddresscountrywebsitecategory另有 12 个

delete_place

Delete Place Card

Preview first, 30-day undo. Delete a saved place card (business_contacts) by place_id / business_contact_id and return the deleted card. Reviewed and reversible: first call preview_destructive_change({ tool: "delete_place", arguments: { place_id } }), which stores the exact change without applying it. After the user confirms, call delete_place with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. Restore also re-links visits, events, expenses and people that pointed at the card. ($0.10; API key required)

输入参数idplace_idpreview_id必填request_id必填idempotency_keybusiness_contact_idrestore_window_acknowledged必填

enrich_place_from_google

Enrich Place from Google

Optional Google Places fill for a saved place card (hours/address/phone/website). Defaults to fill_empty_only — does not overwrite agent-supplied fields. Returns a clear not_configured capability error if GOOGLE_PLACES_API_KEY (or GOOGLE_MAPS_API_KEY) is missing. ($0.15; API key required)

输入参数place_idrequest_idfill_empty_onlyidempotency_keybusiness_contact_id

backfill_place_names

Backfill Place Names

Add human names to coord-only places/visits via Google nearby search + reverse geocode. Never overwrites existing names, coordinates, or user-entered fields. Idempotent; resumable via cursor under a per-account monthly Places quota. ($0.10; API key required)

输入参数limitcursordry_runrequest_ididempotency_key

get_place_visits

Place Visits

Count confirmed outings at a venue. Resolves aliases first; typed PlaceVisits are primary, and past non-todo events/GPS evidence for the canonical place are reconciled by day. count excludes plans, todos, and separately labelled reconstructed_candidates. Returns visit dates and evidence refs. ($0.10; API key required)

输入参数tofromplace必填place_idperson_ids

get_movements

Movement Segments

Read evidence-backed travel legs with their origin, destination, timing, mode, provider, distance, and linked expense. ($0.10; API key required)

输入参数tofromlimit

log_movement

Log Movement

Log one provenance-backed movement segment. Origin, destination, timestamps, source, and external_id are required for a deduplicated route history. ($0.10; API key required)

输入参数mode必填origin必填source必填metadataproviderarrived_at必填confidenceexpense_idrequest_iddeparted_at必填destination必填external_id必填另有 12 个

get_location_history

Location History

Normalized visit history (venue-level by default). Merges GPS location_visits + place_visits (MCP/Uber digs). ($0.10; API key required)

输入参数tocityfromplacecountryprecision

log_place_visit

Log Place Visit

MUTATES place_visits for map/history digs (Uber dropoff, address evidence). Required: place (or place_id) + arrived_at/date. arrived_at: a clock time with offset when the user gave a time or part of day (afternoon → 15:00 local); YYYY-MM-DD when only the day is known — the visit is then stored with no clock time and the receipt says "time not specified". arrival_time_precision: approximate when the clock time reads a part of day (evening → 19:00), so readers show "~19:00"; exact (default) only for a time the user gave. Optional: departed_at, source (a provenance tag: uber|mcp|manual|import, not a note), evidence_expense_id (idempotent), city/country/address. Add-only: a repeat on the same day returns the stored visit (duplicate: true, retained, mismatch) and never changes it. Prefer this over stuffing streets only into expenses. ($0.10; API key required)

输入参数citydatenameplacesourceaddresscountryplace_idarrived_atconfidencerequest_iddeparted_at另有 4 个

delete_place_visit

Delete Place Visit

Preview first, 30-day undo. Delete one place_visits row (visit_id from get_place_visits or log_place_visit) without deleting its canonical place. Reviewed and reversible: first call preview_destructive_change({ tool: "delete_place_visit", arguments: { visit_id } }), which stores the exact change without applying it. After the user confirms, call delete_place_visit with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. ($0.10; API key required)

输入参数visit_id必填preview_id必填request_id必填idempotency_keyrestore_window_acknowledged必填

get_location_context

Location Context

Likely current or at-time place with confidence and provenance. ($0.10; API key required)

输入参数at

get_current_states

Current States

Permitted assertion states for a person (flagged life-graph; off by default). ($0.10; API key required)

输入参数known_atvalid_atpeople_idperson_idpredicates

propose_life_update

Propose Life Update

Propose assertion create/correct without committing (flagged; off by default). ($0.10; API key required)

输入参数valueclient_idpeople_idperson_idpredicateoperationsrequest_idsource_textidempotency_key

commit_life_update

Commit Life Update

Owner approve+commit via payload_hash + owner_session_id (flagged; off by default). Requires the propose_life_update review first. Commits append bitemporal revisions and keep prior revisions; there is no post-commit undo tool, so correct a committed fact with a new propose_life_update. ($0.10; API key required)

输入参数request_idproposal_id必填payload_hash必填idempotency_keyowner_session_id必填

update_current_location

Update Current Location

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)

输入参数cityplacevenueaddresscountrycheck_inlatitudelocationset_homelongituderequest_ididempotency_key

get_trips

List Trips

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)

输入参数tofromlimitcursorstatusinclude_archived

get_residences

List Residences

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)

输入参数tofromlimitinclude_eras

get_trip

Get Trip

Single trip with linked places and people. ($0.10; API key required)

输入参数trip_id必填

get_travel_history

Travel History

Completed/confirmed travel only. ($0.10; API key required)

输入参数tofrom

get_countries_visited

Countries Visited

Canonical countries from completed trips (not other people travel). ($0.10; API key required)

输入参数tofrominclude_residence

get_cities_visited

Cities Visited

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)

输入参数tofrom

log_travel

Log Travel

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. The calendar event is private. Zelle/Venmo money belongs in log_transaction — not here. ($0.10; API key required)

输入参数city必填datekindtitlecountryend_dateevidenceconfidencerequest_idstart_datemirror_eventidempotency_key

create_person

Create Contact

Add a Dayze Contacts record, birthday included (YYYY-MM-DD, YYYY-MM, YYYY, or MM-DD if year unknown); checks duplicates first. An existing contact comes back unchanged with its person_id, not_applied (the fields you sent) and a hint. request_id is optional: without one, identical calls within 15 minutes return the first result. Advertised name create_person is stable; tools/call also accepts create_contact. ($0.10; API key required)

输入参数name必填tieremailnotesphonealiaseswalletsbirthdayrequest_idis_favoritecontext_tagsrelationship另有 2 个

merge_people

Merge People

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)

输入参数preview_id必填request_ididempotency_keyprimary_person_id必填duplicate_person_ids必填restore_window_acknowledged必填

delete_person_preview

Delete Contact Preview

Create a durable, non-mutating snapshot of one owned contact and every linked record before deletion. Review the 30-day restore window, then pass preview_id to delete_person. ($0.05; API key required)

输入参数person_id必填request_ididempotency_key

delete_person

Delete Contact

Delete one owned contact only after delete_person_preview. Preserves a complete restore snapshot for 30 days; undo with undo_contact_change using restore_id. Requires a request_id for retry-safe idempotency. ($0.10; API key required)

输入参数person_id必填preview_id必填request_id必填idempotency_keyrestore_window_acknowledged必填

preview_destructive_change

Preview Destructive Change

Review a destructive change before it happens. Stores the exact rows delete_food, delete_place, delete_place_visit, archive_inventory_item, archive_asset, reset_tracker, unlink_people, remove_person_alias, convert_contact_entity, bulk_dismiss_clarifications, delete_memory, delete_moment, merge_moments, merge_memory, correct_memory_atom would delete, archive or overwrite (with their before-state and linked records) without changing anything, and returns preview_id, operations, expires_at (30 minutes) and restore_window_days (30). Show it to the user, then call the named tool with preview_id, restore_window_acknowledged: true and request_id. ($0.05; API key required)

输入参数tool必填arguments必填request_ididempotency_key

restore_change

Restore Change

Undo a reviewed destructive change by restore_id within 30 days: deleted rows come back with their links, archived or overwritten fields revert, and inserted history rows are removed. Refuses if the record was edited since; repeats are no-ops. Call-time aliases: restore_food, restore_place, restore_inventory_item, restore_asset, restore_tracker, restore_memory. Contact deletes/merges use undo_contact_change; event/expense/trip archives use restore_event/restore_expense/restore_trip. ($0.10; API key required)

输入参数request_idrestore_id必填idempotency_key

score_people_duplicates

Score People Duplicates

Score likely CRM duplicate pairs before merge_people. ($0.05; API key required)

输入参数limitperson_idmin_probability

get_person_connections

Get Person Connections

List graph edges for one CRM person. ($0.05; API key required)

输入参数person_id必填

get_fundraising_candidates

Get Fundraising Candidates

Structured fundraising CRM: source-backed roles, sector and stage fit, pipeline and existing graph intro paths. Use for who to approach for a round. Returns canonical person IDs. ($0.05; API key required)

输入参数viewstagesectorstatusstrength

set_primary_person_name

Set Primary Person Name

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)

输入参数name必填person_id必填request_ididempotency_keypreserve_old_name_as_alias

update_person_identity

Update Person Identity

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)

输入参数forcealiaseswebsitepronounsperson_id必填legal_namerequest_idpreferred_namesocial_handlesidempotency_keyuser_relationships

add_person_alias

Add Person Alias

Add a nickname/payment handle/misspelling alias for one CRM person. ($0.05; API key required)

输入参数alias必填sourceperson_id必填alias_kindrequest_ididempotency_key

remove_person_alias

Remove Person Alias

Preview first, 30-day undo. Remove one alias from a CRM person. Reviewed and reversible: first call preview_destructive_change({ tool: "remove_person_alias", arguments: { person_id, alias } }), which stores the exact change without applying it. After the user confirms, call remove_person_alias with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. Restore brings back the alias with its kind, source and confidence. ($0.05; API key required)

输入参数alias必填person_id必填preview_id必填request_id必填idempotency_keyrestore_window_acknowledged必填

update_person_alias

Update Person Alias

Update alias_kind/source/display for an existing alias. ($0.05; API key required)

输入参数alias必填sourceperson_id必填alias_kindrequest_idalias_displayidempotency_key

set_person_account

Set Person Account

Upsert a platform account on a Dayze Contact (Instagram, Dayze, ChatGPT, …). Multiple accounts per platform are allowed (kind + optional label + is_primary). Pass account_id to update a specific row; otherwise upsert by person+platform+handle+kind. Agents may set status likely|self_reported|unknown (default likely); verified is reserved for server derivation. source is stored as agent. platform=other requires label (site name). ($0.05; API key required)

输入参数urlkindlabelnoteshandlestatusplatform必填person_id必填account_idis_primaryrequest_ididempotency_key

remove_person_account

Remove Person Account

Delete one person_accounts row by account id (owner-checked). Simple write-delete of a presence row (not a reviewed contact delete). ($0.05; API key required)

输入参数account_id必填request_ididempotency_key

audit_people

Audit People (compact)

CONTEXT LAYER: server-side contact hygiene. Returns compact candidate clusters only (duplicates, entity-type hints, normalization, payment-handle collisions, junk system/test-word names). Do NOT use get_people bulk dumps for cleanup. ($0.10; API key required)

输入参数limitchecksmin_confidence

merge_people_preview

Merge People Preview

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)

输入参数request_idfield_choicesidempotency_keyprimary_person_id必填duplicate_person_ids必填

undo_contact_change

Undo Contact Change

Reverse a reversible contact change (rename, alias, identity, classify, link). For merges, deletes, unlink_people, remove_person_alias and convert_contact_entity, pass restore_id as change_id within 30 days. Restore rejects later edits rather than overwriting them. ($0.10; API key required)

输入参数change_id必填request_ididempotency_key

classify_contact

Classify Contact

Set entity_type (person/company/merchant/…) on a CRM row without losing transactions or links. ($0.10; API key required)

输入参数sourceentity_idperson_idconfidencerequest_identity_type必填idempotency_keyidentity_status

convert_contact_entity

Convert Contact Entity

Preview first, 30-day undo. Convert a contact’s entity_type (same as classify_contact). Preserves FKs. Reviewed and reversible: first call preview_destructive_change({ tool: "convert_contact_entity", arguments: { person_id, target_type } }), which stores the exact change without applying it. After the user confirms, call convert_contact_entity with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. Restore reverts entity_type, identity_status and identity_confidence. ($0.10; API key required)

输入参数entity_idperson_idpreview_id必填request_id必填target_typeidempotency_keyrestore_window_acknowledged必填

find_identity_candidates

Find Identity Candidates

Compact identity resolution candidates by person_id or query (alias/name/payment signals). Prefer over bulk get_people. ($0.05; API key required)

输入参数limitqueryperson_id

normalize_people_preview

Normalize People Preview

Preview whitespace/phone/handle normalization changes (no title-case of stylized names). ($0.05; API key required)

输入参数rulesrequest_ididempotency_key

normalize_people_apply

Normalize People Apply

Apply a normalize_people_preview by preview_id. ($0.10; API key required)

输入参数preview_id必填request_id必填candidate_hash必填idempotency_key

start_people_cleanup

Start People Cleanup

Server-side cleanup audit. Records the audit run and returns a review queue; it never changes, merges or deletes contacts, so there is nothing to undo. Apply candidates with merge_people_preview → merge_people or normalize_people_preview → normalize_people_apply (both reversible for 30 days). ($0.15; API key required)

输入参数checksrequest_ididempotency_keyauto_merge_threshold

get_people_cleanup_result

Get People Cleanup Result

Fetch start_people_cleanup result by cleanup_id. ($0.05; API key required)

输入参数cleanup_id必填

dismiss_clarification

Dismiss Clarification

Dismiss a pending entity clarification (not_person, etc.). ($0.05; API key required)

输入参数reasonrequest_ididempotency_keyclarification_id必填

resolve_clarification

Resolve Clarification

Link a clarification surface to an existing person. ($0.10; API key required)

输入参数person_idrequest_idperson_nameidempotency_keyclarification_id必填

bulk_dismiss_clarifications

Bulk Dismiss Clarifications

Preview first, 30-day undo. Dismiss non-person / typed junk from the clarification queue. Reviewed and reversible: first call preview_destructive_change({ tool: "bulk_dismiss_clarifications", arguments: { entity_type?, reason? } }), which stores the exact change without applying it. After the user confirms, call bulk_dismiss_clarifications with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. The preview lists every clarification that would be dismissed; restore returns them to pending. ($0.05; API key required)

输入参数reasonpreview_id必填request_id必填entity_typeidempotency_keyrestore_window_acknowledged必填

add_inventory_item

Add Inventory Item

Add an owned item to the user's private Inventory. For a computer, phone, camera or synth pass spec_template (computer.v1, phone.v1, camera.v1, synth.v1) and specs with that template's fields, taken from what the user says or the device reports; never infer specs from a model name. Changing facts (OS version, free space, battery, service readiness) go in state, one observation with observed_at. Never ask for or store device or account identifiers. Returns inventory_id and the item with capability_summary. Example: { name: "MacBook Pro 14 (2023)", spec_template: "computer.v1", specs: { manufacturer: "Apple", model_name: "MacBook Pro", model_identifier: "Mac15,11", chip: "Apple M3 Max", performance_cores: 10, efficiency_cores: 4, total_cores: 14, memory_bytes: 38654705664, memory: "36 GB", architecture: "arm64" }, state: { os: { name: "macOS", version: "15.4.1", build: "24E263" }, observed_at: "2026-09-29T14:00:00Z", source: "user_reported" } } ($0.10; API key required)

输入参数name必填tagsbrandmodelnotesspecsstatestatussubtypecategorycurrencylocation另有 16 个

get_inventory

Get Inventory

Browse the user's owned Inventory: filter by category, status or search text (name, brand, model, notes, reference number). Archived and no-longer-owned items only with include_archived. Items with specs carry capability_summary and state_freshness; each item has photo_count and cover_url. ($0.10; API key required)

输入参数limitoffsetsearchstatussort_bycategoryinclude_archivedinclude_sensitive

get_inventory_item

Get Inventory Item

One owned Inventory item in full: specs and spec_template, state with state_freshness (current, recent or stale for each key; check with the user before relying on stale state), capability_summary (one line to plan from, e.g. "Can my computer run this?"), valuations, linked people and photos. ($0.10; API key required)

输入参数inventory_id必填

update_inventory_item

Update Inventory Item

Patch one owned Inventory item, found by inventory_id or by nickname: what the user calls it ("MacBook", "work laptop"), matched to exactly one of their active items by nickname, name or model, so there is no need to look it up first; several matches are refused with the candidates and nothing changes. Fields you leave out are untouched. specs merge per key (null removes a key), so updating memory keeps storage. state records a new observation (observed_at, source, confidence) and never changes specs or notes; a key already observed more recently is kept. spec_template switches or clears (null) the template. A status like sold or donated moves it out of the active list; to archive, use archive_inventory_item. Never add device or account identifiers. ($0.10; API key required)

输入参数nametagsbrandmodelnotesspecsstatestatussubtypecategorycurrencylocation另有 17 个

archive_inventory_item

Archive Inventory Item

Preview first, 30-day undo. Archive an inventory item instead of deleting it (status archived, archived_at set; valuations, people links and photos are kept). Reviewed and reversible: first call preview_destructive_change({ tool: "archive_inventory_item", arguments: { inventory_id } }), which stores the exact change without applying it. After the user confirms, call archive_inventory_item with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. ($0.10; API key required)

输入参数reasonpreview_id必填request_id必填inventory_id必填idempotency_keyrestore_window_acknowledged必填

search_inventory

Search Inventory

Search owned Inventory by name, brand, model, notes or reference number (query), with the same filters as get_inventory. Returns photo_count, has_photos, cover_url; when empty, photo_hint explains upload_asset linkage. ($0.10; API key required)

输入参数limitqueryoffsetstatussort_bycategoryinclude_archivedinclude_sensitive

add_inventory_valuation

Add Inventory Valuation

Append a valuation (value, currency, valued_at, source) to one owned Inventory item; the item's current value becomes this value. ($0.10; API key required)

输入参数notesvalue必填sourcecurrencyvalued_atconfidencerequest_idinventory_id必填idempotency_key

get_inventory_valuations

Get Inventory Valuations

Chronological valuation history for one owned Inventory item. ($0.10; API key required)

输入参数inventory_id必填

upload_asset

Upload Asset

Upload image bytes to Dayze storage (normally re-encoded as WebP; original_preserved and metadata_stripped describe the saved bytes). Accepts image_base64, url, or ChatGPT file object `image` ({download_url, file_id}). Returns asset_id, content_type, byte_size, view_url after bytes are confirmed. Temporary ChatGPT download URLs are never stored. For inventory item photos: pass entity_type=inventory, entity_id=inventory_id, role=photo. For receipt photos: entity_type=expense|event, role=receipt. Or upload then attach_asset. ($0.15; API key required)

输入参数urlroleimagefilenamemetadataentity_idmime_typeasset_typerequest_iddescriptionentity_typecontent_type另有 3 个

get_asset

Get Asset

Fetch one asset by asset_id with signed_url for download/processing. ($0.05; API key required)

输入参数asset_id必填include_signed_url

update_asset

Update Asset

Patch role, metadata, description, or parent_asset_id (e.g. mark as processed). ($0.08; API key required)

输入参数roleasset_id必填filenamemetadataasset_typerequest_iddescriptionidempotency_keyparent_asset_id

archive_asset

Archive Asset

Preview first, 30-day undo. Soft-delete an asset (sets archived_at). Original rows are preserved for versioning. Reviewed and reversible: first call preview_destructive_change({ tool: "archive_asset", arguments: { asset_id } }), which stores the exact change without applying it. After the user confirms, call archive_asset with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. ($0.05; API key required)

输入参数asset_id必填preview_id必填request_id必填idempotency_keyrestore_window_acknowledged必填

upload_photo

Upload Photo

Upload a photo to a Life Graph entity you have (event, expense, place, person, inventory, …). Accepts image_base64, url, or ChatGPT file object `image` ({download_url, file_id}). Normally re-encodes as WebP; original_preserved and metadata_stripped describe the saved bytes. Partial results include an asset_id for repair: call upload_photo with asset_id and a new request_id, without image bytes. Answers attached: true only after readback confirms asset id, content_type, byte_size, and a viewable URL on the record — never from OCR text alone. Mobile file references without download_url fail clearly (attached: false). Person uploads also write the CRM gallery (person_photos) and avatar when set_as_avatar=true. ($0.15; API key required)

输入参数urlroleimagetitleasset_idfilenameentity_id必填mime_typerequest_iddescriptionentity_type必填content_type另有 3 个

attach_asset

Attach Asset

Attach an asset_id to one of your entities. An asset uploaded without an entity is attached as is; one already on an entity gets a linked copy (the original row stays). Roles: original | processed | thumbnail | cover | document | receipt | certificate | other (photo is stored as original). Legacy: pass url instead of asset_id. ($0.10; API key required)

输入参数urlroleasset_idmetadataentity_id必填asset_typerequest_iddescriptionentity_type必填idempotency_key

get_entity_assets

Get Entity Assets

List assets linked to an entity (role, signed_url, versions). entity_type inventory_item → inventory. ($0.10; API key required)

输入参数entity_id必填asset_typeentity_type必填

log_expense

Log Expense

Create an outgoing expense only. For money received (Venmo/Cash App/PayPal/Zelle) use log_transaction with direction=from and type=income. Lending a contact cash: category "IOU lend" + person_id (one call creates the IOU they owe and shows the money out once). ($0.10; API key required)

输入参数datetagsnotesamount必填sourceprojectcategorycurrencyiou_typemerchantperson_idcash_moved另有 7 个

log_transaction

Log Transaction

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). IOU repayment ("Mark paid me back $200"): category "IOU repayment" + person_id — one call lowers the IOU and shows the money once (direction from = they paid the user, to = the user paid them). A cash loan ("I lent Mark $200"): category "IOU lend" + person_id — one call creates the IOU and shows the money once on that day (direction to = the user lent them, from = they lent the user); cash_moved: false for an owed share (IOU only). A plain income from a contact with an open IOU is refused unless not_iou_repayment: true; the same money as an already-recorded repayment or loan comes back as duplicate. ($0.10; API key required)

输入参数datetagstypenotesamount必填sourceprojectcategorycurrencyiou_typemerchantdirection必填另有 14 个

import_venmo_gmail

Import Venmo Gmail

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. Requires mail.read on an API key or non-ChatGPT OAuth connection. ChatGPT profiles do not grant mail.read or list this tool. ($0.15; API key required)

输入参数emailqueryaccountdry_runrequest_idmax_resultsmirror_eventidempotency_key

import_uber_gmail

Import Uber Gmail

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. Requires mail.read on an API key or non-ChatGPT OAuth connection. ChatGPT profiles do not grant mail.read or list this tool. ($0.15; API key required)

输入参数emailqueryaccountdry_runrequest_idmax_resultsidempotency_key

import_rideshare_gmail

Import Rideshare Gmail

Preview or import completed Lyft and Uber receipts as deduplicated origin-to-destination movements plus linked expenses. dry_run returns the exact proposed records without writing. Requires mail.read on an API key or non-ChatGPT OAuth connection. ChatGPT profiles do not grant mail.read or list this tool. ($0.15; API key required)

输入参数emailqueryaccountdry_runrequest_idmax_resultsidempotency_key

log_income

Log Income

Record money received (Stripe, refunds, payroll, Venmo). log_transaction with type income and direction from already set (pass neither). Use external_id for Stripe/Gmail idempotency. A contact paying back an IOU: category "IOU repayment" + person_id (lowers the IOU, shows the money once). A contact lending the user cash: category "IOU lend" + person_id (creates the IOU the user owes, shows the money once). ($0.10; API key required)

输入参数datetagsnotesamount必填sourceprojectcategorycurrencyiou_typemerchantperson_idcash_moved另有 8 个

update_expense

Update Expense

PATCH an expense row. ($0.10; API key required)

输入参数datetagsnotesamountsourceprojectcategorycurrencymerchantexpense_id必填request_iddescription另有 3 个

record_purchase

Record Purchase

Atomic expense + optional inventory item creation. ($0.10; API key required)

输入参数datename必填amount必填categorycurrencymerchantrequest_ididempotency_keycreate_inventoryinventory_details

record_sale

Record Sale

Mark inventory sold + record sale proceeds with gain/loss. ($0.10; API key required)

输入参数datenotesamount必填sold_atcurrencyrequest_idmarketplaceinventory_id必填idempotency_key

get_transactions

Get Transactions

List individual expense/income/transfer rows (includes tags, payment_method). Requires context.read and financial_details:read. Filter with tag=project:… or project=… ($0.10; API key required)

输入参数totagfromtypelimitcursoroffsetprojectinclude_archived

search_transactions

Search Transactions

Search individual transaction rows by merchant/description/category, or exact tag (project:/ext:/rail:). Requires context.read and financial_details:read. ($0.10; API key required)

输入参数taglimitquerycursoroffsetprojectinclude_archived

search_photos

Search Photos

Search person photos and entity assets by query/metadata. Returns inline MCP image attachments. ($0.10; API key required)

输入参数tofromlimitqueryplace_idperson_ids

get_photo

Get Photo

Single photo metadata + secure URL. Returns inline MCP image attachment when available. ($0.10; API key required)

输入参数photo_id必填

get_photos_for_event

Photos For Event

Assets linked to an event. ($0.10; API key required)

输入参数event_id必填

get_person_photos

Person Photos

Read a contact avatar and gallery as inline MCP images with per-asset render status. Avatar comes first. Use offset to page through photos (up to six per call); never paste raw image URLs into chat. ($0.10; API key required)

输入参数limitoffsetperson_id必填

get_photos_for_place

Photos For Place

Assets linked to a canonical place. ($0.10; API key required)

输入参数place_id必填

cleanup_preview

cleanup preview

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)

输入参数family必填request_ididempotency_key

cleanup_apply

cleanup apply

Atomically archive the exact reviewed preview. Requires preview_id, candidate_hash and request_id. Refuses changed sources. Returns per-row statuses and restore_id (restore_cleanup undoes it for at least 30 days); replay performs no additional actions. ($0; API key required)

输入参数preview_id必填request_id必填candidate_hash必填idempotency_key

archive_event

archive event

Reversibly archive one owned event; preserve linked data and return restore_id. Archived rows are never purged, so restore_event works for at least 30 days (the Dayze destructive-change restore window). Use a new request_id for each intended action. ($0; API key required)

输入参数reasonevent_id必填request_id必填idempotency_key

archive_expense

archive expense

Reversibly archive one owned expense; preserve linked data and return restore_id. Archived rows are never purged, so restore_expense works for at least 30 days (the Dayze destructive-change restore window). Use a new request_id for each intended action. ($0; API key required)

输入参数reasonexpense_id必填request_id必填idempotency_key

archive_trip

archive trip

Reversibly archive one owned trip; preserve linked data and return restore_id. Archived rows are never purged, so restore_trip works for at least 30 days (the Dayze destructive-change restore window). Use a new request_id for each intended action. ($0; API key required)

输入参数reasontrip_id必填request_id必填idempotency_key

restore_event

restore event

Restore an archive or normalization receipt. Requires restore_id and request_id. Receipts stay restorable for at least 30 days (archived rows are retained, not purged). Refuses intervening edits; repeats are no-ops. ($0; API key required)

输入参数request_id必填restore_id必填idempotency_key

restore_expense

restore expense

Restore an archive or normalization receipt. Requires restore_id and request_id. Receipts stay restorable for at least 30 days (archived rows are retained, not purged). Refuses intervening edits; repeats are no-ops. ($0; API key required)

输入参数request_id必填restore_id必填idempotency_key

restore_trip

restore trip

Restore an archive or normalization receipt. Requires restore_id and request_id. Receipts stay restorable for at least 30 days (archived rows are retained, not purged). Refuses intervening edits; repeats are no-ops. ($0; API key required)

输入参数request_id必填restore_id必填idempotency_key

restore_cleanup

restore cleanup

Restore an archive or normalization receipt. Requires restore_id and request_id. Receipts stay restorable for at least 30 days (archived rows are retained, not purged). Refuses intervening edits; repeats are no-ops. ($0; API key required)

输入参数request_id必填restore_id必填idempotency_key

get_moments

Get Moments

List owned Moments by date, title, type, tag, person or place. Stable moment_id and inspect_url for each. ($0.05; API key required)

输入参数totagfromlimitplacetitleoffsetperson_idmoment_type

search_moments

Search Moments

Search only owned Moment stories and titles within an optional date range. Returns stable moment_ids. ($0.05; API key required)

输入参数tofromlimitquery必填offset

preview_moment_duplicates

Preview Moment Duplicates

Group exact Moment duplicates first, then possible near duplicates for human review. Never merges automatically. ($0.05; API key required)

输入参数to必填from必填

delete_moment_preview

Preview Moment Deletion

Read a Moment and linked impact and store a reviewed deletion preview; nothing is removed. ($0.05; API key required)

输入参数moment_id必填request_ididempotency_key

delete_moment

Delete Moment

Preview first, 30-day undo. Reviewed and reversible: first call preview_destructive_change({ tool: "delete_moment", arguments: { moment_id } }), which stores the exact change without applying it. After the user confirms, call delete_moment with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. ($0.10; API key required)

输入参数moment_idpreview_id必填request_id必填idempotency_keyrestore_window_acknowledged必填

merge_moments

Merge Moments

Preview first, 30-day undo. Preview with preview_destructive_change({tool:"merge_moments",arguments:{canonical_id,retired_ids}}). Conflicting story, date, place or event links stop the merge. Union people, tags and media. Reviewed and reversible: first call preview_destructive_change({ tool: "merge_moments", arguments: { canonical_id, retired_ids } }), which stores the exact change without applying it. After the user confirms, call merge_moments with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. ($0.10; API key required)

输入参数preview_id必填request_id必填retired_ids必填canonical_id必填idempotency_keyrestore_window_acknowledged必填

get_timeline

Get Timeline

The user's days in one read: calendar events, Moments (lived stories) and Food Diary entries for a civil date range in the account timezone (max 92 days; default today). A food entry's calendar mirror is listed once, under food. Text the connection may not see is redacted as in get_events. Each record keeps its id and inspect_url where it has a page. ($0.05; API key required)

输入参数attodatefromtimezone

get_today

Get Today

Today in the user's timezone: local date and time, today's events, Moments and Food Diary entries, and today's money totals by category. Use first when an agent needs the user's current day. ($0.05; API key required)

输入参数atcurrencytimezone

get_food_log

Get Food Log

Food Diary entries (what, kind, place, local time, dishes, photo) for a civil date range in the account timezone (max 92 days; default today), oldest first. Optional place narrows to one venue. Each entry has food_id. ($0.05; API key required)

输入参数attodatefromplacetimezone

get_finance

Get Finance

Money for a civil date range in the account timezone (max 366 days; default today): total spent and income in one display currency (the same aggregation as Dayze chat; transfers and IOU anchors left out, rows without an FX quote listed separately, never converted 1:1), plus totals by category and by currency. Optional category matches the expense category (e.g. "food"). Individual transactions are included only with the Financial details permission. ($0.05; API key required)

输入参数attodatefromcategorycurrencytimezone

log_entry

Log Entry

CREATES one entry from what the user said: type food/meal/snack/drink/kopi/coffee → Food Diary (with its Finance row when amount is given), expense → Finance, moment → a private Moment. Uses the same duplicate check as Dayze chat: the identical entry sent again within about 2 minutes is not saved twice and the reply says "Already logged that a moment ago". Shows in Dayze with "Added by <this app>" and can be undone from the record. Returns the saved record id (food_id, expense_id or moment_id). ($0.10; API key required)

输入参数text必填type必填whenplaceamountcategorycurrencytimezonerequest_ididempotency_key

版本历史

1
  1. v1.28.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分