# save_view (/docs/reference/mcp-tools/save_view)



{/* Generated by apps/docs/scripts/generate-mcp-pages.mjs — do not edit by hand. */}

Save a view (filter AST + sort + grouping + layout; personal or shared).

|                     |              |
| ------------------- | ------------ |
| Required permission | `work:write` |
| Capability ID       | `views.save` |
| Destructive         | No           |

## Parameters [#parameters]

| Parameter   | Type                   | Required | Notes |
| ----------- | ---------------------- | -------- | ----- |
| `name`      | string                 | yes      |       |
| `kind`      | `BOARD` \| `LIST`      | yes      |       |
| `scope`     | `PERSONAL` \| `SHARED` | no       |       |
| `projectId` | string (uuid) \| null  | no       |       |
| `filters`   | object                 | no       |       |
| `grouping`  | object \| null         | no       |       |
| `sort`      | array of object        | no       |       |
| `layout`    | object \| null         | no       |       |

## Input schema (JSON Schema) [#input-schema-json-schema]

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "kind": {
      "type": "string",
      "enum": [
        "BOARD",
        "LIST"
      ]
    },
    "scope": {
      "type": "string",
      "enum": [
        "PERSONAL",
        "SHARED"
      ],
      "default": "PERSONAL"
    },
    "projectId": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ]
    },
    "filters": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "description": "recursive — same shape as the parent node"
            }
          },
          {
            "type": "object",
            "additionalProperties": {
              "description": "recursive — same shape as the parent node"
            }
          }
        ]
      }
    },
    "grouping": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "type": "array",
                "items": {
                  "description": "recursive — same shape as the parent node"
                }
              },
              {
                "type": "object",
                "additionalProperties": {
                  "description": "recursive — same shape as the parent node"
                }
              }
            ]
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "sort": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            },
            {
              "type": "array",
              "items": {
                "description": "recursive — same shape as the parent node"
              }
            },
            {
              "type": "object",
              "additionalProperties": {
                "description": "recursive — same shape as the parent node"
              }
            }
          ]
        }
      }
    },
    "layout": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "type": "array",
                "items": {
                  "description": "recursive — same shape as the parent node"
                }
              },
              {
                "type": "object",
                "additionalProperties": {
                  "description": "recursive — same shape as the parent node"
                }
              }
            ]
          }
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "name",
    "kind"
  ],
  "additionalProperties": false
}
```

## Access control [#access-control]

A call succeeds only when the personal access token's scopes **and** the holder's role both allow `work:write` (effective permission = scope ∩ role, default-deny). The tool runs inside the token owner's organization — tenancy is never a parameter.
