Tool tree
gradeNot graded
get_collaboration_statusAnswer
Read whether this is a sample demo or a durable private workspace, the current access role, traveler capacity, and which traveler profile the current visitor can edit. Use before collaboration or mutation actions.
View tool JSON
{
"name": "get_collaboration_status",
"kind": "answer",
"impl": "imperative",
"description": "Read whether this is a sample demo or a durable private workspace, the current access role, traveler capacity, and which traveler profile the current visitor can edit. Use before collaboration or mutation actions.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}get_workspace_stateAnswer
Read the full shared trip workspace: travelers, their constraints and priorities, current scenarios, conflicts, and recent activity. Use first to orient before any other CommonGround tool.
View tool JSON
{
"name": "get_workspace_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the full shared trip workspace: travelers, their constraints and priorities, current scenarios, conflicts, and recent activity. Use first to orient before any other CommonGround tool.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}list_travelers_and_constraintsAnswer
List each traveler with their per-night budget and all constraints (label, category, priority, locked). Use when weighing whose needs conflict or before changing priorities/locks.
View tool JSON
{
"name": "list_travelers_and_constraints",
"kind": "answer",
"impl": "imperative",
"description": "List each traveler with their per-night budget and all constraints (label, category, priority, locked). Use when weighing whose needs conflict or before changing priorities/locks.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}search_hotel_inventoryAnswer
Query the live hotel inventory API (/api/inventory) and return normalized structured hotel data (price, rating, cancellation policy, amenities, distance, availability). Read-only; use whenever the group asks what hotels exist or match a budget.
View tool JSON
{
"name": "search_hotel_inventory",
"kind": "answer",
"impl": "imperative",
"description": "Query the live hotel inventory API (/api/inventory) and return normalized structured hotel data (price, rating, cancellation policy, amenities, distance, availability). Read-only; use whenever the group asks what hotels exist or match a budget.",
"inputSchema": {
"type": "object",
"properties": {
"maxTotalPrice": {
"type": "number",
"description": "Optional cap on total price for the stay."
},
"minReviewScore": {
"type": "number",
"description": "Optional minimum review score (0-10)."
}
},
"required": [],
"additionalProperties": false
}
}compare_scenariosAction
Compare the three generated scenarios (consensus, value, compromise): top hotels, fairness, rationale, and per-traveler scores. Use when the group asks which option is best or fairest.
View tool JSON
{
"name": "compare_scenarios",
"kind": "act",
"impl": "imperative",
"description": "Compare the three generated scenarios (consensus, value, compromise): top hotels, fairness, rationale, and per-traveler scores. Use when the group asks which option is best or fairest.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}explain_conflictsAction
Explain conflicts between travelers (budget gaps, opposing amenity preferences) with severity and suggested resolutions, plus which constraints are locked. Use before proposing compromises.
View tool JSON
{
"name": "explain_conflicts",
"kind": "act",
"impl": "imperative",
"description": "Explain conflicts between travelers (budget gaps, opposing amenity preferences) with severity and suggested resolutions, plus which constraints are locked. Use before proposing compromises.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}get_onboarding_statusAnswer
Read setup progress for the current workspace: capacity, invitations or traveler seats, completed priority profiles, inventory readiness, and whether a scenario and hotel are selected.
View tool JSON
{
"name": "get_onboarding_status",
"kind": "answer",
"impl": "imperative",
"description": "Read setup progress for the current workspace: capacity, invitations or traveler seats, completed priority profiles, inventory readiness, and whether a scenario and hotel are selected.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}open_workspace_setupAction
Open the visible, human-controlled form for creating a durable private trip workspace. This tool does not submit or create anything itself; the human reviews the trip name, destination, nights, and organizer name.
View tool JSON
{
"name": "open_workspace_setup",
"kind": "act",
"impl": "imperative",
"description": "Open the visible, human-controlled form for creating a durable private trip workspace. This tool does not submit or create anything itself; the human reviews the trip name, destination, nights, and organizer name.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}create_workspaceAction
Create a durable private CommonGround workspace from confirmed trip details, save organizer access in this browser, and navigate to the guided setup. State-changing; confirm all values with the human before calling.
View tool JSON
{
"name": "create_workspace",
"kind": "act",
"impl": "imperative",
"description": "Create a durable private CommonGround workspace from confirmed trip details, save organizer access in this browser, and navigate to the guided setup. State-changing; confirm all values with the human before calling.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Workspace name, 2 to 80 characters."
},
"destination": {
"type": "string",
"description": "Destination, 2 to 120 characters."
},
"checkIn": {
"type": "string",
"description": "Check-in date in YYYY-MM-DD format."
},
"nights": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"description": "Length of stay."
},
"organizerName": {
"type": "string",
"description": "Organizer name, 1 to 60 characters."
},
"travelerLimit": {
"type": "integer",
"minimum": 2,
"maximum": 30,
"description": "Traveler seats including organizer."
}
},
"required": [
"name",
"destination",
"checkIn",
"nights",
"organizerName",
"travelerLimit"
],
"additionalProperties": false
}
}open_invite_travelerAction
Open the visible organizer-only invitation form. It creates no invitation until the human enters a name and submits; CommonGround then produces a private traveler-scoped link for manual sharing.
View tool JSON
{
"name": "open_invite_traveler",
"kind": "act",
"impl": "imperative",
"description": "Open the visible organizer-only invitation form. It creates no invitation until the human enters a name and submits; CommonGround then produces a private traveler-scoped link for manual sharing.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}list_invitationsAnswer
List organizer-visible traveler invitations and their invited or active status. Does not expose private invite tokens.
View tool JSON
{
"name": "list_invitations",
"kind": "answer",
"impl": "imperative",
"description": "List organizer-visible traveler invitations and their invited or active status. Does not expose private invite tokens.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}create_invitationAction
Create one private traveler-scoped invitation link. Organizer-only. Returns the link for human review and manual sharing; never sends email, WhatsApp, or any external message automatically.
View tool JSON
{
"name": "create_invitation",
"kind": "act",
"impl": "imperative",
"description": "Create one private traveler-scoped invitation link. Organizer-only. Returns the link for human review and manual sharing; never sends email, WhatsApp, or any external message automatically.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Traveler name."
},
"email": {
"type": "string",
"description": "Optional email address stored with the invitation; no message is sent."
}
},
"required": [
"name"
],
"additionalProperties": false
}
}revoke_invitationAction
Remove an invited traveler and permanently invalidate their private access link. Organizer-only and destructive; require explicit human confirmation before calling.
View tool JSON
{
"name": "revoke_invitation",
"kind": "act",
"impl": "imperative",
"description": "Remove an invited traveler and permanently invalidate their private access link. Organizer-only and destructive; require explicit human confirmation before calling.",
"inputSchema": {
"type": "object",
"properties": {
"travelerId": {
"type": "string",
"description": "Traveler invitation to revoke, from list_invitations."
}
},
"required": [
"travelerId"
],
"additionalProperties": false
}
}open_workspace_settingsAction
Open the visible organizer-only workspace settings where the human can adjust the planned traveler capacity between 2 and 30. This tool never changes the limit itself.
View tool JSON
{
"name": "open_workspace_settings",
"kind": "act",
"impl": "imperative",
"description": "Open the visible organizer-only workspace settings where the human can adjust the planned traveler capacity between 2 and 30. This tool never changes the limit itself.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}open_workspace_onboardingAction
Open the visible organizer setup guide at the requested step: invite travelers, choose predefined priorities, compare scenarios, or connect an agent. Use this to guide a human through the workspace without making hidden changes.
View tool JSON
{
"name": "open_workspace_onboarding",
"kind": "act",
"impl": "imperative",
"description": "Open the visible organizer setup guide at the requested step: invite travelers, choose predefined priorities, compare scenarios, or connect an agent. Use this to guide a human through the workspace without making hidden changes.",
"inputSchema": {
"type": "object",
"properties": {
"step": {
"type": "string",
"enum": [
"invite",
"priorities",
"compare",
"agent"
],
"description": "Wizard step to open. One of: invite, priorities, compare, agent."
}
},
"required": [],
"additionalProperties": false
}
}configure_trip_workspaceAction
Configure an existing private workspace's destination, number of nights, and traveler capacity, then open the visible setup guide. Organizer-only and immediately visible. Confirm the values with the organizer before calling.
View tool JSON
{
"name": "configure_trip_workspace",
"kind": "act",
"impl": "imperative",
"description": "Configure an existing private workspace's destination, number of nights, and traveler capacity, then open the visible setup guide. Organizer-only and immediately visible. Confirm the values with the organizer before calling.",
"inputSchema": {
"type": "object",
"properties": {
"destination": {
"type": "string",
"description": "Destination name, 2 to 120 characters."
},
"checkIn": {
"type": "string",
"description": "Check-in date in YYYY-MM-DD format."
},
"nights": {
"type": "integer",
"minimum": 1,
"maximum": 30,
"description": "Length of stay in nights."
},
"travelerLimit": {
"type": "integer",
"minimum": 2,
"maximum": 30,
"description": "Total traveler seats, including the organizer."
}
},
"required": [
"destination",
"checkIn",
"nights",
"travelerLimit"
],
"additionalProperties": false
}
}set_workspace_capacityAction
Set traveler capacity between 2 and 30 for an existing private workspace. Organizer-only and visible; cannot reduce below the current traveler count.
View tool JSON
{
"name": "set_workspace_capacity",
"kind": "act",
"impl": "imperative",
"description": "Set traveler capacity between 2 and 30 for an existing private workspace. Organizer-only and visible; cannot reduce below the current traveler count.",
"inputSchema": {
"type": "object",
"properties": {
"travelerLimit": {
"type": "integer",
"minimum": 2,
"maximum": 30,
"description": "New total seat capacity."
}
},
"required": [
"travelerLimit"
],
"additionalProperties": false
}
}update_traveler_profileAction
Update an authorized traveler's display name and/or maximum nightly budget. Visible and permission-scoped; recalculates scenarios. Ask the traveler before changing values.
View tool JSON
{
"name": "update_traveler_profile",
"kind": "act",
"impl": "imperative",
"description": "Update an authorized traveler's display name and/or maximum nightly budget. Visible and permission-scoped; recalculates scenarios. Ask the traveler before changing values.",
"inputSchema": {
"type": "object",
"properties": {
"travelerId": {
"type": "string",
"description": "Traveler to update."
},
"name": {
"type": "string",
"description": "Optional new display name."
},
"budgetPerNight": {
"type": "number",
"minimum": 20,
"maximum": 5000,
"description": "Optional nightly budget in euros."
}
},
"required": [
"travelerId"
],
"additionalProperties": false
}
}add_constraintAction
Add a decision constraint to an authorized traveler profile. Visible and permission-scoped; recalculates scenarios. Confirm label, category, and priority with the traveler.
View tool JSON
{
"name": "add_constraint",
"kind": "act",
"impl": "imperative",
"description": "Add a decision constraint to an authorized traveler profile. Visible and permission-scoped; recalculates scenarios. Confirm label, category, and priority with the traveler.",
"inputSchema": {
"type": "object",
"properties": {
"travelerId": {
"type": "string",
"description": "Traveler to update."
},
"label": {
"type": "string",
"description": "Constraint label."
},
"category": {
"type": "string",
"enum": [
"accessibility",
"family",
"amenity",
"location",
"budget",
"cancellation",
"rating"
],
"description": "Constraint category. One of: accessibility, family, amenity, location, budget, cancellation, rating."
},
"priority": {
"type": "string",
"enum": [
"must",
"prefer",
"flexible",
"exclude"
],
"description": "Priority. One of: must, prefer, flexible, exclude."
},
"locked": {
"type": "boolean",
"description": "Whether the new rule is locked."
}
},
"required": [
"travelerId",
"label",
"category",
"priority"
],
"additionalProperties": false
}
}remove_constraintAction
Remove an unlocked constraint from an authorized traveler profile. Destructive and visible; require explicit traveler confirmation. Locked constraints must be unlocked first.
View tool JSON
{
"name": "remove_constraint",
"kind": "act",
"impl": "imperative",
"description": "Remove an unlocked constraint from an authorized traveler profile. Destructive and visible; require explicit traveler confirmation. Locked constraints must be unlocked first.",
"inputSchema": {
"type": "object",
"properties": {
"travelerId": {
"type": "string",
"description": "Owning traveler."
},
"constraintId": {
"type": "string",
"description": "Constraint to remove."
}
},
"required": [
"travelerId",
"constraintId"
],
"additionalProperties": false
}
}set_constraint_priorityAction
Change one traveler's constraint priority (must/prefer/flexible/exclude). State-changing: updates the visible board, recalculates scenarios, and logs activity. Ask the traveler first when ambiguous.
View tool JSON
{
"name": "set_constraint_priority",
"kind": "act",
"impl": "imperative",
"description": "Change one traveler's constraint priority (must/prefer/flexible/exclude). State-changing: updates the visible board, recalculates scenarios, and logs activity. Ask the traveler first when ambiguous.",
"inputSchema": {
"type": "object",
"properties": {
"travelerId": {
"type": "string",
"description": "Traveler to update, e.g. from list_travelers_and_constraints."
},
"constraintId": {
"type": "string",
"description": "Constraint to change."
},
"priority": {
"type": "string",
"enum": [
"must",
"prefer",
"flexible",
"exclude"
],
"description": "New priority. One of: must, prefer, flexible, exclude."
}
},
"required": [
"travelerId",
"constraintId",
"priority"
],
"additionalProperties": false
}
}lock_constraintAction
Lock or unlock one traveler's constraint. A locked constraint cannot have its priority changed until the owner unlocks it. State-changing: recalculates scenarios and logs activity. Confirm with the owning traveler.
View tool JSON
{
"name": "lock_constraint",
"kind": "act",
"impl": "imperative",
"description": "Lock or unlock one traveler's constraint. A locked constraint cannot have its priority changed until the owner unlocks it. State-changing: recalculates scenarios and logs activity. Confirm with the owning traveler.",
"inputSchema": {
"type": "object",
"properties": {
"travelerId": {
"type": "string",
"description": "Owning traveler ID."
},
"constraintId": {
"type": "string",
"description": "Constraint to lock/unlock."
},
"locked": {
"type": "boolean",
"description": "True to lock (default true)."
}
},
"required": [
"travelerId",
"constraintId"
],
"additionalProperties": false
}
}veto_hotelAction
Veto (remove) a hotel from all scenarios, or un-veto it. State-changing and visible on the board; logs activity. Only veto when a traveler explicitly rejects the hotel.
View tool JSON
{
"name": "veto_hotel",
"kind": "act",
"impl": "imperative",
"description": "Veto (remove) a hotel from all scenarios, or un-veto it. State-changing and visible on the board; logs activity. Only veto when a traveler explicitly rejects the hotel.",
"inputSchema": {
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"description": "Hotel to veto/un-veto."
},
"vetoed": {
"type": "boolean",
"description": "True to veto (default toggles)."
}
},
"required": [
"hotelId"
],
"additionalProperties": false
}
}create_scenariosAction
Regenerate the three scenarios (consensus/value/compromise) from current travelers, constraints, and hotels. Use after several constraint changes to refresh rankings; logs activity.
View tool JSON
{
"name": "create_scenarios",
"kind": "act",
"impl": "imperative",
"description": "Regenerate the three scenarios (consensus/value/compromise) from current travelers, constraints, and hotels. Use after several constraint changes to refresh rankings; logs activity.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}select_scenarioAction
Switch the visible scenario board to consensus, value, or compromise. State-changing and visible in the UI; logs activity.
View tool JSON
{
"name": "select_scenario",
"kind": "act",
"impl": "imperative",
"description": "Switch the visible scenario board to consensus, value, or compromise. State-changing and visible in the UI; logs activity.",
"inputSchema": {
"type": "object",
"properties": {
"scenarioId": {
"type": "string",
"enum": [
"consensus",
"value",
"compromise"
],
"description": "Scenario to show. One of: consensus, value, compromise."
}
},
"required": [
"scenarioId"
],
"additionalProperties": false
}
}select_hotelAction
Select or clear a hotel on the visible board without preparing a booking draft. Organizer-only for private workspaces; cannot select a vetoed hotel.
View tool JSON
{
"name": "select_hotel",
"kind": "act",
"impl": "imperative",
"description": "Select or clear a hotel on the visible board without preparing a booking draft. Organizer-only for private workspaces; cannot select a vetoed hotel.",
"inputSchema": {
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"description": "Hotel to select. Pass 'none' to clear selection."
}
},
"required": [
"hotelId"
],
"additionalProperties": false
}
}prepare_booking_draftAction
Open a human-confirmation booking draft UI for a hotel. Does NOT book, purchase, or charge anything — it only surfaces a draft the humans must approve. Optionally sets hotel/scenario first.
View tool JSON
{
"name": "prepare_booking_draft",
"kind": "act",
"impl": "imperative",
"description": "Open a human-confirmation booking draft UI for a hotel. Does NOT book, purchase, or charge anything — it only surfaces a draft the humans must approve. Optionally sets hotel/scenario first.",
"inputSchema": {
"type": "object",
"properties": {
"hotelId": {
"type": "string",
"description": "Hotel to draft. Defaults to the currently selected hotel."
},
"scenarioId": {
"type": "string",
"enum": [
"consensus",
"value",
"compromise"
],
"description": "Optional scenario context. One of: consensus, value, compromise."
}
},
"required": [],
"additionalProperties": false
}
}