Generated Domino capability reference
This page is generated at request time from
CapabilityRegistry. Use the schemas here instead of guessing fields from examples. Authorization still filters what a particular principal may execute or discover.
- Registry fingerprint:
2ef4aecb29ba0139c96c1b946d675cc45614bf4c471dd267ab3e3b0b2987f939 - API base pattern:
POST /api/v2/capabilities/{capability} - MCP endpoint:
POST /mcp/v2
Shared execution rules
- Read capabilities do not require idempotency keys.
- Writes and external sends require a caller-stable idempotency key.
- Never send internal numeric resource IDs. Use authorized opaque handles, public identifiers, or human-readable selectors exposed by the schema.
acceptedwork must be observed through its returned status or polling capability.needs_inputrequires the caller to obtain the missing user information and submit a new intentional request.approval_requiredor a prepared action is not a completed external effect.
actions.commit@1.0
Commit one same-principal, same-surface prepared Domino action after explicit review. The prepared action is revalidated immediately before any effect.
- Effect:
external_send - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/actions.commit - MCP tool:
domino_commit_action - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"action_handle": {
"type": "string",
"maxLength": 64
}
}
}
availability.query@2.0
Find and rank privacy-safe two-hour planning windows for the authenticated user and optionally saved Domino friends. Returns only free, busy, partial, or unknown constraints; never calendar event details. Results use stable snapshots, opaque time handles, explicit freshness, and required uncertainty disclosures.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/availability.query - MCP tool:
domino_find_availability - Idempotency key: not used
- Result statuses:
completed,needs_input,failed - Permitted next actions:
ideas.recommendations.get,calendar.status.get
Input schema
{
"type": "object",
"properties": {
"when_preset": {
"type": "string",
"enum": [
"today",
"tomorrow",
"next-few-days",
"next-few-days-weekdays",
"next-few-days-weekends",
"this-week",
"next-week",
"this-weekend",
"next-weekend",
"next-few-weekends",
"next-few-weeks",
"next-few-weeks-weekdays"
]
},
"starts_after": {
"type": "string",
"format": "date-time"
},
"starts_before": {
"type": "string",
"format": "date-time"
},
"daily_start": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"daily_end": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"days_of_week": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 7
},
"maxItems": 7
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 25
},
"person_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 25
},
"allow_refresh": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"snapshot_handle": {
"type": "string",
"maxLength": 64
},
"cursor": {
"type": "string",
"maxLength": 2048
}
}
}
calendar.status.get@1.0
Return the authenticated user’s privacy-safe calendar connection status, refresh freshness, availability usability, group-sharing state, and a web management link. Never returns account emails, feed URLs, event details, calendar IDs, tokens, or credentials.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/calendar.status.get - MCP tool:
domino_get_calendar_status - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
availability.query
Input schema
{
"type": "object",
"properties": []
}
events.search@1.0
Search existing Domino events visible to the user by title, venue, and concrete time window. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/events.search - MCP tool:
domino_search_events - Idempotency key: not used
- Result statuses:
completed
Input schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 160
},
"q": {
"type": "string",
"maxLength": 160
},
"event_query": {
"type": "string",
"maxLength": 160
},
"venue_query": {
"type": "string",
"maxLength": 160
},
"starts_after": {
"type": "string",
"maxLength": 80
},
"starts_before": {
"type": "string",
"maxLength": 80
},
"timezone": {
"type": "string",
"maxLength": 80
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
}
}
executions.get@1.0
Read the authenticated user’s durable write execution by its public execution reference.
- Effect:
read - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/executions.get - MCP tool:
domino_get_execution - Idempotency key: not used
- Result statuses:
completed
Input schema
{
"type": "object",
"properties": {
"execution_id": {
"type": "string",
"minLength": 26,
"maxLength": 26
}
}
}
ideas.candidates.like@2.0
Like one or more Domino-issued recommendation candidates for the current user or selected friends.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/ideas.candidates.like - MCP tool:
domino_like_candidates - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"candidate_ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 191
}
},
"idea_list_handle": {
"type": "string",
"maxLength": 191
}
}
}
ideas.capture@2.0
Capture one raw Domino idea from text, one source URL, or uploaded media, or answer the current clarification for one capture. Domino persists the capture synchronously, enriches it asynchronously, and never reports terminal success until the paired read confirms persisted state. Intentionally multi-item sources belong to roundup capture.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.capture - MCP tool:
domino_capture_idea - Idempotency key: required
- Result statuses:
accepted,needs_input,failed - Status capability:
ideas.capture.get
Input schema
{
"type": "object",
"properties": {
"raw_text": {
"type": "string",
"maxLength": 10000
},
"text": {
"type": "string",
"maxLength": 10000
},
"source_url": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"target_feed_text": {
"type": "string",
"maxLength": 160
},
"target_person_text": {
"type": "string",
"maxLength": 160
},
"media_refs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 4
},
"capture_public_id": {
"type": "string",
"maxLength": 32
},
"clarification_answer": {
"type": "string",
"maxLength": 2000
},
"target_ideas_list_handle": {
"type": "string",
"maxLength": 191
}
}
}
ideas.capture.get@1.0
Read one authenticated user-owned idea capture and report whether enrichment is still accepted, needs input, failed honestly, or completed. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.capture.get - MCP tool:
domino_get_idea_capture - Idempotency key: not used
- Result statuses:
completed,accepted,needs_input,failed
Input schema
{
"type": "object",
"properties": {
"capture_public_id": {
"type": "string",
"maxLength": 32
},
"after_cursor": {
"type": "integer",
"minimum": 0
}
}
}
ideas.created.archive@1.0
Archive one owned created idea so it no longer appears in active saved-idea or recommendation views.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.created.archive - MCP tool:
domino_archive_created_idea - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"idea_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"idea_handle"
]
}
ideas.created.update@1.0
Update the title, description, source URL, For You visibility, or Ideas List memberships of one owned created idea without changing its underlying place or event identity.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.created.update - MCP tool:
domino_update_created_idea - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"idea_handle": {
"type": "string",
"maxLength": 64
},
"title": {
"type": "string",
"maxLength": 160
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 2000
},
"source_url": {
"type": [
"string",
"null"
],
"format": "uri",
"maxLength": 2048
},
"show_in_for_you": {
"type": "boolean"
},
"ideas_list_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50
}
},
"required": [
"idea_handle"
]
}
ideas.list.generate@2.0
Generate and persist one Domino ideas list from explicit people, activity, area, timing, or search filters.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/ideas.list.generate - MCP tool:
domino_generate_ideas_list - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"people": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicitly named people. People-sensitive discovery resolves exact existing Domino people and returns a typed prerequisite for unresolved names."
},
"names": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicitly named people. People-sensitive discovery resolves exact existing Domino people and returns a typed prerequisite for unresolved names."
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 25,
"description": "Opaque saved-person handles returned by Domino. Copy them exactly; never invent or transform them."
},
"feed_name": {
"type": "string",
"maxLength": 120
},
"feed_names": {
"type": "array",
"items": {
"type": "string"
}
},
"idea_list_name": {
"type": "string",
"maxLength": 120
},
"idea_list_names": {
"type": "array",
"items": {
"type": "string"
}
},
"neighborhoods": {
"type": "array",
"items": {
"type": "string"
}
},
"activities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Required activity or experience categories that returned choices must satisfy. Use natural category wording when the user would reject choices from unrelated activity categories."
},
"user_activities": {
"type": "array",
"items": {
"type": "string"
}
},
"when_preset": {
"type": "string",
"maxLength": 80,
"description": "Timing explicitly stated by the user or already present in durable constraints. Never default to today, tonight, or the current date."
},
"when": {
"type": "string",
"maxLength": 80,
"description": "Timing explicitly stated by the user or already present in durable constraints. Never infer a convenient time from the current datetime."
},
"time_slots": {
"type": "array",
"description": "Concrete time windows derived only from timing the user explicitly supplied or previously confirmed.",
"items": {
"type": "object",
"properties": {
"starts_at": {
"type": "string",
"maxLength": 80
},
"ends_at": {
"type": "string",
"maxLength": 80
}
},
"required": [
"starts_at",
"ends_at"
],
"additionalProperties": false
}
},
"duration_minutes": {
"type": "integer",
"minimum": 1
},
"search": {
"type": "string",
"maxLength": 200,
"description": "A hard lexical requirement: a concrete named venue, object, cuisine, or activity that returned candidates must match."
},
"preference_terms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80
},
"maxItems": 10,
"description": "Cross-category qualitative modifiers used for ranking and explanation, not eligibility. Use only when choices from different activity categories could still satisfy the request; required activity or experience categories belong in activities."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"idea_list_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 191
}
}
}
}
ideas.lists.create@2.0
Create one private Ideas List with optional saved people, planning defaults, directions, and an explicit choice to apply matching past likes.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.create - MCP tool:
domino_create_ideas_list - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50
},
"person_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 50
},
"neighborhood_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 25
},
"activity_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 25
},
"custom_activity_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80
},
"maxItems": 25
},
"when_preset": {
"type": [
"string",
"null"
],
"maxLength": 80
},
"when_start": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"when_end": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"directions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 8
},
"apply_matching_likes": {
"type": "boolean"
}
},
"required": [
"name"
]
}
ideas.lists.defaults.update@1.0
Update one Ideas List’s neighborhood, activity, custom-activity, and timing defaults using names from Domino’s existing catalogs.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.defaults.update - MCP tool:
domino_update_ideas_list_defaults - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
},
"neighborhood_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 25
},
"activity_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 25
},
"custom_activity_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80
},
"maxItems": 25
},
"when_preset": {
"type": [
"string",
"null"
],
"maxLength": 80
},
"when_start": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"when_end": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"required": [
"ideas_list_handle"
]
}
ideas.lists.delete@1.0
Delete one owned Ideas List without deleting the underlying saved ideas. This does not contact anyone.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.delete - MCP tool:
domino_delete_ideas_list - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"ideas_list_handle"
]
}
ideas.lists.directions.get@1.0
Read the natural-language directions guiding one Ideas List and their current planning status.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.directions.get - MCP tool:
domino_get_ideas_list_directions - Idempotency key: not used
- Result statuses:
completed,failed
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"ideas_list_handle"
]
}
ideas.lists.duplicate@1.0
Create a private owner-controlled copy of one Ideas List, including its current ideas, people, defaults, and directions.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.duplicate - MCP tool:
domino_duplicate_ideas_list - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"ideas_list_handle"
]
}
ideas.lists.get@1.0
Read one owned Ideas List, including its saved ideas, people, directions, planning defaults, and share-link count.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.get - MCP tool:
domino_get_ideas_list - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
ideas.lists.members.update,ideas.lists.defaults.update,ideas.lists.share.prepare
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"ideas_list_handle"
]
}
ideas.lists.items.update@1.0
Add, remove, or replace up to 50 existing user-owned saved ideas in one Ideas List using only opaque Domino handles. Replaying the same final membership is unchanged.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.items.update - MCP tool:
domino_update_ideas_list_items - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
},
"idea_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50
},
"mode": {
"type": "string",
"enum": [
"replace",
"add",
"remove"
]
}
},
"required": [
"ideas_list_handle",
"idea_handles",
"mode"
]
}
ideas.lists.likes.apply@1.0
Apply an explicitly reviewed Ideas List likes preview to selected saved people using durable, idempotent relationship-interest records.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.likes.apply - MCP tool:
domino_apply_ideas_list_likes - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50
},
"person_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 50
},
"source_person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50
},
"source_person_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 50
}
},
"required": [
"ideas_list_handle"
],
"anyOf": [
{
"required": [
"person_handles"
]
},
{
"required": [
"person_names"
]
}
]
}
ideas.lists.likes.preview@1.0
Preview how many existing saved likes can be privately associated with newly added Ideas List people. This read changes nothing.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.likes.preview - MCP tool:
domino_preview_ideas_list_likes - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
ideas.lists.likes.apply
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50
},
"person_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 50
},
"source_person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50
},
"source_person_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 50
}
},
"required": [
"ideas_list_handle"
],
"anyOf": [
{
"required": [
"person_handles"
]
},
{
"required": [
"person_names"
]
}
]
}
ideas.lists.members.update@1.0
Replace, add, or remove saved Domino people from an Ideas List. This changes private planning context and never contacts those people.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.members.update - MCP tool:
domino_update_ideas_list_members - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get - Permitted next actions:
ideas.lists.likes.preview,ideas.lists.likes.apply
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
},
"mode": {
"type": "string",
"enum": [
"replace",
"add",
"remove"
]
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 50
},
"person_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 50
}
},
"required": [
"ideas_list_handle",
"mode"
]
}
ideas.lists.query@1.0
List the authenticated user’s Ideas Lists with safe counts, saved people, planning defaults, stable pagination, and opaque handles.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.query - MCP tool:
domino_list_ideas_lists - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
ideas.lists.get,ideas.lists.create
Input schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 160
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"snapshot_handle": {
"type": "string",
"maxLength": 64
},
"cursor": {
"type": "string",
"maxLength": 2048
}
}
}
ideas.lists.rename@2.0
Rename one owned Ideas List while preserving its ideas, people, defaults, directions, and share history.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.rename - MCP tool:
domino_rename_ideas_list - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
},
"name": {
"type": "string",
"maxLength": 120
}
},
"required": [
"ideas_list_handle",
"name"
]
}
ideas.lists.share.prepare@2.0
Prepare an Ideas List share to one saved person. Eligible Connected Friends require explicit commit; Friends in Mind receive a manual link and are never contacted by Domino.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.lists.share.prepare - MCP tool:
domino_prepare_ideas_list_share - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get - Permitted next actions:
actions.commit
Input schema
{
"type": "object",
"properties": {
"ideas_list_handle": {
"type": "string",
"maxLength": 64
},
"person_handle": {
"type": "string",
"maxLength": 64
},
"person_name": {
"type": "string",
"maxLength": 120
}
},
"required": [
"ideas_list_handle"
],
"anyOf": [
{
"required": [
"person_handle"
]
},
{
"required": [
"person_name"
]
}
]
}
ideas.object.get@2.0
Open or inspect one visible Domino object, list the user’s ideas lists, inspect one list’s contents or defaults, or list a supported object collection. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.object.get - MCP tool:
domino_get_object - Idempotency key: not used
- Result statuses:
completed,needs_input
Input schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"open",
"inspect",
"list_contents",
"list_ideas_lists",
"inspect_defaults"
]
},
"subject": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"ideas_list",
"idea",
"recommendation",
"capture",
"place",
"event",
"plan"
]
},
"candidate_id": {
"type": "string",
"maxLength": 191
},
"query": {
"type": "string",
"maxLength": 240
},
"interaction_reference": {
"type": "string",
"maxLength": 191
}
},
"additionalProperties": false
},
"collection": {
"type": "string",
"enum": [
"saved_items",
"relationship_interests",
"recommendations"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"offset": {
"type": "integer",
"minimum": 0
}
}
}
ideas.object.mutate@2.0
Add or remove an actual saved list member, update ideas-list defaults, create a manual share link, or undo one identified list change.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/ideas.object.mutate - MCP tool:
domino_mutate_object - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"add_to_list",
"remove_from_list",
"create_share_link",
"undo",
"update_defaults"
]
},
"subject": {
"type": "object",
"additionalProperties": true
},
"destination": {
"type": "object",
"additionalProperties": true
},
"defaults": {
"type": "object",
"additionalProperties": true
},
"share_options": {
"type": "object",
"additionalProperties": true
},
"reversible_action_id": {
"type": "string",
"maxLength": 32
}
}
}
ideas.recommendations.get@2.1
Get transient Domino recommendations from the user’s existing Ideas Lists and inventory context without saving a list. Domino captures the complete ranked result as one authorized immutable snapshot and returns a surface-sized page with a continuation cursor. Use page_size only for presentation and cursor only to advance the existing snapshot. Pass opaque person_handles or named people directly: exact existing people resolve canonically, while unresolved names return a typed relationships.people.ensure prerequisite instead of becoming durable identity. Put qualitative modifiers such as casual, cozy, or nearby in preference_terms; use activities or search only for a category or lexical requirement the user would reject unrelated choices for. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.recommendations.get - MCP tool:
domino_get_for_you - Idempotency key: not used
- Result statuses:
completed,needs_input
Input schema
{
"type": "object",
"properties": {
"people": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicitly named people. People-sensitive discovery resolves exact existing Domino people and returns a typed prerequisite for unresolved names."
},
"names": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicitly named people. People-sensitive discovery resolves exact existing Domino people and returns a typed prerequisite for unresolved names."
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxItems": 25,
"description": "Opaque saved-person handles returned by Domino. Copy them exactly; never invent or transform them."
},
"feed_name": {
"type": "string",
"maxLength": 120
},
"feed_names": {
"type": "array",
"items": {
"type": "string"
}
},
"idea_list_name": {
"type": "string",
"maxLength": 120
},
"idea_list_names": {
"type": "array",
"items": {
"type": "string"
}
},
"neighborhoods": {
"type": "array",
"items": {
"type": "string"
}
},
"activities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Required activity or experience categories that returned choices must satisfy. Use natural category wording when the user would reject choices from unrelated activity categories."
},
"user_activities": {
"type": "array",
"items": {
"type": "string"
}
},
"when_preset": {
"type": "string",
"maxLength": 80,
"description": "Timing explicitly stated by the user or already present in durable constraints. Never default to today, tonight, or the current date."
},
"when": {
"type": "string",
"maxLength": 80,
"description": "Timing explicitly stated by the user or already present in durable constraints. Never infer a convenient time from the current datetime."
},
"time_slots": {
"type": "array",
"description": "Concrete time windows derived only from timing the user explicitly supplied or previously confirmed.",
"items": {
"type": "object",
"properties": {
"starts_at": {
"type": "string",
"maxLength": 80
},
"ends_at": {
"type": "string",
"maxLength": 80
}
},
"required": [
"starts_at",
"ends_at"
],
"additionalProperties": false
}
},
"duration_minutes": {
"type": "integer",
"minimum": 1
},
"search": {
"type": "string",
"maxLength": 200,
"description": "A hard lexical requirement: a concrete named venue, object, cuisine, or activity that returned candidates must match."
},
"preference_terms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80
},
"maxItems": 10,
"description": "Cross-category qualitative modifiers used for ranking and explanation, not eligibility. Use only when choices from different activity categories could still satisfy the request; required activity or experience categories belong in activities."
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"description": "Number of ranked candidates to present in this page. Domino owns the complete immutable result snapshot; this never limits how many matching candidates exist."
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque continuation cursor returned by the previous recommendations page. Copy it exactly and do not combine it with new discovery constraints."
},
"prioritize_likes": {
"type": "boolean"
},
"allow_calendar_fetch": {
"type": "boolean"
},
"idea_list_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 191
}
}
}
}
ideas.roundup.get@1.0
Read one authenticated user-owned roundup operation and report its current scope, destination, generation, item outcomes, updates, and terminal state. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/ideas.roundup.get - MCP tool:
domino_get_roundup_capture - Idempotency key: not used
- Result statuses:
completed,accepted,needs_input,failed
Input schema
{
"type": "object",
"properties": {
"public_id": {
"type": "string",
"maxLength": 32
},
"after_cursor": {
"type": "integer",
"minimum": 0
}
}
}
ideas.roundup.mutate@2.0
Create or mutate one intentional multi-item Domino roundup. The shared roundup coordinator owns extraction, scope, destination, ranking, child captures, duplicate reuse, and terminal state. Each mutation requires a stable idempotency key; continuation mutations use a new key and the current expected_generation.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/ideas.roundup.mutate - MCP tool:
domino_roundup_capture - Idempotency key: required
- Result statuses:
completed,accepted,needs_input,failed - Status capability:
ideas.roundup.get
Input schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"create",
"resolve_scope",
"assign_destination",
"select_items",
"retry",
"archive"
]
},
"public_id": {
"type": "string",
"maxLength": 32
},
"source_url": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"source_text": {
"type": "string",
"maxLength": 20000
},
"items": {
"type": "array",
"minItems": 2,
"maxItems": 100,
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 240
},
"kind": {
"type": "string",
"enum": [
"place",
"event"
]
},
"position": {
"type": "integer",
"minimum": 1
},
"excerpt": {
"type": "string",
"maxLength": 1200
}
},
"required": [
"title"
],
"additionalProperties": false
}
},
"mode": {
"type": "string",
"enum": [
"capture",
"recommendation"
]
},
"scope": {
"type": "string",
"enum": [
"all",
"general_source",
"named_items"
]
},
"selection_policy": {
"type": "string",
"enum": [
"curated",
"save_all"
]
},
"selected_items": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 10
},
"target_feed_text": {
"type": "string",
"maxLength": 160
},
"target_person_text": {
"type": "string",
"maxLength": 160
},
"explicit_requirements": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
}
},
"recommendation_context": {
"type": "object"
},
"expected_generation": {
"type": "integer",
"minimum": 0
},
"target_ideas_list_handle": {
"type": "string",
"maxLength": 191
}
}
}
ideas.saved.query@2.0
List the authenticated user’s saved places and created ideas, including their Ideas Lists and privacy-safe mutual-interest context. Use person_name or person_handle to filter mutual ideas for one saved person; generic query searches idea content, not people. Results use stable snapshots and opaque resource handles.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.saved.query - MCP tool:
domino_list_saved_ideas - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
plans.draft.create
Input schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"all",
"saved_places",
"created_ideas"
]
},
"query": {
"type": "string",
"maxLength": 160
},
"mutual_only": {
"type": "boolean"
},
"person_handle": {
"type": "string",
"maxLength": 64
},
"person_name": {
"type": "string",
"maxLength": 160
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"snapshot_handle": {
"type": "string",
"maxLength": 64
},
"cursor": {
"type": "string",
"maxLength": 2048
}
}
}
ideas.search@1.0
Search existing Domino plans, places, ideas, events, and ideas lists visible to the authenticated user. Supply non-empty query or q text grounded in the user request; people, activity, neighborhood, and scope filters cannot replace the search text. This is read-only, never creates objects or execution receipts, and may return retry_suggestions for a simpler Domino lookup.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/ideas.search - MCP tool:
domino_search - Idempotency key: not used
- Result statuses:
completed
Input schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 120,
"description": "Non-empty search text grounded in the user request, such as a named place or the requested activity. Structured filters do not replace this text."
},
"q": {
"type": "string",
"maxLength": 120,
"description": "Alias for query. Supply one non-empty query field; structured filters alone cannot execute a search."
},
"scopes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"plans",
"places",
"ideas",
"events",
"feeds"
]
}
},
"scope": {
"type": "string",
"enum": [
"plans",
"places",
"ideas",
"events",
"feeds"
]
},
"people": {
"type": "array",
"items": {
"type": "string"
}
},
"names": {
"type": "array",
"items": {
"type": "string"
}
},
"activities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Required activity or experience categories that returned choices must satisfy. Use natural category wording when the user would reject choices from unrelated activity categories."
},
"neighborhoods": {
"type": "array",
"items": {
"type": "string"
}
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"anyOf": [
{
"required": [
"query"
]
},
{
"required": [
"q"
]
}
]
}
ideas.structured_create@2.0
Create a fully structured saved Domino idea. Raw links and incomplete source material belong to ideas.capture instead.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/ideas.structured_create - MCP tool:
domino_add_idea - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"place",
"event"
]
},
"title": {
"type": "string",
"maxLength": 160
},
"description": {
"type": "string",
"maxLength": 2000
},
"custom_activity_name": {
"type": "string",
"maxLength": 80
},
"fixed_when": {
"type": "string",
"format": "date-time"
},
"event_start_at": {
"type": "string",
"format": "date-time"
},
"event_url": {
"type": "string",
"format": "uri"
},
"show_in_for_you": {
"type": "boolean"
},
"place_handle": {
"type": "string",
"maxLength": 191
},
"venue_place_handle": {
"type": "string",
"maxLength": 191
},
"ideas_list_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 191
}
}
}
}
invites.get@2.0
Read one Domino invite addressed to the authenticated user. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/invites.get - MCP tool:
domino_get_my_invite - Idempotency key: not used
- Result statuses:
completed
Input schema
{
"type": "object",
"properties": {
"invite_handle": {
"type": "string",
"maxLength": 191
}
},
"required": [
"invite_handle"
]
}
invites.list@1.0
List Domino invites addressed to the authenticated user, including authoritative RSVP availability. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/invites.list - MCP tool:
domino_list_my_invites - Idempotency key: not used
- Result statuses:
completed
Input schema
{
"type": "object",
"properties": {
"rsvp_status": {
"type": "string",
"enum": [
"pending",
"accepted",
"declined",
"removed"
]
},
"include_removed": {
"type": "boolean"
},
"include_expired": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
}
}
invites.rsvp@2.0
Accept or decline one open Domino invite as the authenticated invitee through the authoritative RSVP service.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/invites.rsvp - MCP tool:
domino_rsvp_to_invite - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"invite_handle": {
"type": "string",
"maxLength": 191
},
"response": {
"type": "string",
"enum": [
"accepted",
"declined"
]
},
"rsvp_status": {
"type": "string",
"enum": [
"accepted",
"declined"
]
}
}
}
places.private.archive@1.0
Archive one owner-only private place so it is excluded from active selection while preserving historical plans.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/places.private.archive - MCP tool:
domino_archive_private_place - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"place_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"place_handle"
]
}
places.private.create@1.0
Create one owner-only private place from a name and optional address, description, timezone, or existing Domino activity. Image generation and uploads remain web-managed.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/places.private.create - MCP tool:
domino_create_private_place - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 160
},
"address": {
"type": [
"string",
"null"
],
"maxLength": 240
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 2000
},
"timezone": {
"type": [
"string",
"null"
],
"maxLength": 80
},
"activity_name": {
"type": [
"string",
"null"
],
"maxLength": 120
}
},
"required": [
"name"
]
}
places.private.query@1.0
List the authenticated user’s private places with opaque handles, stable pagination, and owner-safe details. Image and dense management work remain on the web.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/places.private.query - MCP tool:
domino_list_private_places - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
places.private.create,places.private.update,places.private.archive
Input schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 160
},
"include_archived": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"snapshot_handle": {
"type": "string",
"maxLength": 64
},
"cursor": {
"type": "string",
"maxLength": 2048
}
}
}
places.private.update@1.0
Update the safe text fields or activity of one owner-only private place. Image replacement remains a web management action.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/places.private.update - MCP tool:
domino_update_private_place - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"place_handle": {
"type": "string",
"maxLength": 64
},
"name": {
"type": "string",
"maxLength": 160
},
"address": {
"type": [
"string",
"null"
],
"maxLength": 240
},
"description": {
"type": [
"string",
"null"
],
"maxLength": 2000
},
"timezone": {
"type": [
"string",
"null"
],
"maxLength": 80
},
"activity_name": {
"type": [
"string",
"null"
],
"maxLength": 120
}
},
"required": [
"place_handle"
]
}
planning.brief.get@2.0
Return a prioritized executive brief of Domino work needing attention: RSVP or tipping deadlines, incomplete drafts, waiting responses, plans within seven days, incomplete logistics, and mutual-interest opportunities without an active plan.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/planning.brief.get - MCP tool:
domino_get_planning_brief - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
plans.get,ideas.saved.query
Input schema
{
"type": "object",
"properties": []
}
plans.cancel.prepare@2.0
Prepare cancellation of one hosted Domino against its current revision, roster, delivery eligibility, and destinations. Nothing changes and nobody is contacted until actions.commit.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.cancel.prepare - MCP tool:
domino_prepare_plan_cancellation - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get - Permitted next actions:
actions.commit - Required disclosures:
confirmation.action_prepared
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
},
"expected_revision": {
"type": "integer",
"minimum": 0
}
},
"required": [
"plan_handle"
]
}
plans.discard@1.0
Discard one unexposed tentative Domino after authoritative eligibility checks. Plans with recipient exposure must be canceled instead.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/plans.discard - MCP tool:
domino_discard_plan - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"plan_handle"
]
}
plans.draft.create@2.0
Create or reuse one unsent Domino invite draft from a Domino-issued candidate, preserving card copy unless explicit overrides are supplied.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.draft.create - MCP tool:
domino_draft_invite - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get - Permitted next actions:
plans.draft.update,plans.draft.preview,plans.prepare_send
Input schema
{
"type": "object",
"properties": {
"candidate_id": {
"type": "string",
"maxLength": 160
},
"custom_activity_name": {
"type": "string",
"maxLength": 80
},
"scheduled_at": {
"type": "string",
"format": "date-time"
},
"rsvp_deadline": {
"type": "string",
"format": "date-time"
},
"capacity_min": {
"type": "integer",
"minimum": 2
},
"capacity_max": {
"type": "integer",
"minimum": 2
},
"title_override": {
"type": "string",
"maxLength": 240
},
"description_override": {
"type": "string",
"maxLength": 5000
},
"audience_selection": {
"type": "object",
"properties": {
"person_names": {
"type": "array",
"items": {
"type": "string"
}
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 191
}
}
},
"additionalProperties": false
},
"connect_on_signup": {
"type": "boolean"
},
"idea_list_handle": {
"type": "string",
"maxLength": 191
},
"place_handle": {
"type": "string",
"maxLength": 191
}
}
}
plans.draft.delete@2.0
Delete one user-owned unsent invite draft; active or sent plans cannot be deleted through this capability.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/plans.draft.delete - MCP tool:
domino_delete_invite_draft - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
}
}
}
plans.draft.preview@2.0
Render and mark the current user-owned invite draft version as reviewed. This is a write because the reviewed checksum is persisted.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.draft.preview - MCP tool:
domino_preview_invite - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
}
}
}
plans.draft.update@2.0
Modify one user-owned Domino invite draft without sending it.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.draft.update - MCP tool:
domino_modify_invite - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
},
"candidate_id": {
"type": "string",
"maxLength": 160
},
"custom_activity_name": {
"type": [
"string",
"null"
],
"maxLength": 80
},
"scheduled_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"rsvp_deadline": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"capacity_min": {
"type": "integer",
"minimum": 2
},
"capacity_max": {
"type": [
"integer",
"null"
],
"minimum": 2
},
"title_override": {
"type": [
"string",
"null"
],
"maxLength": 240
},
"description_override": {
"type": [
"string",
"null"
],
"maxLength": 5000
},
"audience_selection": {
"type": [
"object",
"null"
],
"properties": {
"person_names": {
"type": "array",
"items": {
"type": "string"
}
},
"person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 191
}
}
},
"additionalProperties": false
},
"connect_on_signup": {
"type": "boolean"
},
"idea_list_handle": {
"type": "string",
"maxLength": 191
},
"place_handle": {
"type": "string",
"maxLength": 191
}
}
}
plans.get@2.0
Read one authorized Domino plan, its current revision, timing, host or invitee role, RSVP counts, pending recipients visible to the host, delivery boundary, management state, and logistics progress.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.get - MCP tool:
domino_get_plan - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
plans.draft.update,plans.draft.preview,plans.prepare_send,plans.update.prepare,plans.cancel.prepare,plans.roster.prepare,plans.logistics.get,plans.discard,invites.list
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"plan_handle"
]
}
plans.lifecycle.commit@1.0
Internal commit target for an exact prepared plan update or cancellation. Direct surface access is prohibited.
- Effect:
external_send - Surfaces:
- Direct API/MCP execution: not exposed; use a prepared action and
actions.commit. - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": []
}
plans.logistics.get@1.0
Read the authorized logistics checklist and current progress for one Domino. Invitees receive only guest-visible items.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.logistics.get - MCP tool:
domino_get_plan_logistics - Idempotency key: not used
- Result statuses:
completed,failed
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"plan_handle"
]
}
plans.logistics.update@1.0
Replace or add to the host-managed logistics checklist for one Domino. Booking, purchasing, and payment effects remain unsupported.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.logistics.update - MCP tool:
domino_update_plan_logistics - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
},
"mode": {
"type": "string",
"enum": [
"replace",
"add"
]
},
"guest_visible_default": {
"type": "boolean"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"host_action",
"guest_requirement",
"payment_expectation"
]
},
"action_type": {
"type": "string",
"maxLength": 80
},
"phase": {
"type": "string",
"enum": [
"before_invite",
"before_plan_tips",
"after_plan_tips",
"before_arrival",
"after_plan"
]
},
"actor_type": {
"type": "string",
"enum": [
"host",
"each_guest",
"all_guests",
"system",
"custom"
]
},
"visibility": {
"type": "string",
"enum": [
"host",
"guest"
]
},
"status": {
"type": "string",
"enum": [
"suggested",
"pending",
"completed",
"skipped",
"dismissed"
]
},
"title": {
"type": "string",
"maxLength": 240
},
"target_url": {
"type": [
"string",
"null"
],
"format": "uri",
"maxLength": 8192
},
"amount_note": {
"type": [
"string",
"null"
],
"maxLength": 240
}
},
"required": [
"kind",
"action_type",
"phase",
"actor_type",
"visibility",
"title"
],
"additionalProperties": false
},
"maxItems": 5
},
"item": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"host_action",
"guest_requirement",
"payment_expectation"
]
},
"action_type": {
"type": "string",
"maxLength": 80
},
"phase": {
"type": "string",
"enum": [
"before_invite",
"before_plan_tips",
"after_plan_tips",
"before_arrival",
"after_plan"
]
},
"actor_type": {
"type": "string",
"enum": [
"host",
"each_guest",
"all_guests",
"system",
"custom"
]
},
"visibility": {
"type": "string",
"enum": [
"host",
"guest"
]
},
"status": {
"type": "string",
"enum": [
"suggested",
"pending",
"completed",
"skipped",
"dismissed"
]
},
"title": {
"type": "string",
"maxLength": 240
},
"target_url": {
"type": [
"string",
"null"
],
"format": "uri",
"maxLength": 8192
},
"amount_note": {
"type": [
"string",
"null"
],
"maxLength": 240
}
},
"required": [
"title"
],
"additionalProperties": false
}
},
"required": [
"plan_handle",
"mode"
]
}
plans.prepare_send@2.0
Prepare a 15-minute confirmation token for the exact reviewed invite action and recipient snapshot. This never sends by itself.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.prepare_send - MCP tool:
domino_prepare_send_invites - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get - Required disclosures:
confirmation.action_prepared
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
},
"action": {
"type": "string",
"enum": [
"create_share_link",
"send_invites"
]
},
"send_person_names": {
"type": "array",
"items": {
"type": "string"
}
},
"send_person_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 191
}
}
}
}
plans.query@2.0
List the authenticated user’s visible Domino plans as stable, snapshot-backed choices. Classifies drafts, upcoming, past, canceled, and discarded plans; distinguishes host and invitee roles; and returns only authorized opaque handles.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.query - MCP tool:
domino_list_plans - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
plans.get
Input schema
{
"type": "object",
"properties": {
"scope": {
"type": "string",
"enum": [
"all",
"active",
"upcoming",
"past",
"drafts",
"canceled",
"discarded"
]
},
"role": {
"type": "string",
"enum": [
"all",
"host",
"invitee"
]
},
"query": {
"type": "string",
"maxLength": 160
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"snapshot_handle": {
"type": "string",
"maxLength": 64
},
"cursor": {
"type": "string",
"maxLength": 2048
}
}
}
plans.roster.prepare@2.0
Prepare the exact invitation roster for a reviewed Domino. Connected eligible recipients use Domino delivery; Friends in Mind remain manual-share recipients. Nothing is sent until actions.commit.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.roster.prepare - MCP tool:
domino_prepare_plan_roster - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get - Permitted next actions:
actions.commit - Required disclosures:
confirmation.action_prepared
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
},
"expected_revision": {
"type": "integer",
"minimum": 0
},
"recipient_handles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"minItems": 1,
"maxItems": 250
},
"recipient_names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"minItems": 1,
"maxItems": 250
}
},
"required": [
"plan_handle"
]
}
plans.send@1.0
Consume one matching, unexpired confirmation token for an exact prepared invite action. This is the only plan capability authorized to message other people.
- Effect:
external_send - Surfaces: MCP
- Direct API/MCP execution: not exposed; use a prepared action and
actions.commit. - MCP tool:
domino_send_invites - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"create_share_link",
"send_invites"
]
},
"confirmation_token": {
"type": "string"
}
}
}
plans.status.get@2.0
Read authoritative Domino plan, invite, and RSVP status for one visible plan. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/plans.status.get - MCP tool:
domino_get_invite_status - Idempotency key: not used
- Result statuses:
completed
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
}
}
}
plans.update.prepare@2.0
Prepare an exact update to a shared or active plan against its current revision and recipient/destination snapshot. Unsent drafts must use plans.draft.update, then preview and prepare-send again. The update and any requested notifications occur only through actions.commit.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/plans.update.prepare - MCP tool:
domino_prepare_plan_update - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get - Permitted next actions:
actions.commit - Required disclosures:
confirmation.action_prepared
Input schema
{
"type": "object",
"properties": {
"plan_handle": {
"type": "string",
"maxLength": 64
},
"expected_revision": {
"type": "integer",
"minimum": 0
},
"notify_recipients": {
"type": "boolean"
},
"changes": {
"type": "object",
"properties": {
"scheduled_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"scheduled_date_local": {
"type": "string",
"format": "date",
"description": "The intended calendar date in the Domino owner timezone. Preserve the current date when the user changes only the time."
},
"scheduled_time_local": {
"type": "string",
"maxLength": 20,
"description": "The intended wall-clock time in the Domino owner timezone, such as 7:30 PM or 19:30. Use this instead of converting a time-only request to an ISO timestamp."
},
"scheduled_ends_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"meetup_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"meetup_location_text": {
"type": [
"string",
"null"
],
"maxLength": 500
},
"rsvp_deadline": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"capacity_min": {
"type": "integer",
"minimum": 2,
"maximum": 250
},
"capacity_max": {
"type": [
"integer",
"null"
],
"minimum": 2,
"maximum": 250
},
"title_override": {
"type": [
"string",
"null"
],
"maxLength": 240
},
"description_override": {
"type": [
"string",
"null"
],
"maxLength": 4000
}
},
"additionalProperties": false
}
},
"required": [
"plan_handle",
"changes"
]
}
relationships.connection.prepare@2.0
Prepare a safe ideas-list share to one friend or return a manual Domino connection invitation. It never sends the prepared list share by itself.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/relationships.connection.prepare - MCP tool:
domino_prepare_connection_action - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"prepare_list_share",
"prepare_connection_invite"
]
},
"idea_list_handle": {
"type": "string",
"maxLength": 191
},
"idea_list_query": {
"type": "string",
"maxLength": 160
},
"person_handle": {
"type": "string",
"maxLength": 191
},
"person_query": {
"type": "string",
"maxLength": 120
}
}
}
relationships.connection.send@1.0
Confirm one exact prepared ideas-list share to an eligible connected friend. This is the only relationship capability that can queue an outbound Domino message.
- Effect:
external_send - Surfaces: MCP
- Direct API/MCP execution: not exposed; use a prepared action and
actions.commit. - MCP tool:
domino_send_connection_action - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"confirm_list_share"
]
},
"confirmation_token": {
"type": "string",
"maxLength": 191
}
}
}
relationships.interest.get@2.0
Check whether the user and one selected friend independently share interest in one visible Domino subject. This read creates no execution receipt.
- Effect:
read - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/relationships.interest.get - MCP tool:
domino_check_mutual_interest - Idempotency key: not used
- Result statuses:
completed
Input schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"check_mutual"
]
},
"subject": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"recommendation",
"idea",
"place",
"event"
]
},
"candidate_id": {
"type": "string",
"maxLength": 191
},
"idea_list_handle": {
"type": "string",
"maxLength": 191
}
},
"additionalProperties": true
},
"person_handle": {
"type": "string",
"maxLength": 191
},
"person_query": {
"type": "string",
"maxLength": 120
}
}
}
relationships.interest.mutate@2.0
Like, unlike, or undo a relationship-specific interest for one visible Domino subject and friend.
- Effect:
write - Surfaces: API, MCP
- API:
POST /api/v2/capabilities/relationships.interest.mutate - MCP tool:
domino_interest_action - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"like",
"unlike",
"undo"
]
},
"subject": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"recommendation",
"idea",
"place",
"event"
]
},
"candidate_id": {
"type": "string",
"maxLength": 191
},
"idea_list_handle": {
"type": "string",
"maxLength": 191
}
},
"additionalProperties": true
},
"person_handle": {
"type": "string",
"maxLength": 191
},
"person_query": {
"type": "string",
"maxLength": 120
},
"idea_list_handle": {
"type": "string",
"maxLength": 191
},
"reversible_action_id": {
"type": "string",
"maxLength": 32
}
}
}
relationships.people.ensure@1.0
Explicitly create or reuse private Domino person references for named people. This write is only for user-requested relationship memory or a typed prerequisite; relationship reads never invoke it and it never notifies the named people.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/relationships.people.ensure - MCP tool:
domino_create_friends_in_mind - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"people": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicitly named people. People-sensitive discovery resolves exact existing Domino people and returns a typed prerequisite for unresolved names."
},
"names": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicitly named people. People-sensitive discovery resolves exact existing Domino people and returns a typed prerequisite for unresolved names."
}
}
}
relationships.people.manage@1.0
Explicitly create, rename, or delete the authenticated user’s private Friends in Mind. Reads never call this capability. Connected Friends cannot be deleted here, and nobody is notified by these private-memory changes.
- Effect:
write - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/relationships.people.manage - MCP tool:
domino_manage_friend - Idempotency key: required
- Result statuses:
completed,unchanged,needs_input,failed - Status capability:
executions.get
Input schema
{
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"create",
"rename",
"delete"
]
},
"display_name": {
"type": "string",
"maxLength": 160
},
"person_handle": {
"type": "string",
"maxLength": 64
}
},
"required": [
"operation"
]
}
relationships.people.query@1.0
List and safely classify only people saved in the authenticated user’s Domino friends. Returns Connected Friends and Friends in Mind with counts, opaque handles, stable pagination, and management guidance. A named check never creates relationship memory or reveals whether an unrelated person has a Domino account.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/relationships.people.query - MCP tool:
domino_list_friends - Idempotency key: not used
- Result statuses:
completed,failed - Permitted next actions:
relationships.people.manage - Required disclosures:
relationship.saved_scope_only
Input schema
{
"type": "object",
"properties": {
"classification": {
"type": "string",
"enum": [
"all",
"connected",
"friend_in_mind"
]
},
"name": {
"type": "string",
"maxLength": 160
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"snapshot_handle": {
"type": "string",
"maxLength": 64
},
"cursor": {
"type": "string",
"maxLength": 2048
}
}
}
relationships.person.get@1.2
Explain what Domino privately remembers about one saved relationship, including classification, aliases, related Ideas Lists, saved interests, plans, and invite history. Accepts an authorized opaque person handle or an unambiguous saved name and never reveals unrelated Domino accounts.
- Effect:
read - Surfaces: API, MCP, Assistant API
- API:
POST /api/v2/capabilities/relationships.person.get - MCP tool:
domino_get_friend - Idempotency key: not used
- Result statuses:
completed,needs_input,failed - Permitted next actions:
relationships.person.get,ideas.recommendations.get - Required disclosures:
relationship.saved_scope_only
Input schema
{
"type": "object",
"properties": {
"person_handle": {
"type": "string",
"maxLength": 64
},
"name": {
"type": "string",
"maxLength": 160
}
},
"anyOf": [
{
"required": [
"person_handle"
]
},
{
"required": [
"name"
]
}
]
}