שרת MCP מאומת: Linear

שרת ה-MCP של Linear, הכלים שלו נספרו בריצה חיה על Mac אמיתי.

  • הכלים נספרו2026-08-03macOS 26.3.1
  • חבילה@tacticlaunch/mcp-linear 1.4.1
  • מדווח על עצמוlinear 1.4.1
  • פרוטוקול MCP2025-06-18
  • סביבת ריצהNode v24.18.0

רשימת הכלים למטה היא לכידה חיה מהשרת הרץ; קריאת כלי מאומתת עדיין ממתינה להרשאות.

התשובה הקצרה

אומת לאחרונה 2026-08-03

לשרת ה-MCP של Linear יש שתי צורות, והעמוד הזה בודק את שתיהן. ל-Linear יש שרת רשמי משלה: שרת מתארח בכתובת https://mcp.linear.app/mcp שאפליקציית ה-AI שלכם מתחברת אליו על גבי HTTP. פנינו אליו בלי אישורי גישה והוא ענה 401 שמבקש התחברות דרך OAuth, כפי שמודפס בהמשך, ולכן לא הייתה דרך הוגנת לספור את הכלים שלו בלי לחבר סביבת עבודה אמיתית. כדי לתת לכם רשימת כלים חיה בכל זאת, הרצנו במקום את החבילה הקהילתית המורדת ביותר, ‎@tacticlaunch/mcp-linear, שעוטפת את אותו API של Linear כשרת stdio מקומי: הוא עלה, ספר 198 כלים, והחזיר שגיאת אימות אמיתית בקריאת הכלי היחידה שביצענו עם טוקן ממלא מקום. כל שם כלי וכל תיאור למטה הם הלכידה הזו, מילה במילה. מה שלא עשינו הוא להזדהות, ולכן שום נושא (issue) ב-Linear של אף אחד לא נקרא, נוצר או שונה. [1][3][6]

  • כלים

    198, נספרו בריצה חיה

  • אישורי גישה

    נדרש מפתח API של Linear

  • ערוץ תקשורת

    stdio על ה-Mac שלכם, או HTTP של Linear [6]

  • מתחזק

    tacticlaunch, קהילתי [1][3]

  • הורדות

    4.5 אלף בשבוע האחרון [2]

  • רישיון

    MIT [4]

אימות

איך שרת ה-MCP הזה אומת.

השיטה

הפעלנו את השרת עם npx על גבי stdio פעמיים. בלי שום אישור גישה הוא מסרב לעלות ומדפיס את הבאנר שלמטה, שמפרט את משתני הסביבה שהוא מקבל. עם טוקן ממלא מקום הוא עולה בשקט, השלים את לחיצת היד של MCP, וענה ל-tools/list עם 198 הכלים המופיעים בעמוד הזה, מילה במילה. אחר כך ביצענו קריאת tools/call אמיתית אחת, linear_getViewer, ו-Linear דחתה אותה: הקטע שלמטה הוא התשובה הזו, מילה במילה. קריאות מאומתות ממתינות לאישור גישה שאין לנו, כלומר מפתח API של Linear מסביבת עבודה אמיתית, ולכן שום דבר כאן לא טוען שקריאה מאומתת הצליחה. בנפרד שלחנו initialize ללא הזדהות לנקודת הקצה המתארחת של Linear בכתובת https://mcp.linear.app/mcp ותיעדנו את תשובת ה-401 שלה, שנמצאת בקטע פתרון התקלות למטה.

הודעת הפתיחה של השרת

API token not found in command line args or environment variables
Error starting MCP Linear Error: Linear credentials not found. Provide an API token via --token, LINEAR_API_TOKEN, or LINEAR_API_KEY, or sign in with `mcp-linear auth login`.

קריאת כלי אמיתית אחת

tools/call linear_getViewer {}
Error: Authentication required, not authenticated - You need to authenticate to access this operation.

שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.

כלים

הכלים, כפי שנספרו מהשרת הרץ.

השרת ענה ל-tools/list עם 198 כלים בתאריך 2026-08-03. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.

כלימה הוא עושה
linear_getViewer

Get information about the currently authenticated user

linear_getOrganization

Get information about the current Linear organization

linear_getUsers

Get a list of users in the Linear organization

linear_getLabels

Get a list of issue labels from Linear

linear_getTeams

Get a list of teams from Linear

linear_getWorkflowStatesteamId*includeArchived

Get workflow states for a team

linear_createWorkflowStatename*teamId*type*color*descriptionposition

Create a new workflow state

linear_updateWorkflowStateid*namecolordescriptionposition

Update a workflow state. Provide id plus at least one other field to change.

linear_updateTeamid*namekeydescriptioncoloricontimezoneparentIdprivatevisibility

Update team settings

linear_getTeamMembershipsteamId*limitincludeArchivedorderBy

Get team memberships

linear_createTeamname*keydescriptioncoloricontimezoneparentIdprivatevisibility

Create a new team

linear_archiveTeamid*

Archive a team

linear_addUserToTeamteamId*userId*ownersortOrder

Add a user to a team

linear_removeUserFromTeamteamId*userId*alsoLeaveParentTeams

Remove a user from a team

linear_updateTeamMembershipid*ownersortOrder

