Dev & Project Management
📐 Linear integration
Access levels: Read-only · Create + comment · Full access · Verified
Dev & Project Management
Access levels: Read-only · Create + comment · Full access · Verified
Connect Linear once and every agent in your squad can work in it for you, with exactly as much access as you decide to give, and a receipt for every call it makes.
You can change an account's access level any time under Manage. It applies instantly, no re-authorization. If the connection ever expires, the card shows Reconnect; one click re-authorizes the same account with the same settings.
Multiple accounts: connect as many as you need (say, yours and a client's). One is primary. Agents use it unless a mission says otherwise.
The level you pick at connect time is enforced on our side for every agent call: an agent can never do more than the level allows, no matter what it's asked.
| Level | What it allows | |
|---|---|---|
| Read-only | Read issues, projects, and teams. | |
| Create + comment | Read and add new issues and comments. | |
| Full access | Read, create, edit, and delete issues and projects. | Recommended |
On top of the connection's level, every agent can be individually allowed, scoped down, or denied for this app from the Integrations page. Deny an agent and it doesn't even see the connection.
The 47 tools agents use in Linear through Mission Control, and the lowest access level that includes each. Agents discover these themselves. You never have to name a tool; asking in plain language is enough.
| Tool | What it does | Access level |
|---|---|---|
Archive issueLINEAR_ARCHIVE_ISSUE | Archives an existing Linear issue by its ID, removing it from active views while preserving its data for future reference. | Full access |
Archive projectLINEAR_ARCHIVE_PROJECT | Archives an existing Linear project by its UUID, removing it from active views. | Full access |
Archive project updateLINEAR_ARCHIVE_PROJECT_UPDATE | Archives a project update in Linear, hiding it from the default view while preserving its data. | Full access |
Create attachmentLINEAR_CREATE_ATTACHMENT | Creates a new attachment and associates it with a specific, existing Linear issue. | Create + comment, Full access |
Create comment reactionLINEAR_CREATE_COMMENT_REACTION | Add a reaction to an existing Linear comment. | Create + comment, Full access |
Create linear commentLINEAR_CREATE_LINEAR_COMMENT | Creates a new comment on a specified Linear issue. | Create + comment, Full access |
Create linear issueLINEAR_CREATE_LINEAR_ISSUE | Creates a new issue in a specified Linear project and team, requiring team_id and title, and allowing optional properties like description, assignee, state, priority, cycle, and due date. | Create + comment, Full access |
Create linear issue relationLINEAR_CREATE_LINEAR_ISSUE_RELATION | Create a relationship between two Linear issues using the issueRelationCreate mutation. | Create + comment, Full access |
Create linear labelLINEAR_CREATE_LINEAR_LABEL | Creates a new label in Linear for a specified team, used to categorize and organize issues. | Create + comment, Full access |
Create linear projectLINEAR_CREATE_LINEAR_PROJECT | Creates a new Linear project with specified name and team associations. | Create + comment, Full access |
Create project milestoneLINEAR_CREATE_PROJECT_MILESTONE | Create a project milestone in Linear with a name and optional target date and sort order. | Create + comment, Full access |
Create project updateLINEAR_CREATE_PROJECT_UPDATE | Create a project status update post for a Linear project. | Create + comment, Full access |
Create teamLINEAR_CREATE_TEAM | Creates a new team in Linear with the specified name and key. | Full access |
Delete linear issueLINEAR_DELETE_LINEAR_ISSUE | Archives an existing Linear issue by its ID, which is Linear's standard way of deleting issues; the operation is idempotent. | Full access |
Get all linear teamsLINEAR_GET_ALL_LINEAR_TEAMS | DEPRECATED: Use ListLinearTeams instead (returns paginated payloads with members and projects); this tool returns simpler id/name-level data for all teams visible to the connected workspace with no server-side filtering. | All levels |
Get attachmentLINEAR_GET_ATTACHMENT | Downloads a specific attachment from a Linear issue; the file_name must include the correct file extension. | All levels |
Get commentLINEAR_GET_COMMENT | Retrieves a single Linear comment by its unique ID. | Full access |
Get current userLINEAR_GET_CURRENT_USER | Gets the currently authenticated user's ID, name, email, and other profile information, this is the account behind the API token, which may be a bot or service account rather than a human user. | All levels |
Get cycles by team idLINEAR_GET_CYCLES_BY_TEAM_ID | Retrieves all cycles for a specified Linear team ID; cycles are time-boxed work periods (like sprints). | All levels |
Get issue defaultsLINEAR_GET_ISSUE_DEFAULTS | Fetches a Linear team's default issue estimate and state, useful for pre-filling new issue forms. | All levels |
Get linear issueLINEAR_GET_LINEAR_ISSUE | Retrieves an existing Linear issue's comprehensive details, including id, identifier, title, description, timestamps, state, team, creator, attachments, comments (with user info and timestamps, use issue.comments.nodes… | All levels |
Get linear projectLINEAR_GET_LINEAR_PROJECT | Retrieves a single Linear project by its unique identifier. | All levels |
Get project updateLINEAR_GET_PROJECT_UPDATE | Retrieves a specific project update by its unique identifier. | Full access |
List commentsLINEAR_LIST_COMMENTS | Lists comments from Linear workspace accessible to the authenticated user. | Full access |
List issues by team idLINEAR_LIST_ISSUES_BY_TEAM_ID | List all issues for a specific Linear team, scoped by team ID. | All levels |
List issue draftsLINEAR_LIST_ISSUE_DRAFTS | List issue drafts. Use when you need to fetch draft issues for review or further editing. Check pageInfo.hasNextPage in the response to determine if additional drafts exist beyond the current page. | All levels |
List linear cyclesLINEAR_LIST_LINEAR_CYCLES | Retrieves all cycles (time-boxed sprint iterations) org-wide from the Linear account; no filters applied. | All levels |
List linear issuesLINEAR_LIST_LINEAR_ISSUES | Lists non-archived Linear issues; if project_id is not specified, issues from all accessible projects are returned. | All levels |
List linear labelsLINEAR_LIST_LINEAR_LABELS | Retrieves labels from Linear. If team_id is provided, returns labels for that specific team; if omitted, returns all labels across the workspace. Label names are not unique across teams, always use returned IDs, not nam… | All levels |
List linear projectsLINEAR_LIST_LINEAR_PROJECTS | Retrieves all projects from the Linear account. | All levels |
List linear statesLINEAR_LIST_LINEAR_STATES | Retrieves all workflow states for a specified team in Linear, representing the stages an issue progresses through in that team's workflow. | All levels |
List linear teamsLINEAR_LIST_LINEAR_TEAMS | Retrieves all teams with their members and projects. | All levels |
List linear usersLINEAR_LIST_LINEAR_USERS | Lists all workspace users (not team-scoped) with their IDs, names, emails, and active status. | All levels |
List project updatesLINEAR_LIST_PROJECT_UPDATES | Retrieves all project updates from the Linear workspace. | Full access |
Remove issue labelLINEAR_REMOVE_ISSUE_LABEL | Removes a specified label from an existing Linear issue using their IDs; successful even if the label isn't on the issue. | Full access |
Remove reactionLINEAR_REMOVE_REACTION | Remove a reaction on a comment. Use when you have a reaction ID and need to delete it. | Full access |
Resolve commentLINEAR_RESOLVE_COMMENT | Marks a Linear comment as resolved. This action is used when a comment thread or discussion has been addressed and should be marked as complete. Use this action when you need to resolve a comment after addressing the fe… | Full access |
Run query or mutationLINEAR_RUN_QUERY_OR_MUTATION | Execute any GraphQL query or mutation against Linear's API. | Full access |
Search issuesLINEAR_SEARCH_ISSUES | Search Linear issues using full-text search across identifier, title, and description. | All levels |
Unarchive project updateLINEAR_UNARCHIVE_PROJECT_UPDATE | Unarchive a previously archived project update in Linear. | Full access |
Unresolve commentLINEAR_UNRESOLVE_COMMENT | Unresolves a previously resolved Linear comment, marking it as requiring attention again. | Full access |
Update issueLINEAR_UPDATE_ISSUE | Updates an existing Linear issue using its issue_id; requires at least one other attribute for modification, and all provided entity IDs (for state, assignee, labels, etc.) must be valid UUIDs, only issueId accepts… | Create + comment, Full access |
Update linear commentLINEAR_UPDATE_LINEAR_COMMENT | Update an existing Linear comment's body text. | Create + comment, Full access |
Update linear projectLINEAR_UPDATE_LINEAR_PROJECT | Update an existing Linear project. Use when you need to modify project properties like name, description, state, dates, or lead. All fields except project_id are optional - only provide the fields you want to update. | Create + comment, Full access |
Update project updateLINEAR_UPDATE_PROJECT_UPDATE | Update an existing Linear project update post. | Full access |
Update teamLINEAR_UPDATE_TEAM | Updates an existing Linear team's settings and configuration. | Full access |
Validate credentialLINEAR_VALIDATE_CREDENTIAL | Validates the Linear API credentials by checking if the authentication token can successfully query the current user. | Full access |
Just ask in plain language: “check Linear for …”, “create … in Linear”, “every Monday, … ”, and the agent finds the right tool, runs it, and reports back with a receipt in your Runs ledger. Anything outward-facing (sending, posting, publishing) that a mission didn't clearly authorize comes back to you as a ticket first.
| Agent says | What's happening | Fix |
|---|---|---|
| "Linear isn't connected" | No active connection (or this agent is denied) | Connect on the Integrations page; check the agent's per-app policy |
| "The connection has expired" | Linear ended the authorization (they all do periodically) | Click Reconnect on the account, same settings, one click |
| "I'm not allowed to do that" | The action is above the account's access level, or the agent is scoped down | Raise the level under Manage, or adjust that agent's policy |
| It did something unexpected | The ask was ambiguous (e.g. matched an existing item) | Be explicit, "create a NEW …", and give agents a working folder where relevant |