Skip to main content Announcing Tool Policies: AI agent permissions down to the field Read the announcement
Connectors Linear
Live 222 Actions 43 Events

Linear Integration for AI Agents

Connect your AI agent to 222 QA'd Linear actions via MCP, A2A, or SDK, with agent authentication, tool-calling execution, and security built-in, plus 43 events to subscribe to.

StackOne
DrataGPLocalyzeFlipMindtoolsScreenloop

Linear AI Agent Actions

222 production-ready actions for your agent to do more on Linear.

222 Actions
File Upload - Step 1 of a two-step upload: request a signed upload URL for a file. This action does NOT transfer any file bytes — it only returns a pre-signed URL that the caller must then PUT the file contents to. Use it to prepare an image/video/attachment for use as a Linear asset.
Update Organization - Update organization settings (admin only)
Create Organization Invite - Invite a new member to the organization by email (admin only)
Suspend User - Suspend a user account (admin only)
List Agent Sessions - Retrieve agent sessions with cursor pagination
Get Agent Session - Retrieve a specific agent session by ID
Get Unified Credentials - Get the current Linear connection's unified credentials and identity.
Get Application Info - Get basic information for an application by client ID
Create Attachment - Link an external resource to an issue as an attachment
Delete Attachment - Remove (delete) an attachment from its issue by attachment ID — this is the action for a 'remove/delete this attachment' request
Update Attachment - Edit an existing attachment's title, subtitle, icon, or metadata (does NOT remove it — use delete_attachment to remove/detach an attachment)
List Comments - Retrieve comments with optional filtering and cursor pagination
Get Comment - Retrieve a specific comment by ID
Create Comment - Create a new comment on an issue
Update Comment - Update an existing comment's body
Delete Comment - Delete a comment by ID
Resolve Comment - Mark a comment thread as resolved
Unresolve Comment - Reopen a resolved comment thread
List Customers - Retrieve customers with optional filtering and cursor pagination
Get Customer - Retrieve a specific customer by ID
Create Customer - Create a new customer with name, domains, and optional revenue, size, status, and tier
Update Customer - Update an existing customer's name, domains, revenue, size, status, or tier
Delete Customer - Delete a customer by ID
Upsert Customer - Create or update a customer by matching on id or externalId, useful for idempotent sync workflows
List Customer Needs - Retrieve customer needs with optional filtering and cursor pagination
Get Customer Need - Retrieve the full details of a specific customer need by its ID (call this after list_customer_needs to return the requested details)
Create Customer Need - Create a new customer need attached to an issue, project, or comment
Update Customer Need - Update a customer need's body, priority, customer, or the issue/project it is linked to
Delete Customer Need - Delete a customer need by ID
List Customer Statuses - Retrieve customer statuses with cursor pagination
Get Customer Status - Retrieve a specific customer status by ID
Create Customer Status - Create a new customer status with a color and a name or displayName, plus optional description and position
Update Customer Status - Update an existing customer status's name, description, color, or position
Delete Customer Status - Delete a customer status by ID
List Customer Tiers - Retrieve customer tiers with cursor pagination
Get Customer Tier - Retrieve a specific customer tier by its ID (resolve a tier name to its ID via list_customer_tiers first)
Create Customer Tier - Create a new customer tier with name and optional description
Update Customer Tier - Update an existing customer tier's display name, description, color, or position
Delete Customer Tier - Delete a customer tier by ID
Create Custom View - Create a new saved custom view with filters
Update Custom View - Update an existing custom view's name, filters, or sharing settings
Delete Custom View - Delete a custom view by ID
List Cycles - Retrieve cycles with optional filtering and cursor pagination
Get Cycle - Retrieve a specific cycle by ID
Create Cycle - Create a new cycle for a team
Update Cycle - Update an existing cycle's name, description, or dates
Archive Cycle - Archive a cycle by ID
List Documents - Retrieve documents with optional filtering and cursor pagination
Get Document - Retrieve a specific document by ID
Create Document - Create a new document with title, content, and optional project or initiative association
Update Document - Update an existing document's title, content, or associations (does NOT trash a document — use delete_document to move a document to trash)
Delete Document - Move a document to trash by ID — this is the action for a 'move to trash', 'trash this document', or 'delete document' request
List External Users - Retrieve external users for the organization with cursor pagination
Get External User - Retrieve a specific external user by ID
List Favorites - Retrieve the authenticated user's favorites, including the subject each one points to
Create Favorite - Add an item (issue, project, cycle, custom view, document, label, or user) to the user's favorites
Delete Favorite - Remove an item from favorites by favorite ID
List Initiatives - Retrieve initiatives with optional filtering and cursor pagination
Get Initiative - Retrieve a specific initiative by ID
Create Initiative - Create a new initiative to group projects
Update Initiative - Update an existing initiative's name, description, dates, or other properties
Delete Initiative - Delete an initiative by ID
Archive Initiative - Archive an initiative by ID
Create Initiative To Project Link - Link an initiative to a project
Delete Initiative To Project Link - Remove the link between an initiative and a project
Create Initiative Update - Create a status update for an initiative
List Issues - Retrieve issues with optional filtering by team, project, assignee, or status and cursor pagination
Get Issue - Retrieve a specific issue by ID or identifier
Create Issue - Create a new issue in Linear with title, description, team, and optional fields
Update Issue - Update an existing issue's title, description, assignee, priority, state, or other fields
Delete Issue - Delete an issue by ID
Issue Filter Suggestion - Suggests filters for an issue view based on a text prompt
Search Issues - Search issues by text term with optional filtering and cursor pagination
Archive Issue - Archive an issue by ID
Unarchive Issue - Restore an archived issue by ID
Create Issue Relation - Create a relationship between two issues
Delete Issue Relation - Remove a relationship between two issues
Batch Create Issues - Create multiple issues at once
Batch Update Issues - Update multiple issues at once by their UUIDs
List Issue Labels - Retrieve issue labels with optional filtering and cursor pagination
Get Issue Label - Retrieve a specific issue label by ID
Create Issue Label - Create a new issue label for a team
Update Issue Label - Update an existing issue label's name, description, or color
Delete Issue Label - Delete an issue label by ID
Get Attachment - Retrieve an issue attachment by ID. Use format=url to get its title and download URL without fetching the file content. Linear upload URLs are signed for five minutes; call again to refresh. External URLs are returned unchanged. Files embedded in comments have no issue attachment ID; use the URLs in list_comments attachments instead. Download and process documents with your own file tools.
Prepare Attachment Upload - Prepare a direct Linear file upload for an existing issue. Uploaded files appear in the issue's Resources; they are not native Linear Documents. To embed a file in Markdown without adding it to an issue's Resources, use prepare_file_upload instead. For written findings or proposals, prefer updating the issue description or using save_document with issue to create an editable Linear Document, unless the user requests a file. The upload workflow creates the Resources link; do not also add the upload URL to save_issue's links field. To revise a file, upload a replacement. To remove its Resources link, use delete_attachment with the attachment ID returned by get_issue. These tools do not edit uploaded file contents, permanently delete stored files, or inspect or change per-file permissions. Explain these limits when relevant. Workflow: 1. Call this tool with issue, filename, contentType, and size. 2. Upload raw bytes with PUT to uploadRequest.url outside MCP. 3. All headers in uploadRequest.headers are part of the signed request, so send them verbatim. 4. After PUT succeeds, call create_attachment_from_upload with assetUrl to link it to the issue. Do not base64-encode or transform the file. Use curl --data-binary @path or fetch(url, { method: 'PUT', body: blob }). Omitting or modifying any signed header, including casing, will return HTTP 403. The signed URL must be used within 60 seconds or it will expire. Upload sequencing: Prepare, PUT, and finalize one file before calling this tool for another file. Do not batch multiple prepare_attachment_upload calls before starting the PUTs because earlier signed URLs can expire while later files are prepared. Example: curl -X PUT --data-binary @file.png \ -H "content-type: image/png" \ -H "x-goog-content-length-range: N,N" \ -H "cache-control: public, max-age=31536000" \ -H 'Content-Disposition: attachment; filename="file.png"' \ "<uploadRequest.url>"
Prepare File Upload - Prepare a direct Linear file upload to embed an image or file in a Markdown field. The file is not added to any issue's Resources. To attach a file to an issue's Resources, use prepare_attachment_upload. Workflow: 1. Call this tool with filename, contentType, and size. 2. Upload raw bytes with PUT to uploadRequest.url outside MCP. 3. All headers in uploadRequest.headers are part of the signed request, so send them verbatim. 4. After PUT succeeds, put markdown (or assetUrl) in the body of save_diff_comment, update_diff, submit_diff_review, save_comment, save_document, save_project, or another Markdown field. For submit_diff_evidence, use assetUrl as an attachment url instead. Do not base64-encode or transform the file. Use curl --data-binary @path or fetch(url, { method: 'PUT', body: blob }). Omitting or modifying any signed header, including casing, will return HTTP 403. The signed URL must be used within 60 seconds or it will expire. Upload sequencing: Prepare and PUT one file before calling this tool for another file. Do not batch multiple prepare_file_upload calls before starting the PUTs because earlier signed URLs can expire while later files are prepared. Example: curl -X PUT --data-binary @file.png \ -H "content-type: image/png" \ -H "x-goog-content-length-range: N,N" \ -H "cache-control: public, max-age=31536000" \ -H 'Content-Disposition: attachment; filename="file.png"' \ "<uploadRequest.url>"
Create Attachment From Upload - Link an already-uploaded Linear assetUrl to an existing issue as an attachment. Uploaded files appear in the issue's Resources; they are not native Linear Documents. To embed a file in Markdown without adding it to an issue's Resources, use prepare_file_upload instead. For written findings or proposals, prefer updating the issue description or using save_document with issue to create an editable Linear Document, unless the user requests a file. The upload workflow creates the Resources link; do not also add the upload URL to save_issue's links field. To revise a file, upload a replacement. To remove its Resources link, use delete_attachment with the attachment ID returned by get_issue. These tools do not edit uploaded file contents, permanently delete stored files, or inspect or change per-file permissions. Explain these limits when relevant. Use this only after: 1. prepare_attachment_upload returned an assetUrl and uploadRequest. 2. The client successfully PUT raw file bytes to uploadRequest.url. This tool does not upload file content. It only creates the Linear attachment row. If the direct upload failed or the signed URL expired, rerun prepare_attachment_upload and upload again.
Create Attachment (deprecated) - Deprecated fallback for tiny files only. Accepts base64 file content, verifies SHA-256 checksum, and uploads it through the MCP worker. Prefer `prepare_attachment_upload` plus direct PUT plus `create_attachment_from_upload`. Uploaded files appear in the issue's Resources; they are not native Linear Documents. To embed a file in Markdown without adding it to an issue's Resources, use prepare_file_upload instead. For written findings or proposals, prefer updating the issue description or using save_document with issue to create an editable Linear Document, unless the user requests a file. The upload workflow creates the Resources link; do not also add the upload URL to save_issue's links field. To revise a file, upload a replacement. To remove its Resources link, use delete_attachment with the attachment ID returned by get_issue. These tools do not edit uploaded file contents, permanently delete stored files, or inspect or change per-file permissions. Explain these limits when relevant. CRITICAL: Do not print base64Content and then copy it into this tool call. Opaque base64 copied through model-visible text is easy to corrupt. Generate base64Content mechanically from the source bytes and pass it through a programmatic argument construction path whenever available. Before calling this tool, verify the values are consistent: Unix-like shells: file="/path/to/file" base64Content=$(base64 < "$file" | tr -d '\n\r') sha256=$(shasum -a 256 "$file" | awk '{print $1}') decodedSha256=$(printf '%s' "$base64Content" | base64 -d | shasum -a 256 | awk '{print $1}') size=$(wc -c < "$file" | tr -d ' ') # optional; stat can also get file byte size decodedSize=$(printf '%s' "$base64Content" | base64 -d | wc -c | tr -d ' ') PowerShell: $file = 'C:\path\to\file' $bytes = [IO.File]::ReadAllBytes($file) $base64Content = [Convert]::ToBase64String($bytes) $sha256 = (Get-FileHash -Algorithm SHA256 -Path $file).Hash.ToLower() $size = $bytes.Length # optional $decoded = [Convert]::FromBase64String($base64Content) $decodedStream = [IO.MemoryStream]::new($decoded) $decodedSha256 = (Get-FileHash -Algorithm SHA256 -InputStream $decodedStream).Hash.ToLower() $decodedSize = $decoded.Length decodedSha256 must equal sha256. If you pass size, decodedSize must equal size. Pass `sha256`. Passing `size` is optional, but recommended for clearer mismatch errors.
Delete Attachment - Remove an attachment link from an issue's Resources. This does not delete the stored file. Use the attachment ID from get_issue's attachments array, not a UUID from the upload URL.
List Agent Skills - List Linear Agent skills available to the authenticated user.
Get Agent Skill - Retrieve a Linear Agent skill by ID, including its full markdown instructions.
List Comments - List comments on a Linear issue, project, initiative, document, project milestone, or project/initiative status update. Provide exactly one of `issueId`, `projectId`, `initiativeId`, `documentId`, `milestoneId`, or `statusUpdateId`. `statusUpdateType` applies only to `statusUpdateId`; omit it for every other parent. For issues, projects, and initiatives this returns both top-level discussion threads and inline description comments. Inline (anchored) comments carry a non-null `quotedText` set to the snippet of description text they reference. Returned comments include `author` and nullable `onBehalfOf`; when set, `onBehalfOf` identifies the user the agent author acted for. Files uploaded in comment bodies are returned in `attachments` with titles and download URLs, not issue attachment IDs. Signed upload URLs expire after five minutes; call list_comments again to refresh them. Download documents using these URLs and process them with your own file tools.
Save Comment - Create or update a comment on a Linear issue, project, initiative, document, project milestone, or project/initiative status update. If `id` is provided, updates the existing comment; otherwise creates a new one. To start a new thread, pass `body` and exactly one of `issueId`, `projectId`, `initiativeId`, `documentId`, `milestoneId`, or `statusUpdateId` (`statusUpdateType` applies only to `statusUpdateId`; omit it for every other parent) — comments on issues/projects/initiatives become top-level discussion threads; comments on documents/milestones become description comments. A status update holds a single thread, so a comment on an update that already has one is added to it as a reply. To reply to an existing thread, pass `parentId` and `body`; the reply inherits the parent's thread type, so no entity reference is needed. Parent reference fields are ignored when `id` or `parentId` is provided (`statusUpdateType` is rejected instead).
Delete Comment - Delete a Linear comment. Inline description comments (those with non-null `quotedText`) anchor a mark in the editor, so their root cannot be deleted — delete the replies individually or resolve the thread instead.
List Cycles - List a team's cycles with their IDs, numbers, dates, and issue and scope histories
List Custom Views - Find saved issue, project, and initiative views accessible to the user, including personal, workspace, and team views. Excludes archived views and views scoped to a project or initiative. Returns view metadata, not the records matching its filters.
Get Document - Retrieve a Linear document by ID or slug
List Documents - List documents in the user's Linear workspace
Save Document - Create or update a Linear document. If `id` is provided, edits the existing document; otherwise creates a new one. When creating, `title` is required and exactly one parent (`project`, `issue`, `initiative`, `cycle`, or `team`) must be specified. On update, passing a parent reparents the document. To change parts of the content without resending all of it, pass `patch` instead of `content`.
Extract Images - Extract and fetch images from markdown content. Use this to view screenshots, diagrams, or other images embedded in Linear issues, comments, or documents. Pass the markdown content (e.g., issue description) and receive the images as viewable data.
Get Issue - Retrieve detailed information about an issue by ID, including attachments, git branch name, and active Triage Intelligence suggestions when the issue is in triage. A nonempty fields selection overrides the include options; request optional fields directly in fields.
List Issues - List issues in the user's Linear workspace, including active Triage Intelligence suggestions for issues in triage. For issues assigned to me, use "me" as the assignee. For issues created by me, use "me" as the creator. Use "null" for no assignee.
Save Issue - Create or update a Linear issue. If `id` is provided, updates the existing issue; otherwise creates a new one. When creating, `team` is required, and `title` is required unless `template` is set. Note: use `assignee` (not `assigneeId`) to set the assignee — it accepts a user ID, name, email, or "me".
List Issue Statuses - List available issue statuses in a Linear team
Get Issue Status - Retrieve detailed information about an issue status in Linear by name or ID
List Issue Labels - List available issue labels in a Linear workspace or team. A retired label carries `retiredAt` and cannot be applied to new issues.
Save Issue Label - Create or update a Linear issue label. If `id` is provided, updates the existing label; otherwise creates a new one. When creating, `name` is required.
Create Issue Label (deprecated) - Create a new Linear issue label. Deprecated: use `save_issue_label`, which can also update labels.
Retire Issue Label - Retire a Linear issue label so it cannot be applied to new issues. The label stays visible on issues that already have it. Retiring a label group also retires its child labels. Undo with `restore_issue_label`.
Restore Issue Label - Restore a retired Linear issue label, making it available for use on issues again. Restoring a label group also restores every child label, including any that were retired separately.
List Projects - List projects in the user's Linear workspace
Get Project - Retrieve details of a specific project in Linear
Save Project - Create or update a Linear project. If `id` is provided, updates the existing project; otherwise creates a new one. When creating, `name` and at least one team (via `addTeams` or `setTeams`) are required. Pass `template` to create the project from a project template. To change parts of the description without resending all of it, pass `patch` instead of `description`. `state` resolves against the project statuses of the lead team, so pass `leadTeam` when creating a multi-team project whose teams use different statuses.
List Project Labels - List available project labels in a Linear workspace or team. Returns workspace labels by default; pass `team` to also include that team's labels. Pass `includeGroups` to include groups, which return `groupType`; child labels return their `parent` and `parentGroupType`. A team-scoped label carries a `team` field; different teams can hold same-named labels, so check it before acting on an ID. A retired label carries `retiredAt` and cannot be applied to new projects.
Retire Project Label - Retire a Linear project label so it cannot be applied to new projects. The label stays visible on projects that already have it. Retiring a label group also retires its child labels. Undo with `restore_project_label`.
Restore Project Label - Restore a retired Linear project label, making it available for use on projects again. Restoring a label group also restores every child label, including any that were retired separately.
Save Project Label - Create or update a Linear project label. If `id` is provided, updates the existing label; otherwise creates a new one. When creating, `name` is required.
List Release Pipelines - List release pipelines in the workspace.
List Releases - List releases in the workspace, with optional filtering by pipeline, stage, version, and text.
Get Release - Retrieve details of a release by ID or slug.
Save Release - Create or update a release. If `id` is provided, updates the existing release; otherwise creates a new one. When creating, `name` and `pipeline` are required. Release status is modeled as the release pipeline stage.
List Release Notes - List release notes in the workspace, optionally filtered by pipeline or covered release.
Get Release Notes - Retrieve release notes by ID or slug, including markdown content.
Save Release Notes - Create or update release notes. If `id` is provided, updates the existing release notes; otherwise creates a new one. When creating, `pipeline` and either `releases` or a release range are required. To change parts of the content without resending all of it, pass `patch` instead of `content`.
Share Issue - Share an issue with a workspace user who cannot otherwise access it. Use this tool only when the user explicitly asks to share the issue.
Unshare Issue - Remove a workspace user's shared access to an issue. Use this tool only when the user explicitly asks to stop sharing the issue.
List Project Milestones - List all milestones in a Linear project
Get Milestone - Retrieve details of a specific milestone by ID or name
Save Milestone - Create or update a milestone in a Linear project. If `id` is provided, updates the existing milestone; otherwise creates a new one. When creating, `name` is required.
Get Notifications - Get a page of notifications from the authenticated user's Linear inbox.
Mark Notification - Mark a Linear inbox notification as read or unread, or snooze or unsnooze it.
List Teams - List teams in the user's Linear workspace, including their parent IDs and hierarchy names
Get Team - Retrieve details of a specific Linear team, including its parent ID and hierarchy name. Use list_teams with parentTeam or ancestorTeam to find its sub-teams
Get Triage Responsibility - Retrieve who is responsible for a team's triage: the person on triage now, what happens when an issue enters triage, and the upcoming shifts of the team's triage rotation. Pass `user` to get only that person's shifts, for example to find when their next triage duty starts, even when it is weeks away.
List Templates - List the Linear issue, project, and document templates available to the authenticated user. Use this to find the template a team expects, then call get_template for its content.
Get Template - Retrieve a Linear template by ID or name: the content it pre-fills, the ids it applies, its sub-issues, and its form fields. Pass the template to save_issue or save_project to apply it. References come back as ids, so read a name with the matching tool when you need one. A form template collects its answers through a form, so applying one here creates an issue with the form unanswered.
List Users - List workspace users with their IDs, names, emails, and admin, guest, and active flags. Use get_user for team memberships.
Get User - Retrieve one user's profile, email, admin, guest, and active flags, plus team IDs, names, and keys. Use list_users to find matching users.
Get Workspace - Retrieve the connected workspace's ID, name, and URL to confirm which workspace you are using
Search Documentation - Search Linear's product documentation for feature and usage guidance. Returns up to five results with titles, URLs, and content snippets per page.
Get Diff - Exact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
List Diffs - List Linear diff pull requests visible to the authenticated user
Get Diff Threads - Exact lookup for diff threads and the authenticated user's drafts. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
Save Diff Comment - Create, reply to, or edit a comment or persisted draft on a Linear diff. Set draft to true to save without submitting. Provide draftId to edit or submit a persisted draft, and commentId only to edit a submitted comment. Submitting an inline draft reuses its saved anchor; submitting a reply draft requires parentId again.
Resolve Diff Thread - Resolve or reopen a top-level comment thread on a Linear diff
Delete Diff Comment - Delete a comment or persisted draft from a Linear diff
Submit Diff Review - Approve a Linear diff, request changes, or submit a review comment
Update Diff - Update a Linear diff's title, description, reviewer requests, issue links, or status. Provide at least one update. Combined updates can partially succeed; inspect the result before retrying. Use merge_diff to merge and submit_diff_review to approve or request changes.
Merge Diff - Merge a Linear diff or add it to the repository's merge queue
Who Am I - Retrieve the authenticated user, the connected workspace, and how this connection reaches Linear
List Customers - List customers in the user's Linear workspace
Save Customer - Create or update a Linear customer. If `id` is provided, updates the existing customer; otherwise creates a new one. When creating, `name` is required.
Delete Customer - Delete a customer in Linear
List Customer Needs - List customer needs (customer requests) for an issue, project, or initiative. Provide exactly one of `issue`, `project`, or `initiative`. Project results include requests linked to the project's issues; initiative results include requests on projects in the initiative or any of its sub-initiatives, and on their issues. Returns requests on closed work too; each need includes its issue's workflow state and its project's status so callers can filter. Paginated; pass `cursor` from the previous page to fetch the next.
Save Customer Need - Create or update a customer need (request) in Linear. If `id` is provided, updates the existing need; otherwise creates a new one. When creating, `body` is required.
Delete Customer Need - Archive a customer need (request) in Linear
List Initiatives - List initiatives in the user's Linear workspace
Get Initiative - Retrieve detailed information about a specific initiative in Linear
Save Initiative - Create or update a Linear initiative. If `id` is provided, updates the existing initiative; otherwise creates a new one. When creating, `name` is required. To change parts of the description without resending all of it, pass `patch` instead of `description`.
List Initiative Labels - List available initiative labels in the Linear workspace. Pass `includeGroups` to include groups, which return `groupType`; child labels return their `parent` and `parentGroupType`. A retired label carries `retiredAt` and cannot be applied to new initiatives.
Save Initiative Label - Create or update a Linear initiative label. If `id` is provided, updates the existing label; otherwise creates a new one. When creating, `name` is required.
Create Initiative Label (deprecated) - Create a new Linear initiative label. Deprecated: use `save_initiative_label`, which can also update labels.
Retire Initiative Label - Retire a Linear initiative label so it cannot be applied to new initiatives. The label stays visible on initiatives that already have it. Retiring a label group also retires its child labels. Undo with `restore_initiative_label`.
Restore Initiative Label - Restore a retired Linear initiative label, making it available for use on initiatives again. Restoring a label group also restores every child label, including any that were retired separately.
Get Status Updates - List or get project/initiative status updates with their body, health, author, and parent project or initiative. Pass id to get one update and ignore list filters; omit id to list.
Save Status Update - Create or update a project/initiative status update and return the saved update. To create, omit id and provide body plus project or initiative matching type. To update, provide id; project and initiative are ignored.
Delete Status Update - Delete (archive) a project or initiative status update.
Create Notification Subscription - Subscribe to notifications for a team, project, cycle, label, custom view, initiative, or user
List Projects - Retrieve projects in the workspace with optional filtering and cursor pagination
Get Project - Retrieve a specific project by ID with full details
Create Project - Create a new project with name, description, and optional team associations
Update Project - Update an existing project's details
Delete Project - Delete a project by ID
Archive Project - Archive a project by ID
Create Project Update - Create a status update for a project
List Project Labels - Retrieve project labels with optional filtering and cursor pagination
Get Project Label - Retrieve a specific project label by ID
Create Project Label - Create a new project label
Update Project Label - Update an existing project label's name, description, or color
Delete Project Label - Delete a project label by ID
List Project Milestones - Retrieve project milestones with optional filtering and cursor pagination
Get Project Milestone - Retrieve a specific project milestone by ID
Create Project Milestone - Create a new milestone for a project
Update Project Milestone - Update an existing project milestone's name, description, or target date
Delete Project Milestone - Delete a project milestone by ID
List Project Statuses - Retrieve project statuses with cursor pagination
Get Project Status - Retrieve a specific project status by ID
Create Project Status - Create a new project status with name, type, and optional description, color, and position
Update Project Status - Update an existing project status's name, description, type, color, or position
Archive Project Status - Archive a project status by ID
Create Reaction - Add an emoji reaction to a comment, issue, or project update
Delete Reaction - Remove an emoji reaction by reaction ID
Create Release - Create a new release in a pipeline
Update Release - Update an existing release's name, version, description, or other properties
Delete Release - Delete a release by ID
Complete Release - Mark a release as complete in a pipeline
List Teams - Retrieve teams in the workspace with optional filtering and cursor pagination
Get Team - Retrieve a specific team by ID
Update Team - Update an existing team's name, description, icon, color, or other properties
Create Team - Create a new team with name and optional settings
Delete Team - Delete a team by ID
List Team Memberships - List the memberships of a team, returning each membership's ID alongside its user — needed to remove a user from a team
Create Team Membership - Add a user to a team, with optional owner role assignment
Delete Team Membership - Remove a user from a team
Create Template - Create a new issue or project template
Update Template - Update an existing template's name, description, data, or other properties
Delete Template - Delete a template by ID
Get Viewer - Retrieve the currently authenticated user (viewer)
List Users - Retrieve users in the workspace with optional filtering and cursor pagination, use the filter input to search.
Get User - Retrieve a specific user by ID
Update User - Update your own Linear user profile, status, or display settings
List Webhooks - Retrieve webhooks in the organization with cursor pagination
Get Webhook - Retrieve a specific webhook by ID
Create Webhook - Create a new webhook to receive HTTP notifications for data updates
Update Webhook - Update an existing webhook's URL, enabled status, or resource types
Delete Webhook - Delete a webhook by ID
Rotate Webhook Secret - Rotate the signing secret for a webhook
List Workflow States - Retrieve workflow states with optional filtering and cursor pagination
Get Workflow State - Retrieve a specific workflow state by ID
Create Workflow State - Create a new workflow state for a team with a specified type, name, and color
Update Workflow State - Update an existing workflow state's name, color, description, or position