Update a user's role in a team. Provide id plus at least one other field to change.

linear_getTeamLabelsteamId*limitincludeArchivedorderBy

Get labels for a specific team

linear_createTeamLabelteamId*name*colordescriptionparentId

Create a new label for a team

linear_getProjects

Get a list of projects from Linear

linear_getProjectByIdid*

Get details for a specific Linear project by ID

linear_createProjectname*descriptioncontentteamIds*statestartDatetargetDateleadIdmemberIdssortOrdericoncolor

Create a new project in Linear

linear_updateProjectid*namedescriptioncontentstatestartDatetargetDateleadIdmemberIdssortOrdericoncolor

Update an existing project in Linear

linear_createProjectUpdateprojectId*body*healthisDiffHidden

Create a new project update for a Linear project

linear_updateProjectUpdateid*bodyhealthisDiffHidden

Update an existing project update in Linear

linear_getProjectUpdateByIdid*

Get a specific Linear project update by ID

linear_getProjectUpdatesprojectId*limit

Get all updates associated with a project

linear_archiveProjectUpdateid*

Archive a Linear project update

linear_unarchiveProjectUpdateid*

Restore an archived Linear project update

linear_deleteProjectUpdateid*

Delete a Linear project update

linear_archiveProjectprojectId*

Archive a project

linear_addIssueToProjectissueId*projectId*

Add an existing issue to a project

linear_removeIssueFromProjectissueId*projectId*

Remove an existing issue from a project

linear_getProjectIssuesprojectId*limitstatesassigneeIdlabelIdscycleIdprojectMilestoneIdincludeCompletedorderBy

Get issues associated with a project, with PM-friendly filters like state, assignee, labels, cycle, and milestone

linear_getProjectMembersprojectId*limitincludeArchivedincludeDisabledorderBy

Get members assigned to a project

linear_addProjectMemberprojectId*userId*

Add a member to a project

linear_removeProjectMemberprojectId*userId*

Remove a member from a project

linear_getRoadmapslimitincludeArchivedorderBy

Get a list of roadmaps from Linear

linear_getRoadmapByIdid*

Get details of a specific roadmap by ID

linear_createRoadmapname*descriptioncolorownerIdsortOrder

Create a new roadmap in Linear

linear_updateRoadmapid*namedescriptioncolorownerIdsortOrder

Update an existing roadmap

linear_archiveRoadmaproadmapId*

Archive a roadmap

linear_getReleasePipelineslimitincludeArchivedorderBy

Get release pipelines from Linear

linear_getReleasePipelineByIdid*

Get details of a specific release pipeline

linear_createReleasePipelinename*teamIds*typeslugIdisProductionincludePathPatterns

Create a new release pipeline

linear_updateReleasePipelineid*nameteamIdstypeslugIdisProductionincludePathPatterns

Update an existing release pipeline. Provide id plus at least one other field to change.

linear_archiveReleasePipelinepipelineId*

Archive a release pipeline

linear_unarchiveReleasePipelinepipelineId*

Unarchive a release pipeline

linear_deleteReleasePipelinepipelineId*

Delete a release pipeline

linear_getReleaseslimitincludeArchivedorderBypipelineIdstageId

Get releases from Linear with optional pipeline and stage filters

linear_getReleaseByIdid*

Get details of a specific release

linear_searchReleasestermlimitincludeArchivedpipelineIdstageId

Search releases by term, version, or pipeline name

linear_getReleaseStageslimitincludeArchivedorderBypipelineId

Get release stages from Linear

linear_createReleaseStagepipelineId*name*color*position*type*frozenid

Create a new release stage in a pipeline

linear_updateReleaseStageid*namecolorpositionfrozen

Update an existing release stage. Provide id plus at least one other field to change.

linear_archiveReleaseStagestageId*

Archive a release stage

linear_unarchiveReleaseStagestageId*

Unarchive a release stage

linear_getReleaseNoteslimitincludeArchivedorderBy

Get release notes from Linear

linear_getReleaseNoteByIdid*

Get details of a specific release note

linear_createReleasepipelineId*name*versiondescriptioncommitShastageIdstartDatetargetDatecreatedAtstartedAtcompletedAt

Create a new release in a release pipeline

linear_updateReleaseid*nameversiondescriptioncommitShapipelineIdstageIdstartDatetargetDatestartedAtcompletedAttrashed

Update an existing release. Provide id plus at least one other field to change.

linear_completeReleasepipelineId*version

Mark a release as completed within a pipeline. The target pipeline must already have a completed release stage configured.

linear_archiveReleasereleaseId*

Archive a release

linear_unarchiveReleasereleaseId*

Unarchive a release

linear_addIssueToReleaseissueId*releaseId*

Add an issue to a release

linear_removeIssueFromReleaseissueId*releaseId*

Remove an issue from a release

linear_createReleaseNotepipelineId*contentreleaseIdsrangeFromReleaseIdrangeToReleaseId

Create a release note using either explicit release IDs or a release range within a pipeline

linear_updateReleaseNoteid*contentreleaseIdsrangeFromReleaseIdrangeToReleaseId

Update a release note using either explicit release IDs or a release range. Provide id plus at least one other field to change.

