# Linear tools (https://www.shipfox.io/docs/integrations/linear/tools)

Description: Look up the Linear tools, selectors, permissions, inputs, and outputs available to tool steps and agent steps.

This reference lists the shipped Linear tool catalog. See the [Linear
overview](https://www.shipfox.io/docs/integrations/linear) for authentication and setup.

## Tool catalog [#tool-catalog]

The catalog uses Linear's OAuth scopes. Read tools require `read` access. Write
tools require `write` access.

### Attachments

#### `get_attachment`

Retrieve a Linear attachment by ID.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_attachment`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Attachment ID |

#### `download_file`

Download a file uploaded to Linear. The URL must start with https://uploads.linear.app/, as in issue, comment, and document bodies. Signed URLs are accepted.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `download_file`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `url` | string | Required | Linear upload URL |

#### `extract_images`

Extract and fetch images from markdown content.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `extract_images`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `markdown` | string | Required | Markdown content containing image references |

#### `create_attachment`

Upload a tiny file through the MCP worker and attach it to a Linear issue.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `create_attachment`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `base64Content` | string | Required | Deprecated base64-encoded file content to upload |
| `contentType` | string | Required | MIME type for the upload |
| `filename` | string | Required | Filename for the upload |
| `issue` | string | Required | Issue ID or identifier |
| `sha256` | string | Required | Expected SHA-256 hex digest of the decoded file bytes |
| `size` | number | Optional | Expected decoded file size in bytes |
| `subtitle` | string | Optional | Attachment subtitle |
| `title` | string | Optional | Attachment title |

#### `create_attachment_from_upload`

Link an already-uploaded Linear asset URL to an existing issue as an attachment.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `create_attachment_from_upload`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `assetUrl` | string | Required | Linear upload asset URL returned by prepare_attachment_upload |
| `issue` | string | Required | Issue ID or identifier |
| `subtitle` | string | Optional | Attachment subtitle |
| `title` | string | Optional | Attachment title |

#### `prepare_attachment_upload`

Prepare a direct Linear file upload for an existing issue.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `prepare_attachment_upload`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `contentType` | string | Required | MIME type for the upload |
| `filename` | string | Required | Filename for the upload |
| `issue` | string | Required | Issue ID or identifier |
| `size` | number | Required | Exact file size in bytes |
| `subtitle` | string | Optional | Suggested attachment subtitle for the finalize step |
| `title` | string | Optional | Suggested attachment title for the finalize step |

#### `delete_attachment`

Delete a Linear attachment.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `delete_attachment`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Attachment ID |


### Agents

#### `get_agent_skill`

Retrieve a Linear Agent skill by ID, including its full markdown instructions.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_agent_skill`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Agent skill ID |

#### `list_agent_skills`

List Linear Agent skills available to the authenticated user.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_agent_skills`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |


### Diffs

#### `get_diff`

Look up a Linear diff by review URL, GitHub PR URL, identifier, UUID, or slug.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_diff`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `urlOrId` | string | Required | Linear review URL, diff slug, pull request ID, Linear identifier, or GitHub PR URL |

#### `get_diff_threads`

Look up Linear diff threads by review URL, GitHub PR URL, identifier, UUID, or slug.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_diff_threads`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `resolved` | boolean | Optional | Filter returned threads by resolved state |
| `threadId` | string | Optional | Top-level thread or comment ID to return |
| `urlOrId` | string | Required | Linear review URL, diff slug, pull request ID, Linear identifier, or GitHub PR URL |

#### `list_diffs`

List Linear diff pull requests visible to the authenticated user.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_diffs`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `owner` | string | Optional | Repository owner |
| `query` | string | Optional | Search by title, branch, PR number, or bare slug |
| `repo` | string | Optional | Repository name |
| `status` | string | Optional | Pull request status |


### Documents

#### `get_document`

Retrieve a Linear document by ID or slug.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_document`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Document ID or slug |

#### `list_documents`

List documents in the Linear workspace.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_documents`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `createdAt` | string | Optional | ISO-8601 date or duration filter |
| `updatedAt` | string | Optional | ISO-8601 date or duration filter |
| `creatorId` | string | Optional | Creator ID |
| `includeArchived` | boolean | Optional | Include archived documents |
| `initiativeId` | string | Optional | Initiative ID |
| `projectId` | string | Optional | Project ID |
| `query` | string | Optional | Search query |
| `teamId` | string | Optional | Team ID |

#### `save_document`

Create or update a Linear document.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `save_document`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `color` | string | Optional | Hex color |
| `content` | string | Optional | Document content as Markdown |
| `cycle` | string | Optional | Cycle name, number, or ID |
| `icon` | string | Optional | Icon name or emoji code |
| `id` | string | Optional | Document ID or slug |
| `initiative` | string | Optional | Initiative name or ID |
| `issue` | string | Optional | Issue ID or identifier |
| `project` | string | Optional | Project name, ID, or slug |
| `team` | string | Optional | Team name or ID |
| `title` | string | Optional | Document title |


### Issues

#### `get_issue`

Retrieve detailed information about a Linear issue.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_issue`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Issue ID or identifier |
| `includeCustomerNeeds` | boolean | Optional | Include associated customer needs |
| `includeRelations` | boolean | Optional | Include blocking, related, and duplicate relations |
| `includeReleases` | boolean | Optional | Include associated releases |

#### `list_issues`

List Linear issues visible to the authenticated connection.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_issues`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `createdAt` | string | Optional | ISO-8601 date or duration filter |
| `updatedAt` | string | Optional | ISO-8601 date or duration filter |
| `assignee` | string \| null | Optional |  |
| `cycle` | string | Optional | Cycle name, number, or ID |
| `delegate` | string | Optional | Agent name or ID |
| `includeArchived` | boolean | Optional | Include archived issues |
| `label` | string | Optional | Label name or ID |
| `parentId` | string | Optional | Parent issue ID or identifier |
| `priority` | number | Optional | 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low |
| `project` | string | Optional | Project name, ID, or slug |
| `query` | string | Optional | Search issue title or description |
| `release` | string | Optional | Release ID or slug |
| `state` | string | Optional | State type, name, or ID |
| `team` | string | Optional | Team name or ID |

#### `list_issue_labels`

List issue labels in a Linear workspace or team.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_issue_labels`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `name` | string | Optional | Filter by label name |
| `team` | string | Optional | Team name or ID |

#### `list_issue_statuses`

List available issue statuses in a Linear team.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_issue_statuses`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `team` | string | Required | Team name or ID |

#### `get_issue_status`

Retrieve detailed information about an issue status by name or ID.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_issue_status`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Status ID |
| `name` | string | Required | Status name |
| `team` | string | Required | Team name or ID |

#### `save_issue`

Create or update a Linear issue.

**Access:** write.

**Sensitive:** No.

**Required permissions:** `write`

**Selector tokens:** `save_issue`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `addReleases` | array of string | Optional |  |
| `assignee` | string \| null | Optional |  |
| `blockedBy` | array of string | Optional |  |
| `blocks` | array of string | Optional |  |
| `cycle` | string \| null | Optional |  |
| `delegate` | string \| null | Optional |  |
| `description` | string | Optional | Issue description as Markdown |
| `dueDate` | string | Optional | Due date in ISO format |
| `duplicateOf` | string \| null | Optional |  |
| `estimate` | number \| null | Optional | Issue estimate value |
| `id` | string | Optional | Issue ID or identifier |
| `labels` | array of string | Optional |  |
| `links` | array of object | Optional |  |
| `links[].title` | string | Required | Attachment title |
| `links[].url` | string | Required | Attachment URL |
| `milestone` | string | Optional | Milestone name or ID |
| `parentId` | string \| null | Optional |  |
| `priority` | number | Optional | 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low |
| `project` | string \| null | Optional |  |
| `relatedTo` | array of string | Optional |  |
| `removeBlockedBy` | array of string | Optional |  |
| `removeBlocks` | array of string | Optional |  |
| `removeRelatedTo` | array of string | Optional |  |
| `removeReleases` | array of string | Optional |  |
| `setReleases` | array of string | Optional |  |
| `state` | string | Optional | State type, name, or ID |
| `team` | string | Optional | Team name or ID |
| `title` | string | Optional | Issue title |

#### `create_issue_label`

Create a new Linear issue label.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `create_issue_label`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `color` | string | Optional | Hex color code |
| `description` | string | Optional | Label description |
| `isGroup` | boolean | Optional | Is label group |
| `name` | string | Required | Label name |
| `parent` | string | Optional | Parent label group name |
| `teamId` | string | Optional | Team UUID |


### Comments

#### `list_comments`

List comments on a Linear issue, project, initiative, document, or milestone.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_comments`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `documentId` | string | Optional | Document ID or slug |
| `initiativeId` | string | Optional | Initiative name or ID |
| `issueId` | string | Optional | Issue ID or identifier |
| `milestoneId` | string | Optional | Milestone UUID |
| `projectId` | string | Optional | Project name, ID, or slug |

#### `save_comment`

Create or update a comment on a Linear issue, project, initiative, document, or milestone.

**Access:** write.

**Sensitive:** No.

**Required permissions:** `write`

**Selector tokens:** `save_comment`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `body` | string | Required | Comment body as Markdown |
| `documentId` | string | Optional | Document ID or slug |
| `id` | string | Optional | Comment ID |
| `initiativeId` | string | Optional | Initiative name or ID |
| `issueId` | string | Optional | Issue ID or identifier |
| `milestoneId` | string | Optional | Milestone UUID |
| `parentId` | string | Optional | Parent comment ID |
| `projectId` | string | Optional | Project name, ID, or slug |

#### `delete_comment`

Delete a Linear comment.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `delete_comment`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Comment ID |


### Workspace

#### `list_teams`

List teams in the Linear workspace.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_teams`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `createdAt` | string | Optional | ISO-8601 date or duration filter |
| `updatedAt` | string | Optional | ISO-8601 date or duration filter |
| `includeArchived` | boolean | Optional | Include archived teams |
| `query` | string | Optional | Search query |

#### `get_team`

Retrieve detailed information about a Linear team.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_team`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `query` | string | Required | Team UUID, key, or name |

#### `list_users`

Retrieve users in the Linear workspace.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_users`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `query` | string | Optional | Filter by name or email |
| `team` | string | Optional | Team name or ID |

#### `get_user`

Retrieve details of a specific Linear user.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_user`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `query` | string | Required | User ID, name, email, or "me" |


### Projects

#### `list_projects`

List projects in the Linear workspace.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_projects`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `createdAt` | string | Optional | ISO-8601 date or duration filter |
| `updatedAt` | string | Optional | ISO-8601 date or duration filter |
| `includeArchived` | boolean | Optional | Include archived projects |
| `includeMembers` | boolean | Optional | Include project members |
| `includeMilestones` | boolean | Optional | Include milestones |
| `initiative` | string | Optional | Initiative name or ID |
| `label` | string | Optional | Label name or ID |
| `member` | string | Optional | User ID, name, email, or "me" |
| `query` | string | Optional | Search project name |
| `state` | string | Optional | State type, name, or ID |
| `team` | string | Optional | Team name or ID |

#### `get_project`

Retrieve details of a specific Linear project.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_project`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `includeMembers` | boolean | Optional | Include project members |
| `includeMilestones` | boolean | Optional | Include milestones |
| `includeResources` | boolean | Optional | Include documents, links, and attachments |
| `query` | string | Required | Project name, ID, or slug |

#### `list_project_labels`

List project labels in the Linear workspace.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_project_labels`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `name` | string | Optional | Filter by label name |

#### `list_milestones`

List milestones in a Linear project.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_milestones`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `project` | string | Required | Project name, ID, or slug |

#### `get_milestone`

Retrieve details of a Linear milestone by ID or name.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_milestone`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `project` | string | Required | Project name, ID, or slug |
| `query` | string | Required | Milestone name or ID |

#### `get_status_updates`

List or retrieve project or initiative status updates.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_status_updates`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `createdAt` | string | Optional | ISO-8601 date or duration filter |
| `updatedAt` | string | Optional | ISO-8601 date or duration filter |
| `id` | string | Optional | Status update ID |
| `includeArchived` | boolean | Optional | Include archived updates |
| `initiative` | string | Optional | Initiative name or ID |
| `project` | string | Optional | Project name, ID, or slug |
| `type` | string: `project`, `initiative` | Required | Status update type |
| `user` | string | Optional | User ID, name, email, or "me" |

#### `save_project`

Create or update a Linear project.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `save_project`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `addInitiatives` | array of string | Optional |  |
| `addTeams` | array of string | Optional |  |
| `color` | string | Optional | Hex color |
| `description` | string | Optional | Project description as Markdown |
| `icon` | string | Optional | Icon name or emoji code |
| `id` | string | Optional | Project ID |
| `labels` | array of string | Optional |  |
| `lead` | string \| null | Optional |  |
| `name` | string | Optional | Project name |
| `priority` | number | Optional | 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low |
| `removeInitiatives` | array of string | Optional |  |
| `removeTeams` | array of string | Optional |  |
| `setInitiatives` | array of string | Optional |  |
| `setTeams` | array of string | Optional |  |
| `startDate` | string | Optional | Start date in ISO format |
| `startDateResolution` | string: `halfYear`, `month`, `quarter`, `year` | Optional | Start date resolution |
| `state` | string | Optional | Project state |
| `summary` | string | Optional | Short summary |
| `targetDate` | string | Optional | Target date in ISO format |
| `targetDateResolution` | string: `halfYear`, `month`, `quarter`, `year` | Optional | Target date resolution |

#### `save_milestone`

Create or update a Linear milestone in a project.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `save_milestone`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `description` | string | Optional | Milestone description |
| `id` | string | Optional | Milestone name or ID |
| `name` | string | Optional | Milestone name |
| `project` | string | Required | Project name, ID, or slug |
| `targetDate` | string \| null | Optional |  |

#### `save_status_update`

Create or update a project or initiative status update.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `save_status_update`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `body` | string | Optional | Status update body as Markdown |
| `health` | string: `onTrack`, `atRisk`, `offTrack` | Optional | Status update health |
| `id` | string | Optional | Status update ID |
| `initiative` | string | Optional | Initiative name or ID |
| `isDiffHidden` | boolean | Optional | Hide diff with previous update |
| `project` | string | Optional | Project name, ID, or slug |
| `type` | string: `project`, `initiative` | Required | Status update type |

#### `delete_status_update`

Delete or archive a Linear project or initiative status update.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `delete_status_update`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Status update ID |
| `type` | string: `project`, `initiative` | Required | Status update type |


### Releases

#### `get_release`

Retrieve details of a Linear release by ID or slug.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_release`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Release ID or slug |
| `includeReleaseNotes` | boolean | Optional | Include associated release notes |

#### `list_release_pipelines`

List release pipelines in the Linear workspace.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_release_pipelines`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `createdAt` | string | Optional | ISO-8601 date or duration filter |
| `updatedAt` | string | Optional | ISO-8601 date or duration filter |
| `includeArchived` | boolean | Optional | Include archived release pipelines |
| `includeStages` | boolean | Optional | Include each pipeline stages |
| `includeTeams` | boolean | Optional | Include each pipeline teams |
| `isProduction` | boolean | Optional | Filter by production pipeline flag |
| `query` | string | Optional | Search pipeline name |
| `team` | string | Optional | Team name or ID |
| `type` | string: `continuous`, `scheduled` | Optional | Pipeline type |

#### `list_releases`

List releases in the workspace, with optional filtering by pipeline, stage, version, and text.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_releases`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `createdAt` | string | Optional | ISO-8601 date or duration filter |
| `updatedAt` | string | Optional | ISO-8601 date or duration filter |
| `hasReleaseNotes` | boolean | Optional | Filter to releases that do or do not have release notes |
| `includeArchived` | boolean | Optional | Include archived releases |
| `includeReleaseNotes` | boolean | Optional | Include associated release notes |
| `pipeline` | string | Optional | Release pipeline ID, slug, or exact name |
| `query` | string | Optional | Search release name or version |
| `stage` | string | Optional | Release stage ID or exact name |
| `stageType` | string: `planned`, `started`, `completed`, `canceled` | Optional | Stage lifecycle type |
| `version` | string | Optional | Exact version match |

#### `save_release`

Create or update a Linear release.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `save_release`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `commitSha` | string | Optional | Commit SHA associated with the release |
| `completedAt` | string \| null | Optional | Completed timestamp in ISO DateTime format |
| `createdAt` | string | Optional | Import or create timestamp in ISO DateTime format |
| `description` | string | Optional | Release description |
| `id` | string | Optional | Release ID or slug to update |
| `name` | string | Optional | Release name |
| `pipeline` | string | Optional | Release pipeline ID, slug, or exact name |
| `stage` | string | Optional | Release stage ID, exact name, or lifecycle type within the pipeline |
| `startDate` | string \| null | Optional | Estimated start date in ISO YYYY-MM-DD format |
| `startedAt` | string \| null | Optional | Started timestamp in ISO DateTime format |
| `targetDate` | string \| null | Optional | Estimated completion date in ISO YYYY-MM-DD format |
| `version` | string | Optional | Version identifier |


### Release notes

#### `get_release_note`

Retrieve Linear release notes by ID or slug, including markdown content.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `get_release_note`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | Required | Release notes ID or slug |
| `includeReleases` | boolean | Optional | Include associated releases |

#### `list_release_notes`

List release notes in the workspace, optionally filtered by pipeline or release.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_release_notes`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `cursor` | string | Optional | Next page cursor |
| `limit` | number | Optional | Maximum number of results to return |
| `orderBy` | string: `createdAt`, `updatedAt` | Optional | Sort order |
| `createdAt` | string | Optional | ISO-8601 date or duration filter |
| `updatedAt` | string | Optional | ISO-8601 date or duration filter |
| `includeArchived` | boolean | Optional | Include archived release notes |
| `includeContent` | boolean | Optional | Include markdown release notes content |
| `includeReleases` | boolean | Optional | Include associated releases |
| `pipeline` | string | Optional | Release pipeline ID, slug, or exact name |
| `query` | string | Optional | Search release notes title |
| `release` | string | Optional | Release ID or slug |

#### `save_release_note`

Create or update Linear release notes.

**Access:** write.

**Sensitive:** Yes.

**Required permissions:** `write`

**Selector tokens:** `save_release_note`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `content` | string | Optional | Release notes content as Markdown |
| `id` | string | Optional | Release notes ID or slug to update |
| `pipeline` | string | Optional | Release pipeline ID, slug, or exact name |
| `rangeFromRelease` | string | Optional | Oldest release ID or slug in the note range |
| `rangeToRelease` | string | Optional | Newest release ID or slug in the note range |
| `releases` | array of string | Optional |  |
| `title` | string | Optional | Release notes title |


### Cycles

#### `list_cycles`

Retrieve cycles for a specific Linear team.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `list_cycles`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `teamId` | string | Required | Team ID |
| `type` | string: `current`, `previous`, `next` | Optional | Cycle filter |


### Documentation

#### `search_documentation`

Search Linear's documentation to learn about features and usage.

**Access:** read.

**Sensitive:** No.

**Required permissions:** `read`

**Selector tokens:** `search_documentation`

##### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `page` | number | Optional | Page number |
| `query` | string | Required | Search query |