Linear Webhook Events

43 real-time Linear events your AI agent can subscribe to.

43 Events
  • Issue Created Processes Linear issue created events.
  • Issue Updated Processes Linear issue updated events.
  • Issue Removed Processes Linear issue removed events.
  • Comment Created Processes Linear comment created events.
  • Comment Updated Processes Linear comment updated events.
  • Comment Removed Processes Linear comment removed events.
  • Project Created Processes Linear project created events.
  • Project Updated Processes Linear project updated events.
  • Project Removed Processes Linear project removed events.
  • Cycle Created Processes Linear cycle created events.
  • Cycle Updated Processes Linear cycle updated events.
  • Cycle Removed Processes Linear cycle removed events.
  • Issue Label Created Processes Linear issue label created events.
  • Issue Label Updated Processes Linear issue label updated events.
  • Issue Label Removed Processes Linear issue label removed events.
  • Reaction Created Processes Linear reaction created events.
  • Reaction Removed Processes Linear reaction removed events.
  • Project Update Created Processes Linear project update created events.
  • Project Update Updated Processes Linear project update updated events.
  • Project Update Removed Processes Linear project update removed events.
  • Document Created Processes Linear document created events.
  • Document Updated Processes Linear document updated events.
  • Document Removed Processes Linear document removed events.
  • User Updated Processes Linear user updated events.
  • Attachment Created Processes Linear attachment created events.
  • Attachment Updated Processes Linear attachment updated events.
  • Attachment Removed Processes Linear attachment removed events.
  • Initiative Created Processes Linear initiative created events.
  • Initiative Updated Processes Linear initiative updated events.
  • Initiative Removed Processes Linear initiative removed events.
  • Customer Created Processes Linear customer created events.
  • Customer Updated Processes Linear customer updated events.
  • Customer Removed Processes Linear customer removed events.
  • Audit Entry Created Processes Linear audit entry created events.
  • Customer Need Created Processes Linear customer need created events.
  • Customer Need Updated Processes Linear customer need updated events.
  • Customer Need Removed Processes Linear customer need removed events.
  • Initiative Update Created Processes Linear initiative update created events.
  • Initiative Update Updated Processes Linear initiative update updated events.
  • Initiative Update Removed Processes Linear initiative update removed events.
  • Issue SLA Created Processes Linear issue SLA created events.
  • Issue SLA Updated Processes Linear issue SLA updated events.
  • Issue SLA Removed Processes Linear issue SLA removed events.