linear_deleteReleaseNoteid*

Delete a release note

linear_getMilestonesincludeArchivedlimitprojectIdteamIdstatusorderBy

Get project milestones from Linear, with PM-friendly filters for project, team, and milestone status

linear_getMilestoneByIdid*

Get details of a specific project milestone by ID

linear_createMilestonename*projectId*descriptiontargetDatesortOrder

Create a new project milestone in Linear

linear_updateMilestoneid*nameprojectIddescriptiontargetDatesortOrder

Update an existing project milestone in Linear. Provide id plus at least one other field to change.

linear_archiveMilestoneid*

Archive a project milestone

linear_getDocumentslimitincludeArchivedorderByprojectIdinitiativeIdteamIdissueIdreleaseIdcycleIdtitle

Get workspace documents from Linear

linear_getDocumentByIdid*

Get details of a specific Linear document

linear_getProjectDocumentsprojectId*limitincludeArchivedorderBytitle

Get documents for a specific Linear project

linear_getInitiativeDocumentsinitiativeId*limitincludeArchivedorderBytitle

Get documents for a specific Linear initiative

linear_getTeamDocumentsteamId*limitincludeArchivedorderBytitle

Get documents associated with a specific Linear team

linear_getIssueDocumentsissueId*limitincludeArchivedorderBytitle

Get documents associated with a specific Linear issue

linear_getReleaseDocumentsreleaseId*limitincludeArchivedorderBytitle

Get documents associated with a specific Linear release

linear_getCycleDocumentscycleId*limitincludeArchivedorderBytitle

Get documents associated with a specific Linear cycle

linear_getTeamResourcesteamId*

Get team home resource sections and pinned documents or external links

linear_searchDocumentsterm*teamIdincludeCommentslimitincludeArchivedorderBysnippetSize

Search Linear documents by term

linear_getDocumentContentHistoryid*

Get content history entries for a Linear document content record

linear_createDocumenttitle*contenticoncolorprojectIdinitiativeIdteamIdissueIdreleaseIdcycleIdresourceFolderIdlastAppliedTemplateIdsortOrder

Create a new Linear document

linear_updateDocumentid*titlecontenticoncolorhiddenAtprojectIdinitiativeIdteamIdissueIdreleaseIdcycleIdresourceFolderIdlastAppliedTemplateIdsortOrdertrashed

Update an existing Linear document. Provide id plus at least one other field to change.

linear_archiveDocumentid*

Archive (trash) a Linear document

linear_unarchiveDocumentid*

Restore a previously archived Linear document

linear_getRateLimitStatus

Get the shared MCP-side Linear rate-limit cooldown and retry snapshot

linear_getServerStatus

Get MCP Linear server runtime status, counts, and current rate-limit snapshot

linear_generateOAuthApplicationSetupname*developer*developerUrldescriptionimageUrldistributionredirectUris*grantTypeswebhookEnabledwebhookUrlwebhookResourceTypes

Generate 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_generateOAuthAuthorizationUrlclientId*redirectUri*scopes*actorstatepromptConsentcodeChallenge

Generate 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_createOAuthClientCredentialsTokenclientId*clientSecret*scopes*confirmSecretExposure*confirmScopeChangeRisk*

Issue 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_getManagedOAuthApplications

List 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_getManagedOAuthApplicationByIdid*

Get an alpha child OAuth application owned by the calling OAuth application. It cannot retrieve an arbitrary workspace OAuth application.

linear_createManagedOAuthApplicationname*developer*developerUrldescriptionimageUrlredirectUris*grantTypesidempotencyKeywebhookUrlwebhookResourceTypesconfirmSecretExposure*

Create 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_updateManagedOAuthApplicationid*namedeveloperdeveloperUrldescriptionimageUrlredirectUrisgrantTypeswebhookEnabledwebhookUrlwebhookResourceTypes

Update 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_archiveManagedOAuthApplicationid*

Archive an alpha child OAuth application owned by the calling OAuth application. This does not revoke an unrelated authorized application.

linear_rotateManagedOAuthApplicationSecretid*confirmSecretExposure*

Rotate 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_rotateManagedOAuthApplicationWebhookSecretid*confirmSecretExposure*

Rotate 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_getWebhookByIdid*

Get one ordinary workspace webhook by ID.

linear_getWebhooksteamIdlimitincludeArchivedorderBy

Get a list of webhooks

linear_createWebhookurl*resourceTypes*teamIdenabledlabelsecretallPublicTeams

Create a webhook for integration events

linear_updateWebhookid*urllabelenabledresourceTypessecret

Update an ordinary workspace webhook.

linear_rotateWebhookSecretid*confirmSecretExposure*

Rotate an ordinary workspace webhook signing secret.

linear_deleteWebhookid*

Delete a webhook

linear_getAttachmentsissueId*limitincludeArchivedorderBy

Get attachments for an issue

linear_addAttachmentissueId*title*url*subtitleiconUrlmetadatacommentBodygroupBySource

Add an attachment to an issue

linear_getNotificationslimitincludeArchivedorderBy

Get notifications for the current user

linear_markNotificationAsReadid*

Mark a notification as read

linear_getSubscriptionslimitincludeArchivedorderBy

Get subscriptions for the current user

