← WebMCP Directory

Tool tree

plan-on-it.vercel.app

Travel & EventsTools verified
Website
PlanOnIt
Explore capabilities
    search_restaurantsAnswer

    Find demo restaurants that match city, date, party size, cuisine, rating, price, and current remaining table capacity. Use before selecting dinner. Returns IDs and available slots; never books.

    View tool JSON
    {
      "name": "search_restaurants",
      "kind": "answer",
      "impl": "imperative",
      "description": "Find demo restaurants that match city, date, party size, cuisine, rating, price, and current remaining table capacity. Use before selecting dinner. Returns IDs and available slots; never books.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "enum": [
              "Dhaka"
            ]
          },
          "date": {
            "type": "string",
            "format": "date",
            "enum": [
              "2026-10-28",
              "2026-10-29",
              "2026-10-30",
              "2026-10-31",
              "2026-11-01",
              "2026-11-02",
              "2026-11-03",
              "2026-11-04",
              "2026-11-05",
              "2026-11-06",
              "2026-11-07",
              "2026-11-08",
              "2026-11-09",
              "2026-11-10"
            ],
            "description": "Supported demo inventory window: 2026-10-28 through 2026-11-10. The window rolls forward with the current date."
          },
          "people": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "cuisine": {
            "type": "string",
            "minLength": 2,
            "maxLength": 40
          },
          "minRating": {
            "type": "number",
            "minimum": 1,
            "maximum": 5
          },
          "maxPricePerPerson": {
            "type": "integer",
            "minimum": 100,
            "maximum": 10000
          }
        },
        "required": [
          "city",
          "date",
          "people"
        ],
        "additionalProperties": false
      }
    }
    get_restaurant_detailsAnswer

    Read one restaurant’s location, pricing, hours, party limits, and current provider-style availability inventory by ID.

    View tool JSON
    {
      "name": "get_restaurant_details",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read one restaurant’s location, pricing, hours, party limits, and current provider-style availability inventory by ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "restaurantId": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "restaurantId"
        ],
        "additionalProperties": false
      }
    }
    check_restaurant_availabilityAnswer

    Check current remaining table capacity for a known restaurant, supported date, and party size. Use immediately before plan creation or replacement.

    View tool JSON
    {
      "name": "check_restaurant_availability",
      "kind": "answer",
      "impl": "imperative",
      "description": "Check current remaining table capacity for a known restaurant, supported date, and party size. Use immediately before plan creation or replacement.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "restaurantId": {
            "type": "string",
            "minLength": 1
          },
          "date": {
            "type": "string",
            "format": "date",
            "enum": [
              "2026-10-28",
              "2026-10-29",
              "2026-10-30",
              "2026-10-31",
              "2026-11-01",
              "2026-11-02",
              "2026-11-03",
              "2026-11-04",
              "2026-11-05",
              "2026-11-06",
              "2026-11-07",
              "2026-11-08",
              "2026-11-09",
              "2026-11-10"
            ],
            "description": "Supported demo inventory window: 2026-10-28 through 2026-11-10. The window rolls forward with the current date."
          },
          "people": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          }
        },
        "required": [
          "restaurantId",
          "date",
          "people"
        ],
        "additionalProperties": false
      }
    }
    find_showtimesAnswer

    Find movie showtimes in the plan city on an exact supported date with enough current seats. Returns atomic movieId/showtimeId pairs, cinema location, duration, and price.

    View tool JSON
    {
      "name": "find_showtimes",
      "kind": "answer",
      "impl": "imperative",
      "description": "Find movie showtimes in the plan city on an exact supported date with enough current seats. Returns atomic movieId/showtimeId pairs, cinema location, duration, and price.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "enum": [
              "Dhaka"
            ]
          },
          "date": {
            "type": "string",
            "format": "date",
            "enum": [
              "2026-10-28",
              "2026-10-29",
              "2026-10-30",
              "2026-10-31",
              "2026-11-01",
              "2026-11-02",
              "2026-11-03",
              "2026-11-04",
              "2026-11-05",
              "2026-11-06",
              "2026-11-07",
              "2026-11-08",
              "2026-11-09",
              "2026-11-10"
            ],
            "description": "Supported demo inventory window: 2026-10-28 through 2026-11-10. The window rolls forward with the current date."
          },
          "people": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "genre": {
            "type": "string",
            "minLength": 2,
            "maxLength": 40
          }
        },
        "required": [
          "city",
          "date",
          "people"
        ],
        "additionalProperties": false
      }
    }
    estimate_transportAnswer

    Return route-specific distance, duration, and fare options between known PlanOnIt location IDs. Unknown or unsupported routes return ROUTE_NOT_FOUND; no fares are invented.

    View tool JSON
    {
      "name": "estimate_transport",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return route-specific distance, duration, and fare options between known PlanOnIt location IDs. Unknown or unsupported routes return ROUTE_NOT_FOUND; no fares are invented.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fromLocationId": {
            "type": "string",
            "minLength": 1
          },
          "toLocationId": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "fromLocationId",
          "toLocationId"
        ],
        "additionalProperties": false
      }
    }
    create_evening_planAction

    Evaluate restaurant slots × showtimes × venue routes × transport options, reject invalid combinations, rank valid ones using structured preferences, and atomically replace the shared draft. It never approves or reserves.

    View tool JSON
    {
      "name": "create_evening_plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Evaluate restaurant slots × showtimes × venue routes × transport options, reject invalid combinations, rank valid ones using structured preferences, and atomically replace the shared draft. It never approves or reserves.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "enum": [
              "Dhaka"
            ]
          },
          "date": {
            "type": "string",
            "format": "date",
            "enum": [
              "2026-10-28",
              "2026-10-29",
              "2026-10-30",
              "2026-10-31",
              "2026-11-01",
              "2026-11-02",
              "2026-11-03",
              "2026-11-04",
              "2026-11-05",
              "2026-11-06",
              "2026-11-07",
              "2026-11-08",
              "2026-11-09",
              "2026-11-10"
            ],
            "description": "Supported demo inventory window: 2026-10-28 through 2026-11-10. The window rolls forward with the current date."
          },
          "people": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "budget": {
            "type": "integer",
            "minimum": 500,
            "maximum": 100000
          },
          "preferences": {
            "type": "object",
            "description": "Structured ranking preferences that materially affect candidate scoring.",
            "properties": {
              "cuisine": {
                "type": "string",
                "minLength": 2,
                "maxLength": 40
              },
              "movieGenre": {
                "type": "string",
                "minLength": 2,
                "maxLength": 40
              },
              "minRestaurantRating": {
                "type": "number",
                "minimum": 1,
                "maximum": 5
              },
              "transport": {
                "type": "string",
                "enum": [
                  "lowest_cost",
                  "comfortable",
                  "fastest"
                ],
                "default": "lowest_cost"
              },
              "priority": {
                "type": "string",
                "enum": [
                  "balanced",
                  "lowest_cost",
                  "highest_rated"
                ],
                "default": "balanced"
              },
              "timing": {
                "type": "string",
                "enum": [
                  "relaxed",
                  "compact"
                ],
                "default": "relaxed"
              }
            },
            "additionalProperties": false
          },
          "dinnerDurationMinutes": {
            "type": "integer",
            "minimum": 45,
            "maximum": 150,
            "default": 75
          },
          "bufferMinutes": {
            "type": "integer",
            "minimum": 5,
            "maximum": 45,
            "default": 15
          }
        },
        "required": [
          "city",
          "date",
          "people",
          "budget",
          "preferences"
        ],
        "additionalProperties": false
      }
    }
    get_current_planAnswer

    Read the current persisted shared draft, version, selections, current provider entities, timeline, cost breakdown, approval state, and full feasibility evidence.

    View tool JSON
    {
      "name": "get_current_plan",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the current persisted shared draft, version, selections, current provider entities, timeline, cost breakdown, approval state, and full feasibility evidence.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    validate_planAction

    Recompute every blocking constraint against the current mutable provider revision: completeness, ownership, city, capacity, showtime integrity, route, chronology, and budget. Does not mutate.

    View tool JSON
    {
      "name": "validate_plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Recompute every blocking constraint against the current mutable provider revision: completeness, ownership, city, capacity, showtime integrity, route, chronology, and budget. Does not mutate.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    update_planAction

    Apply a version-checked atomic change. Restaurant requires restaurantId+restaurantSlot; movie requires movieId+showtimeId. Invalid IDs, mismatches, wrong dates, routes, empty changes, and stale versions are rejected. Identical input is a no-op and does not increment the version.

    View tool JSON
    {
      "name": "update_plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply a version-checked atomic change. Restaurant requires restaurantId+restaurantSlot; movie requires movieId+showtimeId. Invalid IDs, mismatches, wrong dates, routes, empty changes, and stale versions are rejected. Identical input is a no-op and does not increment the version.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "Current positive plan version from get_current_plan. Mutations reject stale versions."
          },
          "restaurantId": {
            "type": "string",
            "minLength": 1
          },
          "restaurantSlot": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
          },
          "movieId": {
            "type": "string",
            "minLength": 1
          },
          "showtimeId": {
            "type": "string",
            "minLength": 1
          },
          "transportOptionId": {
            "type": "string",
            "minLength": 1
          },
          "budget": {
            "type": "integer",
            "minimum": 500,
            "maximum": 100000
          },
          "people": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "preferences": {
            "type": "object",
            "description": "Structured ranking preferences that materially affect candidate scoring.",
            "properties": {
              "cuisine": {
                "type": "string",
                "minLength": 2,
                "maxLength": 40
              },
              "movieGenre": {
                "type": "string",
                "minLength": 2,
                "maxLength": 40
              },
              "minRestaurantRating": {
                "type": "number",
                "minimum": 1,
                "maximum": 5
              },
              "transport": {
                "type": "string",
                "enum": [
                  "lowest_cost",
                  "comfortable",
                  "fastest"
                ],
                "default": "lowest_cost"
              },
              "priority": {
                "type": "string",
                "enum": [
                  "balanced",
                  "lowest_cost",
                  "highest_rated"
                ],
                "default": "balanced"
              },
              "timing": {
                "type": "string",
                "enum": [
                  "relaxed",
                  "compact"
                ],
                "default": "relaxed"
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "expectedVersion"
        ],
        "additionalProperties": false,
        "minProperties": 2,
        "dependentRequired": {
          "restaurantId": [
            "restaurantSlot"
          ],
          "restaurantSlot": [
            "restaurantId"
          ],
          "movieId": [
            "showtimeId"
          ],
          "showtimeId": [
            "movieId"
          ]
        }
      }
    }
    repair_planAction

    Signature collaboration tool: inspect the current invalid human-edited draft, preserve the requested restaurant and/or movie, search dependent alternatives, and atomically replace it with the highest-ranked feasible version. Requires the current version.

    View tool JSON
    {
      "name": "repair_plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Signature collaboration tool: inspect the current invalid human-edited draft, preserve the requested restaurant and/or movie, search dependent alternatives, and atomically replace it with the highest-ranked feasible version. Requires the current version.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "Current positive plan version from get_current_plan. Mutations reject stale versions."
          },
          "preserveRestaurant": {
            "type": "boolean",
            "default": true
          },
          "preserveMovie": {
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "expectedVersion"
        ],
        "additionalProperties": false
      }
    }
    calculate_total_costAction

    Return per-person-scaled dinner and ticket costs plus route-specific transport fare. Invalid or incomplete references return null components and failed feasibility evidence, never a misleading zero-cost success.

    View tool JSON
    {
      "name": "calculate_total_cost",
      "kind": "act",
      "impl": "imperative",
      "description": "Return per-person-scaled dinner and ticket costs plus route-specific transport fare. Invalid or incomplete references return null components and failed feasibility evidence, never a misleading zero-cost success.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    reserve_planSensitive Action

    Consequential sandbox action. Commits mutable in-app table and seat inventory only for the exact current version and provider revision after human approval. Stale, invalid, unapproved, conflicted, and failed attempts consume nothing; retries are idempotent. No real provider or payment is contacted.

    View tool JSON
    {
      "name": "reserve_plan",
      "kind": "transact",
      "impl": "imperative",
      "description": "Consequential sandbox action. Commits mutable in-app table and seat inventory only for the exact current version and provider revision after human approval. Stale, invalid, unapproved, conflicted, and failed attempts consume nothing; retries are idempotent. No real provider or payment is contacted.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "Current positive plan version from get_current_plan. Mutations reject stale versions."
          },
          "confirmation": {
            "type": "string",
            "enum": [
              "CONFIRM_SIMULATED_RESERVATION"
            ],
            "description": "Backward-compatible exact acknowledgement that this is a controlled sandbox reservation."
          }
        },
        "required": [
          "expectedVersion",
          "confirmation"
        ],
        "additionalProperties": false
      }
    }
    start_new_planAction

    Explicitly begin a new plan after a reservation was confirmed. The previous reservation is never cancelled, detached, or hidden: its committed inventory stays with its own plan version and remains readable through get_current_plan’s reservationLedger. Required before create_evening_plan can run on a workspace that holds an active reservation.

    View tool JSON
    {
      "name": "start_new_plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Explicitly begin a new plan after a reservation was confirmed. The previous reservation is never cancelled, detached, or hidden: its committed inventory stays with its own plan version and remains readable through get_current_plan’s reservationLedger. Required before create_evening_plan can run on a workspace that holds an active reservation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "Current positive plan version from get_current_plan. Mutations reject stale versions."
          },
          "acknowledgeExistingReservation": {
            "type": "boolean",
            "default": true,
            "description": "Acknowledges that any active reservation stays committed and visible in the ledger."
          }
        },
        "required": [
          "expectedVersion"
        ],
        "additionalProperties": false
      }
    }