# Save a trip as a template

> The save_trip_template MCP tool: save a trip as a template.

`save_trip_template` · writes

[REST: `POST /v1/trip-templates`](https://api.bymundi.com/docs/reference/catalog.tripTemplates.create.md)

## What the model reads

Saves a trip as a trip template (Catalog → Trips): its route, blocks, quotes (as drafts), headcount and branding. New trips then start from it (create_trip with `templateId`). The trip needs a design. If its itinerary should match its design, call sync_itinerary first. undo_change removes the template again.

Permissions: catalog:write, trips:read.
Undo: the result names a change id; undo_change reverts it.

## Input

| Field | Type | Required | Description |
|---|---|---|---|
| `tripId` | uuid | yes |  |
| `title` | string | yes | max 200 chars |
| `description` | string |  | max 2000 chars |
| `tags` | string[] |  | Replaces the tags; lowercased. max 20 items |

## Input schema (JSON)

```json
{
  "type": "object",
  "properties": {
    "tripId": {
      "type": "string",
      "format": "uuid"
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 60
      },
      "maxItems": 20,
      "description": "Replaces the tags; lowercased."
    }
  },
  "required": [
    "tripId",
    "title"
  ],
  "additionalProperties": false
}
```