linear_markAllNotificationsAsReadlimit

Mark all notifications as read

linear_getUnreadNotificationCountlimit

Get count of unread notifications

linear_getAuthenticationSessions

Get active authentication sessions

linear_logoutSessionsessionId*

Revoke a specific session

linear_logoutOtherSessions

Revoke all other sessions

linear_logoutAllSessions

Revoke all sessions

linear_getOrganizationAuditEventslimitincludeArchivedorderBy

Get audit events for the organization

linear_getUserAuditEventsuserId*limitincludeArchivedorderBy

Get audit events for a specific user

linear_getIntegrationslimitincludeArchivedorderBy

Get a list of active integrations

linear_getSavedViewslimitincludeArchivedorderBy

Get Linear saved views (API: CustomView)

linear_createSavedViewname*descriptionsharediconcolorteamIdprojectIdownerIdfiltersfilterDataprojectFilterData

Create a Linear saved view (API: createCustomView)

linear_updateSavedViewid*namedescriptionsharediconcolorteamIdprojectIdownerIdfiltersfilterDataprojectFilterData

Update a Linear saved view (API: updateCustomView). Provide id plus at least one other field to change.

linear_deleteSavedViewid*

Delete a Linear saved view (API: deleteCustomView)

linear_getFavoriteViewslimitincludeArchivedorderBy

Get favorite Linear views, including saved views and predefined views

linear_addToFavoritesentityId*

Add an entity to the current user's Linear favorites

linear_removeFromFavoritesfavoriteIdentityId

Remove an entity or favorite entry from the current user's Linear favorites. Provide either favoriteId or entityId.

linear_getCyclesteamIdlimit

Get a list of all cycles

linear_getCycleByIdid*

Get details of a specific cycle

linear_createCycleteamId*startsAt*endsAt*namedescriptioncompletedAt

Create a new cycle

linear_updateCycleid*startsAtendsAtnamedescriptioncompletedAt

Update an existing cycle. Provide id plus at least one other field to change.

linear_completeCycleid*

Mark a cycle as complete

linear_getCycleStatsid*

Get statistics for a cycle

linear_getActiveCycleteamId*

Get the currently active cycle for a team

linear_getCycleIssuescycleId*limitstatesassigneeIdlabelIdsincludeCompletedorderBy

Get issues in a cycle, with PM-friendly filters like state, assignee, labels, and completion status

linear_addIssueToCycleissueId*cycleId*

Add an issue to a cycle

linear_removeIssueFromCycleissueId*cycleId*

Remove an issue from a cycle

linear_getInitiativesincludeArchivedlimit

Get a list of all initiatives from Linear

linear_getInitiativeByIdinitiativeId*includeProjects

Get details of a specific initiative by ID

linear_createInitiativename*descriptioncontentownerIdtargetDatestatusiconcolor

Create a new initiative

linear_updateInitiativeinitiativeId*namedescriptioncontentownerIdtargetDatestatusiconcolor

Update an existing initiative

linear_archiveInitiativeinitiativeId*

Archive an initiative

linear_unarchiveInitiativeinitiativeId*

Unarchive an initiative

linear_deleteInitiativeinitiativeId*

Delete an initiative (move to trash)

linear_getInitiativeProjectsinitiativeId*includeArchived

Get all projects associated with an initiative

linear_getInitiativeUpdateByIdid*

Get a specific initiative update by ID

linear_getInitiativeUpdatesinitiativeId*limit

Get updates for an initiative

linear_createInitiativeUpdateinitiativeId*body*healthisDiffHidden

Create a new initiative update

linear_updateInitiativeUpdateid*bodyhealthisDiffHidden

Update an existing initiative update

linear_archiveInitiativeUpdateid*

Archive an initiative update

linear_unarchiveInitiativeUpdateid*

Restore an archived initiative update

linear_addProjectToInitiativeinitiativeId*projectId*

Add a project to an initiative

linear_removeProjectFromInitiativeinitiativeId*projectId*

Remove a project from an initiative

linear_getCustomerslimitincludeArchivedorderBynamedomainstatusIdtierIdownerId

Get customers from Linear

linear_getCustomerByIdid*

Get a customer by ID

linear_createCustomername*domainsexternalIdslogoUrlmainSourceIdownerIdrevenuesizeslackChannelIdstatusIdtierId

Create a customer

linear_updateCustomerid*namedomainsexternalIdslogoUrlmainSourceIdownerIdrevenuesizeslackChannelIdstatusIdtierId

Update a customer

linear_deleteCustomerid*

Delete a customer

linear_getCustomerNeedslimitincludeArchivedorderBycustomerIdissueIdprojectIdpriority

Get customer needs from Linear

linear_getCustomerNeedByIdid*

Get a customer need by ID

linear_createCustomerNeedattachmentIdattachmentUrlbodycommentIdcreatedAtcustomerExternalIdcustomerIdissueIdpriorityprojectId

Create a customer need linked to an issue or project

linear_createCustomerNeedFromAttachmentattachmentId*customerIdcustomerExternalIdpriority

Create or unarchive a customer need from an existing attachment

linear_updateCustomerNeedid*applyPriorityToRelatedNeedsattachmentUrlbodycustomerExternalIdcustomerIdissueIdpriorityprojectId

Update a customer need

linear_archiveCustomerNeedid*

Archive a customer need

linear_unarchiveCustomerNeedid*

Restore an archived customer need

linear_deleteCustomerNeedid*

Delete a customer need

linear_getCustomerStatuseslimitincludeArchivedorderBy

Get customer statuses from Linear

linear_getCustomerTierslimitincludeArchivedorderBy

Get customer tiers from Linear

linear_getIssueslimit

Get a list of recent issues from Linear

linear_getIssueByIdid*

Get a specific issue by ID or identifier (e.g., ABC-123)

linear_getCustomFields

Get the custom field definitions available in the authenticated Linear workspace

linear_getIssueCustomFieldsissueId*

Get the custom field values that are currently set on a specific issue

linear_searchIssuesqueryteamIdassigneeIdprojectIdstateslimit

Search for issues with various filters

linear_createIssuetitle*descriptionteamId*assigneeIdpriorityprojectIdprojectMilestoneIdcycleIdestimatedueDatelabelIdsparentIdsubscriberIdsstateIdtemplateIdsortOrder

Create a new issue in Linear

linear_updateIssueid*titledescriptionstateIdpriorityprojectIdprojectMilestoneIdassigneeIdcycleIdestimatedueDatelabelIdsaddedLabelIdsremovedLabelIdsparentIdsubscriberIdsteamIdsortOrder

Update an existing issue in Linear

linear_updateIssueCustomFieldissueId*customFieldId*value*

Set or clear a custom field value on an issue. Pass null as value to clear it.

linear_createCommentissueIdprojectIdinitiativeIdprojectUpdateIdinitiativeUpdateIddocumentContentIdpostIdbody*parentIdquotedTextsubscriberIds

Add a comment to an issue, project, initiative, update, document content, or as a threaded reply

linear_updateCommentid*bodyquotedTextresolvingCommentIdresolvingUserIdsubscriberIdsdoNotSubscribeToIssue

Update an existing comment

linear_deleteCommentid*

Delete a comment

linear_addIssueLabelissueId*labelId*

Add a label to an issue in Linear

linear_removeIssueLabelissueId*labelId*

Remove a label from an issue in Linear

linear_getIssueTemplateslimitincludeArchivedorderBy

Get a list of issue templates

linear_getIssueTemplateByIdid*

Get details of a specific issue template

linear_createIssueTemplatename*descriptionteamIdtemplateData*sortOrder

Create a new issue template

linear_updateIssueTemplateid*namedescriptionteamIdtemplateDatasortOrder

Update an existing issue template. Provide id plus at least one other field to change.

linear_createIssueFromTemplateteamId*templateId*titledescriptionpriorityprojectIdprojectMilestoneIdcycleId

Create a new issue from a template

linear_getTeamTemplatesteamId*limitincludeArchivedorderBy

Get templates for a specific team

linear_archiveTemplateid*

Archive an issue template

linear_assignIssueissueId*assigneeId*

Assign an issue to a user

linear_subscribeToIssueissueId*

Subscribe to issue updates

linear_convertIssueToSubtaskissueId*parentIssueId*

Convert an issue to a subtask

linear_createIssueRelationissueId*relatedIssueId*type*

Create relations between issues (blocks, is blocked by, etc.)

linear_deleteIssueRelationid*

Delete an issue relation by ID

linear_archiveIssueissueId*

Archive an issue

linear_setIssuePriorityissueId*priority*

Set the priority of an issue

linear_transferIssueissueId*teamId*

Transfer an issue to another team

linear_duplicateIssueissueId*

Duplicate an issue

linear_getIssueHistoryissueId*limit

Get the history of changes made to an issue

linear_getCommentsissueIdprojectIdinitiativeIdprojectUpdateIdinitiativeUpdateIddocumentContentIdpostIdlimitcursororderBy

Get comments for an issue, project, initiative, update, or document content

פרמטרים המסומנים ב-* הם חובה.

התקנה

הגדרות שעובדות, אחת לכל אפליקציה.

העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.

Claude Desktop

פתחו את הקובץ ‎~/Library/Application Support/Claude/claude_desktop_config.json (בתוך Claude Desktop: Settings, אחר כך Developer, אחר כך Edit Config) והוסיפו:

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": [
        "-y",
        "@tacticlaunch/mcp-linear"
      ],
      "env": {
        "LINEAR_API_TOKEN": "your_linear_api_key"
      }
    }
  }
}

הדביקו את מפתח ה-API שלכם מ-Linear במקום your_linear_api_key, ואז סגרו ופתחו מחדש את Claude Desktop. אפשר גם בלי כל זה: Linear מתעדת הוספה של המחבר Linear מתוך Settings ואז Connectors ב-Claude Desktop, שמחבר אתכם בהתחברות במקום לבקש מפתח. [8][6]

Claude Code

פקודה אחת בטרמינל:

claude mcp add linear -e LINEAR_API_TOKEN=your_linear_api_key -- npx -y @tacticlaunch/mcp-linear

כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ, והדגל ‎-e מגדיר את המפתח בסביבה של אותה פקודה. לשרת המתארח של Linear במקום זאת, Linear מתעדת את הפקודה claude mcp add --transport http linear-server https://mcp.linear.app/mcp, שפותחת התחברות OAuth במקום לקבל מפתח. [9][6]

Cursor

הוסיפו ל-‎~/.cursor/mcp.json עבור כל הפרויקטים, או ל-‎.cursor/mcp.json בתוך פרויקט אחד:

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": [
        "-y",
        "@tacticlaunch/mcp-linear"
      ],
      "env": {
        "LINEAR_API_TOKEN": "your_linear_api_key"
      }
    }
  }
}

Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. Linear גם מציינת התקנה בלחיצה אחת של השרת המתארח שלה מתוך עמוד כלי ה-MCP של Cursor, שמשתמשת בהתחברות OAuth במקום במפתח. [10][6]

Routines

בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. העבירו את הטופס ל-Command (stdio) והזינו:

Name        Linear
Command     npx
Arguments   -y @tacticlaunch/mcp-linear
Environment LINEAR_API_TOKEN=your_linear_api_key

שימו את המפתח בשדה Environment Variables, לא ב-Arguments. לחצו קודם על Test Connection: הוא עונה עם מספר הכלים, 198 עבור השרת הזה. כדאי לדעת לפני שסומכים על המספר הזה: בריצה שלנו השרת הציג את כל 198 הכלים גם עם טוקן מזויף בכוונה, מפני שהוא בודק את המפתח רק כשכלי באמת רץ. בדיקה ירוקה אומרת שהשרת עלה, לא שהמפתח שלכם תקף. [11]

בלי טרמינל

איך מגדירים את שרת ה-MCP‏ Linear בלי טרמינל.

אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם. Routines היא אפליקציית Mac שמריצה שרתי MCP בשבילכם: ממלאים כמה שדות פעם אחת, והכלים של השרת זמינים ל-AI שלכם בצ׳אט ובשגרות מתוזמנות.

  1. 01

    התקינו את Routines

    הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו.

  2. 02

    פתחו את הגדרות ה-MCP

    לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server.

  3. 03

    בחרו Command (stdio)‎

    העבירו את הטופס ל-Command (stdio): השרת הזה הוא פקודה שה-Mac שלכם מריץ, לא כתובת אינטרנט. ל-Linear יש גם שרת משלה בכתובת אינטרנט, אבל הוא מחבר אתכם דרך הדפדפן במקום לקבל מפתח.

  4. 04

    הפיקו מפתח API של Linear

    בלי מפתח השרת הזה בכלל לא עולה, כפי שהריצה שלנו הוכיחה. ב-Linear פתחו Settings, אחר כך Account, אחר כך Security & Access, והפיקו מפתח API חדש. העתיקו אותו מיד ושמרו אותו במקום בטוח: החבילה שהרצנו מזהירה שלא תוכלו לראות אותו שוב. הוא הופק תחת חשבון ה-Linear שלכם, לכן התייחסו אליו כמו לסיסמה.

  5. 05

    מלאו את הטופס, ואז בדקו

    Name: Linear. Command: npx. Arguments: ‎-y @tacticlaunch/mcp-linear. בשדה Environment Variables הוסיפו את LINEAR_API_TOKEN והדביקו את המפתח כערך שלו. לחצו Test Connection: Routines מפעילה את השרת ומדווחת כמה כלים היא מצאה, 198 עבור השרת הזה. אחר כך לחצו Add Server.

  6. 06

    השתמשו בו

    הכלים עובדים בצ׳אט מיד. בקשו קודם את הנושאים הפתוחים שלכם: זו הדרך המהירה לוודא שהמפתח עצמו עובד, כי מפתח שגוי עדיין עובר את בדיקת החיבור ונכשל רק בשאלה האמיתית הראשונה. כדי לתת לשגרה מתוזמנת להשתמש בהם, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.

רעיונות לשגרות

שגרות ששווה לתזמן.

אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.

תקציר ספרינט ליום שני

פרומפט

Every Monday at 9:00, list every Linear issue assigned to me that is still open, group them by project, and write me a short plan for the week naming the three I should finish first.

סריקת נושאים תקועים

פרומפט

Every Friday at 16:00, find the Linear issues on my team that have not moved in 14 days, and write a short list with the assignee, the current state, and the last update on each so I can chase them.

טיוטת הערות גרסה חודשית

פרומפט

On the first of every month at 10:00, read the Linear issues my team completed since the last run and draft release notes grouped into fixes, improvements, and new features, in plain language a customer would understand.

פתרון תקלות

השגיאות שנתקלנו בהן, ומה פתר אותן.

שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.

כל קריאת כלי חוזרת עם בקשה להזדהות

מה רואים

Error: Authentication required, not authenticated - You need to authenticate to access this operation.

הפתרון

השרת עלה, כלומר ההגדרה שלכם תקינה, אבל Linear דחתה את המפתח. זו בדיוק השגיאה שהריצה שלנו הפיקה בכוונה עם טוקן ממלא מקום. ודאו ש-LINEAR_API_TOKEN מכיל מפתח אמיתי שהופק ב-Linear תחת Settings, אחר כך Account, אחר כך Security & Access, שהעתקתם אותו במלואו, ושהמפתח לא בוטל. שימו לב שרשימת הכלים עובדת בכל מקרה: מפתח שגוי מתגלה רק בקריאה האמיתית הראשונה.