Do More, Build Less

Connect AI to Linear and control what it can do, down to the field

Multiple Interfaces

Access integrations via API, AI SDKs, MCP & A2A.

Linear MCP server
Managed Authentication

Pre-built authentication UI.

Agent auth
Falcon Engine

Every Linear action runs on Falcon.

Agent Execution Engine
StackOne Defender
StackOne Defender Meta PG v1 Meta PG v2 DeBERTa 88.7% 67.5% 63.1% 56.9% Detection accuracy

88.7% prompt injection detection.

Prompt injection defense

"What impressed us most about StackOne is its ambition and clarity. They're creating infrastructure that modern software and the entire AI agent ecosystem can rely on. The depth of secure integrations, the pace of delivery, and the team's foresight into AI's future uniquely position StackOne to redefine this category."

Luna Schmid, Partner at GV

"We've been impressed by how quickly and deeply StackOne integrates with complex enterprise systems -- and now, with their focus on agent-to-agent interoperability, they're unlocking even more powerful use cases for customers. StackOne delivers all of the above in a universal layer -- without compromise."

Barbry McGann, SVP at Workday Ventures

G2 - High Performer G2 - Easiest To Do Business With G2 - Users Love Us G2 - Users Most Likely To Recommend G2 - Easiest Admin

Product Teams Love Building Agent Integrations With StackOne

