Skip to main content
Glama
gohluke

Dayze MCP

by gohluke

Update Contact (CRM write)

update_person

Update an existing contact in Dayze by supplying its person_id, changing only the fields you specify—name, favorite, tier, relationship, notes, or birthday—without creating or deleting records.

Instructions

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)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoRename contact (also refreshes URL slug). Prefer this over create+merge for spelling fixes
tierNoRelationship priority. VIP stays in inner_circle even when not favorited
notesNoReplaces people.notes (does not append). Empty or null clears
birthdayNoYYYY, YYYY-MM, YYYY-MM-DD, or MM-DD / --MM-DD (year unknown). Null/empty clears
person_idYesUUID of a person the authenticated user owns
request_idNoClient idempotency key (retries return original result).
is_favoriteNoFavorite flag. Favorites (and VIP) appear in get_context_pack inner_circle
relationshipNoRelationship label (friend, sister, …). Empty or null clears
idempotency_keyNoAlias for request_id.
preserve_old_name_as_aliasNoWhen renaming, keep the previous name as a former_name alias (default true)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
personYesA Dayze person or contact record.
changedYesChanged fields with before and after values.
life_state_rebuiltYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.28.0

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate a non-read-only, non-open-world, non-destructive operation. The description goes far beyond this by documenting side effects (slug refresh, life_state rebuild), replacement semantics for notes, birthday precision behavior, auth requirements, and pricing. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but every sentence carries operational value, from mutation warning to auth and cost. Front-loaded with the most important constraint and organized from action to fields to side effects to requirements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation with an output schema, the description covers ownership, required field, all parameter semantics, side effects, idempotency, auth scopes, and cost. Nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3, but the description adds essential behavior: name 'renames + refreshes slug,' notes 'replaces stored notes,' birthday format details and null-clearing, and tier/favorite effects on inner_circle. It also clarifies idempotency via request_id, adding meaning beyond the schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'MUTATES Dayze Contacts' and specifies 'Patch one existing contact the user owns,' naming both the action and the resource. It explicitly states what it does not do ('Does not create or delete contacts'), distinguishing it from sibling creation/deletion tools without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the tool is for patching an existing owned contact and includes explicit exclusions: no creation/deletion, rejects unknown fields, and share tokens cannot write. This gives an agent clear conditions for selecting it over create_person or delete_event, even though those siblings are not named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools