---
title: Linear
description: Interact with Linear issues, projects, and more
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="linear"
  color="#5E6AD2"
/>

{/* MANUAL-CONTENT-START:intro */}
[Linear](https://linear.app) is a leading project management and issue tracking platform that helps teams plan, track, and manage their work effectively. As a modern project management tool, Linear has become increasingly popular among software development teams and project management professionals for its streamlined interface and powerful features.

Linear provides a comprehensive set of tools for managing complex projects through its flexible and customizable workflow system. With its robust API and integration capabilities, Linear enables teams to streamline their development processes and maintain clear visibility of project progress.

Key features of Linear include:

- Agile Project Management: Support for Scrum and Kanban methodologies with customizable boards and workflows
- Issue Tracking: Sophisticated tracking system for bugs, stories, epics, and tasks with detailed reporting
- Workflow Automation: Powerful automation rules to streamline repetitive tasks and processes
- Advanced Search: Complex filtering and reporting capabilities for efficient issue management

In Sim, the Linear integration allows your agents to seamlessly interact with your project management workflow. This creates opportunities for automated issue creation, updates, and tracking as part of your AI workflows. The integration enables agents to read existing issues and create new ones programmatically, facilitating automated project management tasks and ensuring that important information is properly tracked and documented. By connecting Sim with Linear, you can build intelligent agents that maintain project visibility while automating routine project management tasks, enhancing team productivity and ensuring consistent project tracking.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate Linear into the workflow. Can manage issues, comments, projects, labels, workflow states, cycles, attachments, and more. Can also trigger workflows based on Linear webhook events.



## Tools

### `linear_read_issues`

Fetch and filter issues from Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | No | Linear team ID to filter by |
| `projectId` | string | No | Linear project ID to filter by |
| `assigneeId` | string | No | User ID to filter by assignee |
| `stateId` | string | No | Workflow state ID to filter by status |
| `priority` | number | No | Priority to filter by \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |
| `labelIds` | array | No | Array of label IDs to filter by |
| `createdAfter` | string | No | Filter issues created after this date \(ISO 8601 format\) |
| `updatedAfter` | string | No | Filter issues updated after this date \(ISO 8601 format\) |
| `includeArchived` | boolean | No | Include archived issues \(default: false\) |
| `first` | number | No | Number of issues to return \(default: 50, max: 250\) |
| `after` | string | No | Pagination cursor for next page |
| `orderBy` | string | No | Sort order: "createdAt" or "updatedAt" \(default: "updatedAt"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issues` | array | Array of filtered issues from Linear |

### `linear_get_issue`

Get a single issue by ID from Linear with full details

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issue` | object | The issue with full details |

### `linear_create_issue`

Create a new issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | Linear team ID |
| `projectId` | string | No | Linear project ID |
| `title` | string | Yes | Issue title |
| `description` | string | No | Issue description |
| `stateId` | string | No | Workflow state ID \(status\) |
| `assigneeId` | string | No | User ID to assign the issue to |
| `priority` | number | No | Priority \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |
| `estimate` | number | No | Estimate in points |
| `labelIds` | array | No | Array of label IDs to set on the issue |
| `cycleId` | string | No | Cycle ID to assign the issue to |
| `parentId` | string | No | Parent issue ID \(for creating sub-issues\) |
| `dueDate` | string | No | Due date in ISO 8601 format \(date only: YYYY-MM-DD\) |
| `subscriberIds` | array | No | Array of user IDs to subscribe to the issue |
| `projectMilestoneId` | string | No | Project milestone ID to associate with the issue |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issue` | object | The created issue with all its properties |

### `linear_update_issue`

Update an existing issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID to update |
| `title` | string | No | New issue title |
| `description` | string | No | New issue description |
| `stateId` | string | No | Workflow state ID \(status\) |
| `assigneeId` | string | No | User ID to assign the issue to |
| `priority` | number | No | Priority \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |
| `estimate` | number | No | Estimate in points |
| `labelIds` | array | No | Array of label IDs to set on the issue \(replaces all existing labels\) |
| `projectId` | string | No | Project ID to move the issue to |
| `cycleId` | string | No | Cycle ID to assign the issue to |
| `parentId` | string | No | Parent issue ID \(for making this a sub-issue\) |
| `dueDate` | string | No | Due date in ISO 8601 format \(date only: YYYY-MM-DD\) |
| `addedLabelIds` | array | No | Array of label IDs to add to the issue \(without replacing existing labels\) |
| `removedLabelIds` | array | No | Array of label IDs to remove from the issue |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issue` | object | The updated issue |

### `linear_archive_issue`

Archive an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID to archive |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the archive operation was successful |
| `issueId` | string | The ID of the archived issue |

### `linear_unarchive_issue`

Unarchive (restore) an archived issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID to unarchive |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the unarchive operation was successful |
| `issueId` | string | The ID of the unarchived issue |

### `linear_delete_issue`

Delete (trash) an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the delete operation was successful |

### `linear_search_issues`

Search for issues in Linear using full-text search

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | Search query string |
| `teamId` | string | No | Filter by team ID |
| `includeArchived` | boolean | No | Include archived issues in search results |
| `first` | number | No | Number of results to return \(default: 50\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issues` | array | Array of matching issues |

### `linear_add_label_to_issue`

Add a label to an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID |
| `labelId` | string | Yes | Label ID to add to the issue |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the label was successfully added |
| `issueId` | string | The ID of the issue |

### `linear_remove_label_from_issue`

Remove a label from an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID |
| `labelId` | string | Yes | Label ID to remove from the issue |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the label was successfully removed |
| `issueId` | string | The ID of the issue |

### `linear_create_comment`

Add a comment to an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID to comment on |
| `body` | string | Yes | Comment text \(supports Markdown\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `comment` | object | The created comment |

### `linear_update_comment`

Edit a comment in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `commentId` | string | Yes | Comment ID to update |
| `body` | string | No | New comment text \(supports Markdown\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `comment` | object | The updated comment |

### `linear_delete_comment`

Delete a comment from Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `commentId` | string | Yes | Comment ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the delete operation was successful |

### `linear_list_comments`

List all comments on an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Linear issue ID |
| `first` | number | No | Number of comments to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `comments` | array | Array of comments on the issue |

### `linear_list_projects`

List projects in Linear with optional filtering

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | No | Filter by team ID |
| `includeArchived` | boolean | No | Include archived projects |
| `first` | number | No | Number of projects to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projects` | array | Array of projects |

### `linear_get_project`

Get a single project by ID from Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Linear project ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `project` | object | The project with full details |

### `linear_create_project`

Create a new project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | Team ID to create the project in |
| `name` | string | Yes | Project name |
| `description` | string | No | Project description |
| `leadId` | string | No | User ID of the project lead |
| `startDate` | string | No | Project start date \(ISO format\) |
| `targetDate` | string | No | Project target date \(ISO format\) |
| `priority` | number | No | Project priority \(0-4\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `project` | object | The created project |

### `linear_update_project`

Update an existing project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID to update |
| `name` | string | No | New project name |
| `description` | string | No | New project description |
| `state` | string | No | Project state \(planned, started, completed, canceled\) |
| `leadId` | string | No | User ID of the project lead |
| `startDate` | string | No | Project start date \(ISO format: YYYY-MM-DD\) |
| `targetDate` | string | No | Project target date \(ISO format: YYYY-MM-DD\) |
| `priority` | number | No | Project priority \(0=No priority, 1=Urgent, 2=High, 3=Normal, 4=Low\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `project` | object | The updated project |

### `linear_archive_project`

Archive a project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID to archive |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the archive operation was successful |
| `projectId` | string | The ID of the archived project |

### `linear_list_users`

List all users in the Linear workspace

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `includeDisabled` | boolean | No | Include disabled/inactive users |
| `first` | number | No | Number of users to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `users` | array | Array of workspace users |

### `linear_list_teams`

List all teams in the Linear workspace

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `first` | number | No | Number of teams to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `teams` | array | Array of teams |

### `linear_get_viewer`

Get the currently authenticated user (viewer) information

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `user` | object | The currently authenticated user |

### `linear_list_labels`

List all labels in Linear workspace or team

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | No | Filter by team ID |
| `first` | number | No | Number of labels to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `labels` | array | Array of labels |

### `linear_create_label`

Create a new label in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `name` | string | Yes | Label name |
| `color` | string | No | Label color \(hex format, e.g., "#ff0000"\) |
| `description` | string | No | Label description |
| `teamId` | string | No | Team ID \(if omitted, creates workspace label\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `label` | object | The created label |

### `linear_update_label`

Update an existing label in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `labelId` | string | Yes | Label ID to update |
| `name` | string | No | New label name |
| `color` | string | No | New label color \(hex format\) |
| `description` | string | No | New label description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `label` | object | The updated label |

### `linear_archive_label`

Archive a label in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `labelId` | string | Yes | Label ID to archive |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the archive operation was successful |
| `labelId` | string | The ID of the archived label |

### `linear_list_workflow_states`

List all workflow states (statuses) in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | No | Filter by team ID |
| `first` | number | No | Number of states to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `states` | array | Array of workflow states |

### `linear_create_workflow_state`

Create a new workflow state (status) in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | Team ID to create the state in |
| `name` | string | Yes | State name \(e.g., "In Review"\) |
| `color` | string | No | State color \(hex format\) |
| `type` | string | Yes | State type: "backlog", "unstarted", "started", "completed", or "canceled" |
| `description` | string | No | State description |
| `position` | number | No | Position in the workflow |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `state` | object | The created workflow state |

### `linear_update_workflow_state`

Update an existing workflow state in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `stateId` | string | Yes | Workflow state ID to update |
| `name` | string | No | New state name |
| `color` | string | No | New state color \(hex format\) |
| `description` | string | No | New state description |
| `position` | number | No | New position in workflow |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `state` | object | The updated workflow state |

### `linear_list_cycles`

List cycles (sprints/iterations) in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | No | Filter by team ID |
| `first` | number | No | Number of cycles to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `cycles` | array | Array of cycles |

### `linear_get_cycle`

Get a single cycle by ID from Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `cycleId` | string | Yes | Cycle ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `cycle` | object | The cycle with full details |

### `linear_create_cycle`

Create a new cycle (sprint/iteration) in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | Team ID to create the cycle in |
| `startsAt` | string | Yes | Cycle start date \(ISO format\) |
| `endsAt` | string | Yes | Cycle end date \(ISO format\) |
| `name` | string | No | Cycle name \(optional, will be auto-generated if not provided\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `cycle` | object | The created cycle |

### `linear_get_active_cycle`

Get the currently active cycle for a team

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Yes | Team ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `cycle` | object | The active cycle \(null if no active cycle\) |

### `linear_create_attachment`

Add an attachment to an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Issue ID to attach to |
| `url` | string | Yes | URL of the attachment |
| `title` | string | Yes | Attachment title |
| `subtitle` | string | No | Attachment subtitle/description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `attachment` | object | The created attachment |

### `linear_list_attachments`

List all attachments on an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Issue ID |
| `first` | number | No | Number of attachments to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `attachments` | array | Array of attachments |

### `linear_update_attachment`

Update an attachment metadata in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `attachmentId` | string | Yes | Attachment ID to update |
| `title` | string | Yes | New attachment title |
| `subtitle` | string | No | New attachment subtitle |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `attachment` | object | The updated attachment |

### `linear_delete_attachment`

Delete an attachment from Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `attachmentId` | string | Yes | Attachment ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the delete operation was successful |

### `linear_create_issue_relation`

Link two issues together in Linear (blocks, relates to, duplicates)

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Source issue ID |
| `relatedIssueId` | string | Yes | Target issue ID to link to |
| `type` | string | Yes | Relation type: "blocks", "duplicate", or "related". Note: When creating "blocks" from A to B, the inverse relation \(B blocked by A\) is automatically created. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `relation` | object | The created issue relation |

### `linear_list_issue_relations`

List all relations (dependencies) for an issue in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | Yes | Issue ID |
| `first` | number | No | Number of relations to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `relations` | array | Array of issue relations |

### `linear_delete_issue_relation`

Remove a relation between two issues in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `relationId` | string | Yes | Relation ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the delete operation was successful |

### `linear_create_favorite`

Bookmark an issue, project, cycle, or label in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `issueId` | string | No | Issue ID to favorite |
| `projectId` | string | No | Project ID to favorite |
| `cycleId` | string | No | Cycle ID to favorite |
| `labelId` | string | No | Label ID to favorite |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `favorite` | object | The created favorite |

### `linear_list_favorites`

List all bookmarked items for the current user in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `first` | number | No | Number of favorites to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `favorites` | array | Array of favorited items |

### `linear_create_project_update`

Post a status update for a project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID to post update for |
| `body` | string | Yes | Update message \(supports Markdown\) |
| `health` | string | No | Project health: "onTrack", "atRisk", or "offTrack" |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `update` | object | The created project update |

### `linear_list_project_updates`

List all status updates for a project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID |
| `first` | number | No | Number of updates to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `updates` | array | Array of project updates |

### `linear_create_project_link`

Add an external link to a project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID to add link to |
| `url` | string | Yes | URL of the external link |
| `label` | string | No | Link label/title |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `link` | object | The created project link |

### `linear_list_notifications`

List notifications for the current user in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `first` | number | No | Number of notifications to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `notifications` | array | Array of notifications |

### `linear_update_notification`

Mark a notification as read or unread in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `notificationId` | string | Yes | Notification ID to update |
| `readAt` | string | No | Timestamp to mark as read \(ISO format\). Pass null or omit to mark as unread |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `notification` | object | The updated notification |

### `linear_create_customer`

Create a new customer in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `name` | string | Yes | Customer name |
| `domains` | array | No | Domains associated with this customer |
| `externalIds` | array | No | External IDs from other systems |
| `logoUrl` | string | No | Customer's logo URL |
| `ownerId` | string | No | ID of the user who owns this customer |
| `revenue` | number | No | Annual revenue from this customer |
| `size` | number | No | Size of the customer organization |
| `statusId` | string | No | Customer status ID |
| `tierId` | string | No | Customer tier ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customer` | object | The created customer |

### `linear_list_customers`

List all customers in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `first` | number | No | Number of customers to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |
| `includeArchived` | boolean | No | Include archived customers \(default: false\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customers` | array | Array of customers |

### `linear_create_customer_request`

Create a customer request (need) in Linear. Assign to customer, set urgency (priority: 0 = Not important, 1 = Important), and optionally link to an issue.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `customerId` | string | Yes | Customer ID to assign this request to |
| `body` | string | No | Description of the customer request |
| `priority` | number | No | Urgency level: 0 = Not important, 1 = Important \(default: 0\) |
| `issueId` | string | No | Issue ID to link this request to |
| `projectId` | string | No | Project ID to link this request to |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerNeed` | object | The created customer request |

### `linear_update_customer_request`

Update a customer request (need) in Linear. Can change urgency, description, customer assignment, and linked issue.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `customerNeedId` | string | Yes | Customer request ID to update |
| `body` | string | No | Updated description of the customer request |
| `priority` | number | No | Updated urgency level: 0 = Not important, 1 = Important |
| `customerId` | string | No | New customer ID to assign this request to |
| `issueId` | string | No | New issue ID to link this request to |
| `projectId` | string | No | New project ID to link this request to |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerNeed` | object | The updated customer request |

### `linear_list_customer_requests`

List all customer requests (needs) in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `first` | number | No | Number of customer requests to return \(default: 50\) |
| `after` | string | No | Cursor for pagination |
| `includeArchived` | boolean | No | Include archived customer requests \(default: false\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerNeeds` | array | Array of customer requests |

### `linear_get_customer`

Get a single customer by ID in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `customerId` | string | Yes | Customer ID to retrieve |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customer` | object | The customer data |

### `linear_update_customer`

Update a customer in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `customerId` | string | Yes | Customer ID to update |
| `name` | string | No | Updated customer name |
| `domains` | array | No | Updated domains |
| `externalIds` | array | No | Updated external IDs |
| `logoUrl` | string | No | Updated logo URL |
| `ownerId` | string | No | Updated owner user ID |
| `revenue` | number | No | Updated annual revenue |
| `size` | number | No | Updated organization size |
| `statusId` | string | No | Updated customer status ID |
| `tierId` | string | No | Updated customer tier ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customer` | object | The updated customer |

### `linear_delete_customer`

Delete a customer in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `customerId` | string | Yes | Customer ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |

### `linear_merge_customers`

Merge two customers in Linear by moving all data from source to target

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `sourceCustomerId` | string | Yes | Source customer ID \(will be deleted after merge\) |
| `targetCustomerId` | string | Yes | Target customer ID \(will receive all data\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customer` | object | The merged target customer |

### `linear_create_customer_status`

Create a new customer status in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `name` | string | Yes | Customer status name |
| `color` | string | Yes | Status color \(hex code\) |
| `displayName` | string | No | Display name for the status |
| `description` | string | No | Status description |
| `position` | number | No | Position in status list |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerStatus` | object | The created customer status |

### `linear_update_customer_status`

Update a customer status in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `statusId` | string | Yes | Customer status ID to update |
| `name` | string | No | Updated status name |
| `color` | string | No | Updated status color |
| `displayName` | string | No | Updated display name |
| `description` | string | No | Updated description |
| `position` | number | No | Updated position |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerStatus` | object | The updated customer status |

### `linear_delete_customer_status`

Delete a customer status in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `statusId` | string | Yes | Customer status ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |

### `linear_list_customer_statuses`

List all customer statuses in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerStatuses` | array | List of customer statuses |

### `linear_create_customer_tier`

Create a new customer tier in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `name` | string | Yes | Customer tier name |
| `color` | string | Yes | Tier color \(hex code\) |
| `displayName` | string | No | Display name for the tier |
| `description` | string | No | Tier description |
| `position` | number | No | Position in tier list |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerTier` | object | The created customer tier |

### `linear_update_customer_tier`

Update a customer tier in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tierId` | string | Yes | Customer tier ID to update |
| `name` | string | No | Updated tier name |
| `color` | string | No | Updated tier color |
| `displayName` | string | No | Updated display name |
| `description` | string | No | Updated description |
| `position` | number | No | Updated position |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerTier` | object | The updated customer tier |

### `linear_delete_customer_tier`

Delete a customer tier in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tierId` | string | Yes | Customer tier ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |

### `linear_list_customer_tiers`

List all customer tiers in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customerTiers` | array | List of customer tiers |

### `linear_delete_project`

Delete a project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |

### `linear_create_project_label`

Create a new project label in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The project for this label |
| `name` | string | Yes | Project label name |
| `color` | string | No | Label color \(hex code\) |
| `description` | string | No | Label description |
| `isGroup` | boolean | No | Whether this is a label group |
| `parentId` | string | No | Parent label group ID |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectLabel` | object | The created project label |

### `linear_update_project_label`

Update a project label in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `labelId` | string | Yes | Project label ID to update |
| `name` | string | No | Updated label name |
| `color` | string | No | Updated label color |
| `description` | string | No | Updated description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectLabel` | object | The updated project label |

### `linear_delete_project_label`

Delete a project label in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `labelId` | string | Yes | Project label ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |

### `linear_list_project_labels`

List all project labels in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | No | Optional project ID to filter labels for a specific project |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectLabels` | array | List of project labels |

### `linear_add_label_to_project`

Add a label to a project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID |
| `labelId` | string | Yes | Label ID to add |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the label was added successfully |
| `projectId` | string | The project ID |

### `linear_remove_label_from_project`

Remove a label from a project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID |
| `labelId` | string | Yes | Label ID to remove |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the label was removed successfully |
| `projectId` | string | The project ID |

### `linear_create_project_milestone`

Create a new project milestone in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID |
| `name` | string | Yes | Milestone name |
| `description` | string | No | Milestone description |
| `targetDate` | string | No | Target date \(ISO 8601\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectMilestone` | object | The created project milestone |

### `linear_update_project_milestone`

Update a project milestone in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `milestoneId` | string | Yes | Project milestone ID to update |
| `name` | string | No | Updated milestone name |
| `description` | string | No | Updated description |
| `targetDate` | string | No | Updated target date \(ISO 8601\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectMilestone` | object | The updated project milestone |

### `linear_delete_project_milestone`

Delete a project milestone in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `milestoneId` | string | Yes | Project milestone ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |

### `linear_list_project_milestones`

List all milestones for a project in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID to list milestones for |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectMilestones` | array | List of project milestones |

### `linear_create_project_status`

Create a new project status in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The project to create the status for |
| `name` | string | Yes | Project status name |
| `color` | string | Yes | Status color \(hex code\) |
| `description` | string | No | Status description |
| `indefinite` | boolean | No | Whether the status is indefinite |
| `position` | number | No | Position in status list |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectStatus` | object | The created project status |

### `linear_update_project_status`

Update a project status in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `statusId` | string | Yes | Project status ID to update |
| `name` | string | No | Updated status name |
| `color` | string | No | Updated status color |
| `description` | string | No | Updated description |
| `indefinite` | boolean | No | Updated indefinite flag |
| `position` | number | No | Updated position |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectStatus` | object | The updated project status |

### `linear_delete_project_status`

Delete a project status in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `statusId` | string | Yes | Project status ID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |

### `linear_list_project_statuses`

List all project statuses in Linear

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projectStatuses` | array | List of project statuses |



## Notes

- Category: `tools`
- Type: `linear`
