Version2.0.0
Categoryproductivity
AuthAPI key
Tools20
Transportstdio
LicenceMIT
01
What it does
The app, in its own words.
Linear issue tracking - list, create, update issues, manage projects, labels, teams and users
02
Tools
20 tools the agent can call.
Every one is declared with typed parameters and returns structured results, so the host can render them instead of narrating them.
- linear-add-commentAdd a comment to a Linear issue. Returns curated { id, body, authorId, authorName, issueId, url, createdAt }. Not retryable. Params: issueId, body, fields?, includeRaw.
- linear-add-issues-to-projectAttach one or more Linear issues to a project. Returns { projectId, added, failed, results: [{ issueId, identifier?, success, error? }] }.
- linear-add-labels-to-issueAdd labels to a Linear issue (deduped server-side against existing labels). Returns { issueId, added, total, labelIds }.
- linear-archive-issueArchive a Linear issue (soft delete). Reversible via un-archive. Returns { success, issueId }.
- linear-create-issueCreate a Linear issue. Returns curated { id, identifier, title, url, status, priority, assignee, team, createdAt, updatedAt }. Not retryable (no idempotency key). Params: title, teamId, description?, assigneeId?, priority?, projectId?, labelIds?, stateId?, parentId? (UUID or "TER-123"), fields?, includeRaw.
- linear-create-labelCreate a Linear label. Returns curated { id, name, color, description }. Not retryable. Params: name, teamId, color?, description?, fields?, includeRaw.
- linear-create-projectCreate a Linear project. Returns curated project shape. Not retryable (no idempotency key). Params: name, teamIds, description?, leadId?, startDate?, targetDate?, fields?, includeRaw.
- linear-delete-issuePermanently delete a Linear issue. Irreversible. Returns { success, issueId }.
- linear-delete-labelPermanently delete a Linear label. Irreversible. Returns { success, labelId }.
- linear-get-issueRetrieve a Linear issue by UUID or identifier (e.g. "TER-123"). Returns curated { id, identifier, title, url, status, priority, assignee, team, project, cycle, labels, description, createdAt, updatedAt }. Params: issueId, fields?, includeRaw.
- linear-list-issuesList Linear issues with optional filters. Returns curated rows { id, identifier, title, url, status, priority, assignee, team, createdAt, updatedAt }. Params: teamId?, status?, assigneeId?, priority?, limit (1-100, def 50), startCursor, fields?, includeRaw.
- linear-list-labelsList Linear labels. Returns curated rows { id, name, color, description, isGroup, parentId }. Params: teamId?, limit (1-100, def 50), startCursor, fields?, includeRaw.
- linear-list-projectsList Linear projects. Returns curated rows { id, name, url, state, icon, color, progress, startDate, targetDate, createdAt, updatedAt }. Params: teamId?, limit (1-100, def 50), startCursor, fields?, includeRaw.
- linear-list-teamsList Linear teams. Returns curated rows { id, name, key, icon, color, description, private }. Params: limit (1-100, def 50), startCursor, fields?, includeRaw.
- linear-list-usersList Linear workspace users. Optionally filters by team membership. Returns curated rows { id, name, displayName, email, avatarUrl, active, admin }. Params: teamId?, limit (1-100, def 50), startCursor, fields?, includeRaw.
- linear-list-workflow-statesList workflow states for a team. Returns curated rows { id, name, type, color, position, description }. Params: teamId, limit (1-100, def 50), startCursor, fields?, includeRaw.
- linear-remove-issues-from-projectDetach one or more Linear issues from their project. Returns { removed, failed, results: [{ issueId, identifier?, success, error? }] }.
- linear-remove-labels-from-issueRemove labels from a Linear issue. Returns { issueId, removed, total, labelIds }.
- linear-update-issueUpdate a Linear issue. Returns curated updated issue. Idempotent per-field — safe to retry. Params: issueId, title?, description?, stateId?, assigneeId?, priority?, projectId?, labelIds?, estimate?, dueDate?, fields?, includeRaw.
- linear-update-labelUpdate a Linear label. Returns curated updated label. Idempotent per-field. Params: labelId, name?, color?, description?, fields?, includeRaw.
03
Auth and permissions
What it asks for.
Declared in the manifest, in advance. The app cannot reach anything it did not ask for here.
User secrets
API_KEY
Reading further
The manifest and the source for Linear live in the monorepo, alongside the other apps.