G2

More Project Management Integrations Like Linear

Smartsheet

203+ actions

Azure DevOps

185+ actions

GitLab

156+ actions

Jira

147+ actions

Confluence

145+ actions

BigChange

144+ actions

Bitbucket

142+ actions

Linear AI agent integration resources

Webhooks for AI agents: why agentic workflows need them purpose-built

AI agents can act the moment a system changes, using webhooks. But webhooks built for software hit three limits in agentic workflows. Here is how to fix each.

7 min read

Agentic Context Engineering: Why AI Agents Kill Their Own Context Windows

AI agents exceed their context windows without knowing it. Six failure patterns and seven survival architectures for agentic context engineering.

15 min

Comparing BM25, TF-IDF, and Hybrid Search for MCP Tool Discovery

Benchmarking BM25, TF-IDF, and hybrid search for MCP tool discovery across 916 tools. The 80/20 TF-IDF/BM25 hybrid hits 21% Top-1 accuracy in under 1ms.

10 min

Linear integration FAQ

Do I need to create my own auth app to connect Linear to StackOne?
Only if you use OAuth. Linear also offers Personal API key auth (no auth app needed). Generate one in Linear Settings > API and paste it into the StackOne dashboard auth config for the Linear connector. For OAuth, you'd register an OAuth application in Linear Settings > API instead. See the Linear auth docs.

Put your AI agents to work

Connect AI to every company system and control what it can do in each one, down to the field.