linear_addAttachment
Add an attachment to an issue
Work a Linear workspace from your client: file and move issues, run cycles, cut releases with notes, attach customer needs to the roadmap, and administer the webhooks, saved views and OAuth applications behind it.
LABSCO SUMMARY
Most Linear servers stop at issues and cycles; this one carries releases, initiatives, customers and workspace administration too, which is why the surface reaches 198 tools and why a client on a tight tool budget will feel it. A few tools behave more narrowly than their names suggest: completing a release needs the pipeline to already have a completed stage configured, and a client-credentials token comes back once, without a refresh token, normally valid for 30 days. The managed OAuth application tools are alpha and reach only child applications the calling app owns.
A server over Linear's GraphQL API with 198 tools, reaching past issues and cycles into release pipelines, roadmaps, initiatives, customers, workspace documents and OAuth application management. It also publishes Linear resources by URI and a few ready-made prompts.
Node 20 or newer and a Linear credential in LINEAR_API_TOKEN — a personal API key from Security & access covers issues, cycles, documents and workspace webhooks. Managing child OAuth applications needs the server authenticated as an OAuth application instead, so a personal key can only prepare the manifest and setup URL for an administrator to submit. One process uses one credential, so a setup that needs both usually runs two server entries. The tools that return secret material require explicit confirmation flags, and webhook URLs have to be publicly reachable HTTPS. MIT.
One command plus a key — npx add-mcp @tacticlaunch/mcp-linear --env LINEAR_API_TOKEN=<YOUR_LINEAR_API_TOKEN>
USE CASES
Pull the releases on a pipeline, attach the issues that shipped, then close it out. The note can be composed from a range between two releases instead of a hand-listed set.
Find the customer, record the need against an issue or a project, and put that issue where the work is planned. Needs carry a priority, so the same read answers which accounts are waiting on what.
Create it on the right team, set state, assignee and priority, and relate it to whatever it blocks.
Read the project and its issues, then use the update prompt so the draft follows the same shape every week rather than whatever the model felt like.
Create the webhook for the events you care about, then rotate its signing secret when the receiving service changes — the secret comes back once, so move it straight into a secret store.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
linear_addAttachmentAdd an attachment to an issue
linear_addIssueLabelAdd a label to an issue in Linear
linear_addIssueToCycleAdd an issue to a cycle
linear_addIssueToProjectAdd an existing issue to a project
linear_addIssueToReleaseAdd an issue to a release
linear_addProjectMemberAdd a member to a project
linear_addProjectToInitiativeAdd a project to an initiative
linear_addToFavoritesAdd an entity to the current user's Linear favorites
linear_addUserToTeamAdd a user to a team
linear_archiveCustomerNeedArchive a customer need
linear_archiveDocumentArchive (trash) a Linear document
linear_archiveInitiativeArchive an initiative
linear_archiveInitiativeUpdateArchive an initiative update
linear_archiveIssueArchive an issue
linear_archiveManagedOAuthApplicationArchive an alpha child OAuth application owned by the calling OAuth application. This does not revoke an unrelated authorized application.
linear_archiveMilestoneArchive a project milestone
linear_archiveProjectArchive a project
linear_archiveProjectUpdateArchive a Linear project update
linear_archiveReleaseArchive a release
linear_archiveReleasePipelineArchive a release pipeline
linear_archiveReleaseStageArchive a release stage
linear_archiveRoadmapArchive a roadmap
linear_archiveTeamArchive a team
linear_archiveTemplateArchive an issue template
linear_assignIssueAssign an issue to a user
linear_completeCycleMark a cycle as complete
linear_completeReleaseMark a release as completed within a pipeline. The target pipeline must already have a completed release stage configured.
linear_convertIssueToSubtaskConvert an issue to a subtask
linear_createCommentAdd a comment to an issue, project, initiative, update, document content, or as a threaded reply
linear_createCustomerCreate a customer
linear_createCustomerNeedCreate a customer need linked to an issue or project
linear_createCustomerNeedFromAttachmentCreate or unarchive a customer need from an existing attachment
linear_createCycleCreate a new cycle
linear_createDocumentCreate a new Linear document
linear_createInitiativeCreate a new initiative
linear_createInitiativeUpdateCreate a new initiative update
linear_createIssueCreate a new issue in Linear
linear_createIssueFromTemplateCreate a new issue from a template
linear_createIssueRelationCreate relations between issues (blocks, is blocked by, etc.)
linear_createIssueTemplateCreate a new issue template
linear_createManagedOAuthApplicationCreate an alpha child OAuth application owned by the calling OAuth application. This is not the human setup flow and returns one-time client and optional webhook secrets in the MCP result. It cannot set distribution or pre-grant OAuth scopes.
linear_createMilestoneCreate a new project milestone in Linear
linear_createOAuthClientCredentialsTokenIssue a scoped Linear app-actor access token through the client_credentials grant for server-to-server pipelines. The token is returned once, has no refresh token, and is normally valid for 30 days. If the requested scope set differs from existing app-actor tokens, Linear revokes those existing tokens.
linear_createProjectCreate a new project in Linear
linear_createProjectUpdateCreate a new project update for a Linear project
linear_createReleaseCreate a new release in a release pipeline
linear_createReleaseNoteCreate a release note using either explicit release IDs or a release range within a pipeline
linear_createReleasePipelineCreate a new release pipeline
linear_createReleaseStageCreate a new release stage in a pipeline
linear_createRoadmapCreate a new roadmap in Linear
linear_createSavedViewCreate a Linear saved view (API: createCustomView)
linear_createTeamCreate a new team
linear_createTeamLabelCreate a new label for a team
linear_createWebhookCreate a webhook for integration events
linear_createWorkflowStateCreate a new workflow state
linear_deleteCommentDelete a comment
linear_deleteCustomerDelete a customer
linear_deleteCustomerNeedDelete a customer need
linear_deleteInitiativeDelete an initiative (move to trash)
linear_deleteIssueRelationDelete an issue relation by ID
linear_deleteProjectUpdateDelete a Linear project update
linear_deleteReleaseNoteDelete a release note
linear_deleteReleasePipelineDelete a release pipeline
linear_deleteSavedViewDelete a Linear saved view (API: deleteCustomView)
linear_deleteWebhookDelete a webhook
linear_duplicateIssueDuplicate an issue
linear_generateOAuthApplicationSetupGenerate an official Linear OAuth application manifest and a human-confirmed setup URL. This does not create the application; an authorized workspace admin or owner must review and submit it in Linear.
linear_generateOAuthAuthorizationUrlGenerate a Linear OAuth authorization URL. Scopes are requested during authorization; this tool does not create, grant, approve, persist, or modify scopes. Actor/scope rules: with actor: "app" the admin scope is rejected, and the agent-only scopes (app:assignable, app:mentionable, customer:read, customer:write, initiative:read, initiative:write) require actor: "app".
linear_getActiveCycleGet the currently active cycle for a team
linear_getAttachmentsGet attachments for an issue
linear_getAuthenticationSessionsGet active authentication sessions
linear_getCommentsGet comments for an issue, project, initiative, update, or document content
linear_getCustomerByIdGet a customer by ID
linear_getCustomerNeedByIdGet a customer need by ID
linear_getCustomerNeedsGet customer needs from Linear
linear_getCustomersGet customers from Linear
linear_getCustomerStatusesGet customer statuses from Linear
linear_getCustomerTiersGet customer tiers from Linear
linear_getCustomFieldsGet the custom field definitions available in the authenticated Linear workspace
linear_getCycleByIdGet details of a specific cycle
linear_getCycleDocumentsGet documents associated with a specific Linear cycle
linear_getCycleIssuesGet issues in a cycle, with PM-friendly filters like state, assignee, labels, and completion status
linear_getCyclesGet a list of all cycles
linear_getCycleStatsGet statistics for a cycle
linear_getDocumentByIdGet details of a specific Linear document
linear_getDocumentContentHistoryGet content history entries for a Linear document content record
linear_getDocumentsGet workspace documents from Linear
linear_getFavoriteViewsGet favorite Linear views, including saved views and predefined views
linear_getInitiativeByIdGet details of a specific initiative by ID
linear_getInitiativeDocumentsGet documents for a specific Linear initiative
linear_getInitiativeProjectsGet all projects associated with an initiative
linear_getInitiativesGet a list of all initiatives from Linear
linear_getInitiativeUpdateByIdGet a specific initiative update by ID
linear_getInitiativeUpdatesGet updates for an initiative
linear_getIntegrationsGet a list of active integrations
linear_getIssueByIdGet a specific issue by ID or identifier (e.g., ABC-123)
linear_getIssueCustomFieldsGet the custom field values that are currently set on a specific issue
linear_getIssueDocumentsGet documents associated with a specific Linear issue
linear_getIssueHistoryGet the history of changes made to an issue
linear_getIssuesGet a list of recent issues from Linear
linear_getIssueTemplateByIdGet details of a specific issue template
linear_getIssueTemplatesGet a list of issue templates
linear_getLabelsGet a list of issue labels from Linear
linear_getManagedOAuthApplicationByIdGet an alpha child OAuth application owned by the calling OAuth application. It cannot retrieve an arbitrary workspace OAuth application.
linear_getManagedOAuthApplicationsList alpha child OAuth applications owned by the calling OAuth application. This is not a workspace-wide OAuth application admin listing and does not work as generic scope CRUD.
linear_getMilestoneByIdGet details of a specific project milestone by ID
linear_getMilestonesGet project milestones from Linear, with PM-friendly filters for project, team, and milestone status
linear_getNotificationsGet notifications for the current user
linear_getOrganizationGet information about the current Linear organization
linear_getOrganizationAuditEventsGet audit events for the organization
linear_getProjectByIdGet details for a specific Linear project by ID
linear_getProjectDocumentsGet documents for a specific Linear project
linear_getProjectIssuesGet issues associated with a project, with PM-friendly filters like state, assignee, labels, cycle, and milestone
linear_getProjectMembersGet members assigned to a project
linear_getProjectsGet a list of projects from Linear
linear_getProjectUpdateByIdGet a specific Linear project update by ID
linear_getProjectUpdatesGet all updates associated with a project
linear_getRateLimitStatusGet the shared MCP-side Linear rate-limit cooldown and retry snapshot
linear_getReleaseByIdGet details of a specific release
linear_getReleaseDocumentsGet documents associated with a specific Linear release
linear_getReleaseNoteByIdGet details of a specific release note
linear_getReleaseNotesGet release notes from Linear
linear_getReleasePipelineByIdGet details of a specific release pipeline
linear_getReleasePipelinesGet release pipelines from Linear
linear_getReleasesGet releases from Linear with optional pipeline and stage filters
linear_getReleaseStagesGet release stages from Linear
linear_getRoadmapByIdGet details of a specific roadmap by ID
linear_getRoadmapsGet a list of roadmaps from Linear
linear_getSavedViewsGet Linear saved views (API: CustomView)
linear_getServerStatusGet MCP Linear server runtime status, counts, and current rate-limit snapshot
linear_getSubscriptionsGet subscriptions for the current user
linear_getTeamDocumentsGet documents associated with a specific Linear team
linear_getTeamLabelsGet labels for a specific team
linear_getTeamMembershipsGet team memberships
linear_getTeamResourcesGet team home resource sections and pinned documents or external links
linear_getTeamsGet a list of teams from Linear
linear_getTeamTemplatesGet templates for a specific team
linear_getUnreadNotificationCountGet count of unread notifications
linear_getUserAuditEventsGet audit events for a specific user
linear_getUsersGet a list of users in the Linear organization
linear_getViewerGet information about the currently authenticated user
linear_getWebhookByIdGet one ordinary workspace webhook by ID.
linear_getWebhooksGet a list of webhooks
linear_getWorkflowStatesGet workflow states for a team
linear_logoutAllSessionsRevoke all sessions
linear_logoutOtherSessionsRevoke all other sessions
linear_logoutSessionRevoke a specific session
linear_markAllNotificationsAsReadMark all notifications as read
linear_markNotificationAsReadMark a notification as read
linear_removeFromFavoritesRemove an entity or favorite entry from the current user's Linear favorites. Provide either favoriteId or entityId.
linear_removeIssueFromCycleRemove an issue from a cycle
linear_removeIssueFromProjectRemove an existing issue from a project
linear_removeIssueFromReleaseRemove an issue from a release
linear_removeIssueLabelRemove a label from an issue in Linear
linear_removeProjectFromInitiativeRemove a project from an initiative
linear_removeProjectMemberRemove a member from a project
linear_removeUserFromTeamRemove a user from a team
linear_rotateManagedOAuthApplicationSecretRotate the client secret of an alpha child app owned by the calling OAuth application. The new one-time secret is exposed in the MCP result and existing client-credentials tokens may be invalidated.
linear_rotateManagedOAuthApplicationWebhookSecretRotate the webhook signing secret of an alpha child app owned by the calling OAuth application. The new one-time secret is exposed in the MCP result.
linear_rotateWebhookSecretRotate an ordinary workspace webhook signing secret.
linear_searchDocumentsSearch Linear documents by term
linear_searchIssuesSearch for issues with various filters
linear_searchReleasesSearch releases by term, version, or pipeline name
linear_setIssuePrioritySet the priority of an issue
linear_subscribeToIssueSubscribe to issue updates
linear_transferIssueTransfer an issue to another team
linear_unarchiveCustomerNeedRestore an archived customer need
linear_unarchiveDocumentRestore a previously archived Linear document
linear_unarchiveInitiativeUnarchive an initiative
linear_unarchiveInitiativeUpdateRestore an archived initiative update
linear_unarchiveProjectUpdateRestore an archived Linear project update
linear_unarchiveReleaseUnarchive a release
linear_unarchiveReleasePipelineUnarchive a release pipeline
linear_unarchiveReleaseStageUnarchive a release stage
linear_updateCommentUpdate an existing comment
linear_updateCustomerUpdate a customer
linear_updateCustomerNeedUpdate a customer need
linear_updateCycleUpdate an existing cycle. Provide id plus at least one other field to change.
linear_updateDocumentUpdate an existing Linear document. Provide id plus at least one other field to change.
linear_updateInitiativeUpdate an existing initiative
linear_updateInitiativeUpdateUpdate an existing initiative update
linear_updateIssueUpdate an existing issue in Linear
linear_updateIssueCustomFieldSet or clear a custom field value on an issue. Pass null as value to clear it.
linear_updateIssueTemplateUpdate an existing issue template. Provide id plus at least one other field to change.
linear_updateManagedOAuthApplicationUpdate metadata, grant capabilities, or webhook configuration for an alpha child app owned by the calling OAuth application. This does not grant or approve token scopes.
linear_updateMilestoneUpdate an existing project milestone in Linear. Provide id plus at least one other field to change.
linear_updateProjectUpdate an existing project in Linear
linear_updateProjectUpdateUpdate an existing project update in Linear
linear_updateReleaseUpdate an existing release. Provide id plus at least one other field to change.
linear_updateReleaseNoteUpdate a release note using either explicit release IDs or a release range. Provide id plus at least one other field to change.
linear_updateReleasePipelineUpdate an existing release pipeline. Provide id plus at least one other field to change.
linear_updateReleaseStageUpdate an existing release stage. Provide id plus at least one other field to change.
linear_updateRoadmapUpdate an existing roadmap
linear_updateSavedViewUpdate a Linear saved view (API: updateCustomView). Provide id plus at least one other field to change.
linear_updateTeamUpdate team settings
linear_updateTeamMembershipUpdate a user's role in a team. Provide id plus at least one other field to change.
linear_updateWebhookUpdate an ordinary workspace webhook.
linear_updateWorkflowStateUpdate a workflow state. Provide id plus at least one other field to change.
BEFORE YOU INSTALL
198 tools when we connected. Some tools depend on credential type: with a Personal API key the managed OAuth application tools register but fail, and workspace webhook tools need an admin-scoped credential, so no single credential unlocks all 198.
LINEAR_OAUTH_ACCESS_TOKEN in your environment
CONTEXT COST
Rated by the size of the 198 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx add-mcp @tacticlaunch/mcp-linear --env LINEAR_API_TOKEN=<YOUR_LINEAR_API_TOKEN>{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y",
"@tacticlaunch/mcp-linear"
],
"env": {
"LINEAR_API_TOKEN": "<YOUR_TOKEN>"
}
}
}
}~/.cursor/mcp.json
{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y",
"@tacticlaunch/mcp-linear"
],
"env": {
"LINEAR_API_TOKEN": "<YOUR_TOKEN>"
}
}
}
}~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y",
"@tacticlaunch/mcp-linear"
],
"env": {
"LINEAR_API_TOKEN": "<YOUR_TOKEN>"
}
}
}
}~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
npm install -g @tacticlaunch/mcp-linear
mcp-linear --token <YOUR_LINEAR_API_TOKEN>export LINEAR_OAUTH_ACCESS_TOKEN=<YOUR_LINEAR_OAUTH_ACCESS_TOKEN>
mcp-linear