השרת יוצא מיד ולא מציג שום כלי

מה רואים

API token not found in command line args or environment variables
Error starting MCP Linear Error: Linear credentials not found. Provide an API token via --token, LINEAR_API_TOKEN, or LINEAR_API_KEY, or sign in with `mcp-linear auth login`.

הפתרון

שום אישור גישה לא הגיע לשרת, ולכן הוא סירב לעלות. בקובץ JSON המפתח שייך לאובייקט ‎"env", לא ל-‎"args"; ב-Routines הוא שייך ל-Environment Variables. ההודעה מפרטת כל משתנה שהשרת מקבל, כך ש-LINEAR_API_TOKEN או LINEAR_API_KEY שניהם מתאימים.

השרת המתארח של Linear עונה 401

מה רואים

www-authenticate: Bearer realm="OAuth", resource_metadata="https://mcp.linear.app/.well-known/oauth-protected-resource/mcp", error="invalid_token", error_description="Missing or invalid access token"
{"error":"invalid_token","error_description":"Missing or invalid access token"}

הפתרון

עובד כמתוכנן, וגרמנו לזה בכוונה: הכתובת https://mcp.linear.app/mcp מסרבת לפונים אנונימיים. זה לא שרת שמגדירים בהדבקת מפתח כברירת מחדל, הוא מצפה שהלקוח שלכם יעביר אתכם התחברות OAuth בדפדפן. השתמשו בלקוח שתומך בתהליך הזה, או השתמשו בשרת ה-stdio המקומי שבעמוד הזה עם מפתח API במקום.

כלי מסרב לארגומנטים שנתתם לו

מה רואים

Error: Invalid arguments for getWorkflowStates

הפתרון

חסר פרמטר חובה. הפקנו את השגיאה הזו בקריאה ל-linear_getWorkflowStates בלי teamId. טבלת הכלים למעלה מסמנת אילו פרמטרים נדרשים, לכן בקשו מהעוזר להביא קודם את אובייקט האב, למשל teams לפני workflow states, ולהעביר את המזהה שהוא מחזיר.

העוזר ממציא כלי שלא קיים

מה רואים

Error: Unknown tool: linear_deleteEverything

הפתרון

השרת דוחה כל שם שאינו בין 198 הכלים שפרסם, וזו התשובה שקיבלנו כשהמצאנו אחד. אם העוזר שלכם ממשיך לחפש כלי שאינו קיים, הפנו אותו לטבלת הכלים למעלה; ברשימה כה ארוכה, מודלים לפעמים מנחשים שם סביר במקום לקרוא את הרשימה.

לקוח ה-MCP לא מצליח להפעיל את השרת בכלל

הפתרון

הפקודה npx שייכת ל-Node.js. אם Node לא מותקן על ה-Mac, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו Node מ-nodejs.org, הפעילו מחדש את לקוח ה-MCP ונסו שוב.

שאלות נפוצות

שאלות שאנשים שואלים.

מה זה שרת ה-MCP של Linear?

זהו גשר שמאפשר לעוזר AI לעבוד בתוך Linear: למצוא נושאים, ליצור ולעדכן אותם, לקרוא פרויקטים ומחזורים ולכתוב תגובות, הכל במילים שהייתם אומרים לעמית לעבודה. יש יותר מאחד. Linear מפעילה שרת רשמי מתארח שאפליקציית ה-AI שלכם מתחברת אליו, והקהילה מפרסמת חבילות שאתם מריצים על ה-Mac שלכם עם מפתח API. העמוד הזה סופר את הקהילתי ובודק את הרשמי. [6][5]

האם ל-Linear יש שרת MCP רשמי?

כן. Linear מתעדת ומארחת אחד בכתובת https://mcp.linear.app/mcp, עם Streamable HTTP והתחברות OAuth 2.1, ולצדו גרסת קריאה בלבד בכתובת https://mcp.linear.app/mcp/readonly. אימתנו ששתי הכתובות חיות: כל אחת ענתה לבקשה הלא מזוהה שלנו ב-401 שמפנה למטא-נתוני ה-OAuth שלה, ובמטא-נתונים האלה מופיעים read ו-write כהרשאות הזמינות. Linear גם מתעדת עמודי התקנה ל-Claude, Cursor, VS Code, Windsurf ו-Zed. [6][7]

מה בדיוק אימתתם, ומה דורש מפתח Linear משלכם?

אימתנו שהשרת עולה, מדבר בפרוטוקול MCP בגרסה 2025-06-18, מדווח על עצמו כ-linear 1.4.1 ומפרסם 198 כלים, ולכדנו את השגיאות המדויקות שהוא מחזיר כשאישור הגישה חסר, שגוי, או שהארגומנטים לא תקינים. לא אימתנו שום תוצאה מאומתת: קריאה או כתיבה של נושא אמיתי דורשת מפתח API של Linear מסביבת עבודה אמיתית, והרצנו הכל עם טוקן ממלא מקום. לכן התייחסו לרשימת הכלים כמוכחת, ולתוצאות של אותם כלים כלא נבדקות כאן.

אילו כלים כלולים בשרת ה-MCP של Linear?

החבילה שהרצנו מפרסמת 198, וזה הרבה עבור שרת MCP: נושאים, תגובות, פרויקטים ועדכוני פרויקט, צוותים וחברויות, מחזורים, יוזמות, מפות דרכים, אבני דרך, גרסאות והערות גרסה, מסמכים, תוויות, webhooks, וקבוצת כלים לניהול אפליקציות OAuth. הטבלה למעלה היא פלט ה-tools/list החי, מילה במילה. היא מתארת את החבילה הזו בלבד. לא הצלחנו לספור את הכלים של השרת המתארח של Linear בלי להתחבר, ולכן לגביו נוכל רק לחזור על התיאור של Linear עצמה: כלים למציאה, יצירה ועדכון של אובייקטים כמו נושאים, פרויקטים ותגובות, ועוד בדרך. [6]

איפה משיגים מפתח API של Linear?

ב-Linear פתחו Settings, אחר כך Account, אחר כך Security & Access, והפיקו מפתח API חדש. העתיקו אותו מיד ושמרו אותו במקום בטוח: החבילה שהרצנו מזהירה שלא תוכלו לראות אותו שוב. זהו מפתח אישי שהופק תחת חשבון ה-Linear שלכם, לכן התייחסו אליו כמו לסיסמה. אם שגרה צריכה רק לקרוא, ל-Linear יש אפשרויות מצומצמות יותר ממפתח אישי מלא: נקודת קצה מתארחת לקריאה בלבד, או טוקן OAuth שמבקש רק את הרשאת read. [6][5]

צריך טרמינל כדי להגדיר אותו?

לא. ב-Routines ממלאים כמה שדות בהגדרות, מדביקים את המפתח בשדה Environment Variables ולוחצים Test Connection; המדריך למעלה מראה כל לחיצה. Claude Desktop דורש עריכה חד-פעמית של קובץ JSON קטן, או הוספה של המחבר של Linear מתוך ההגדרות שלו. רק Claude Code הוא כלי טרמינל מטבעו. [11][6]

אילו אפליקציות יכולות להשתמש בשרת ה-MCP של Linear?

עבור חבילת ה-stdio המקומית, כל לקוח MCP שמסוגל להפעיל פקודה: Claude Desktop, Claude Code, Cursor ו-Routines כולם יכולים, וההגדרה המדויקת לכל אחד נמצאת למעלה. עבור השרת המתארח של Linear נדרש לקוח שיודע לבצע את התחברות ה-OAuth, ו-Linear מתעדת בשמם את Claude, Claude Code, Cursor, Codex, VS Code, Windsurf ו-Zed. [8][9][10][11][6]

מקורות

כל טענה חיצונית, עם קבלה.

כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.

  1. [1]

    npm registry: @tacticlaunch/mcp-linearנקרא בתאריך 2026-08-03

    Latest version 1.4.1, published 2026-07-28; first published 2025-03-23.

  2. [2]

    npm downloads API: last weekנקרא בתאריך 2026-08-03

    4,457 downloads for the week ending 2026-08-01. We checked the 20 Linear MCP packages the npm search returns; the runner-up had 1,236.

  3. [3]

    GitHub: tacticlaunch/mcp-linearנקרא בתאריך 2026-08-03

    144 stars, 34 forks and a push dated 2026-07-28 at access time, per the GitHub API.

  4. [4]

    tacticlaunch/mcp-linear LICENSE.mdנקרא בתאריך 2026-08-03

    MIT License, confirmed by the GitHub license API.

  5. [5]

    @tacticlaunch/mcp-linear READMEנקרא בתאריך 2026-08-03

    Documents LINEAR_API_TOKEN in the env object and the --token flag.

  6. [6]

    Linear Docs: MCP serverנקרא בתאריך 2026-08-03

    Linear's own page: Streamable HTTP at mcp.linear.app/mcp, OAuth 2.1 with dynamic client registration, a /mcp/readonly variant, and per-client setup including the API-key path under Settings, Account, Security & Access.

  7. [7]

    Linear MCP OAuth protected-resource metadataנקרא בתאריך 2026-08-03

    Served 200 to an anonymous request: scopes_supported lists read and write, bearer_methods_supported lists header.

  8. [8]

    modelcontextprotocol.io: Connect to local MCP serversנקרא בתאריך 2026-08-03

    The claude_desktop_config.json shape and where the file lives.

  9. [9]

    Claude Code docs: MCPנקרא בתאריך 2026-08-03

    The claude mcp add syntax, including -e for environment variables.

  10. [10]

    Cursor docs: Model Context Protocolנקרא בתאריך 2026-08-03

    The mcp.json shape and file locations.

  11. [11]

    Routines: Connectorsנקרא בתאריך 2026-08-03

    How Routines runs one-click OAuth connectors and any MCP server.

העמוד הזה מתאר את Linear כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.

מאחורי המדריך הזה

Routines, האפליקציה שמאחורי המדריך הזה, מריצה שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. הפתקים שלכם נשארים קובצי markdown על ה-Mac שלכם, אין חשבון ענן לשלם, והיא עובדת גם בלי אינטרנט. להורדת Routines