streamlinear
A compact Linear MCP server that packs issue search, edits, comments and raw GraphQL into one tool
Community MCP server for the Linear GraphQL API, covering issues, projects, releases, customers and webhooks
By TacticLaunch TypeScript Local · stdio Productivity
68 popularity score ★ 149 ↓ 84k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs LINEAR_API_TOKEN. Replace each <NAME> with your value.
claude mcp add linear -e LINEAR_API_TOKEN=<LINEAR_API_TOKEN> -- npx -y @tacticlaunch/mcp-linear{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y",
"@tacticlaunch/mcp-linear"
],
"env": {
"LINEAR_API_TOKEN": "<LINEAR_API_TOKEN>"
}
}
}
}{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y",
"@tacticlaunch/mcp-linear"
],
"env": {
"LINEAR_API_TOKEN": "<LINEAR_API_TOKEN>"
}
}
}
}{
"servers": {
"linear": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@tacticlaunch/mcp-linear"
],
"env": {
"LINEAR_API_TOKEN": "<LINEAR_API_TOKEN>"
}
}
}
}[mcp_servers.linear]
command = "npx"
args = ["-y", "@tacticlaunch/mcp-linear"]
[mcp_servers.linear.env]
LINEAR_API_TOKEN = "<LINEAR_API_TOKEN>"gemini mcp add --scope user -e LINEAR_API_TOKEN=<LINEAR_API_TOKEN> linear npx -- -y @tacticlaunch/mcp-linearLINEAR_API_TOKEN |
Required: Linear personal API key. LINEAR_API_KEY works too. Instead, you can use LINEAR_OAUTH_ACCESS_TOKEN, or tokens saved by mcp-linear auth login. |
|---|---|
LINEAR_OAUTH_ACCESS_TOKEN |
Optional: OAuth access token; wins over an API key when both are set; needed for child OAuth app tools. |
MCP_LINEAR_CONFIG_DIR |
Optional: Where auth login stores tokens (default ~/.config/mcp-linear). |
MCP_LINEAR_DEBUG |
Optional: Set to 1 or true for debug logging. |
MCP Linear is a local stdio server from TacticLaunch that drives a Linear workspace through Linear's GraphQL API. It goes well past issue tracking: an assistant can file, assign and re-prioritise issues, comment, and move work between projects, cycles and releases. It can also write project and initiative updates, maintain roadmaps, milestones, documents and saved views, record customers and customer needs, and set up workspace webhooks.
The installed release (1.4.5) registers 198 tools in src/tools/definitions/index.ts, along with read-only MCP resources such as linear://issue/{id} and linear://rate-limit and four prompt templates (summarize-project-status, draft-project-update, triage-issue, summarize-document). Two tools report Linear's rate limit and the server's own health, so you can check before a long planning run.
The server signs in with one Linear credential per process: a personal API key in LINEAR_API_TOKEN (LINEAR_API_KEY is also accepted, per src/utils/config.ts), or an OAuth access token in LINEAR_OAUTH_ACCESS_TOKEN. The README leaves out a third way: `mcp-linear auth login` runs a browser OAuth sign-in with your own Linear OAuth app's client ID and secret. It requests read and write scopes by default and stores the tokens, refreshing them when they expire, so later runs need no token in the config (src/auth/cli.ts, src/index.ts). A set of OAuth tools prepares app manifests and authorization URLs and issues client-credentials tokens. Creating and managing child OAuth applications only works when the server runs on a managing OAuth app's token.
| Runtime | Node.js 20+ |
|---|
Node.js 20 or later (the npx command needs npm). A Linear account and one credential: a personal API key from Settings > Security & access, an OAuth access token, or tokens saved by `mcp-linear auth login`, which needs your own Linear OAuth app's client ID and secret. Workspace webhook tools need admin scope. Child OAuth app tools need a managing OAuth app's token.
Each process uses a single credential. If you need both child OAuth app management under an app-actor token and admin-scoped webhook tools, the README says to run two server entries. With a personal API key, the managed OAuth app tools can't create child apps; they only prepare a manifest and setup URL for an admin. Client-credentials tokens normally expire after 30 days and come with no refresh token. Asking for a different scope set revokes the app's existing app-actor tokens. Webhook URLs must be public HTTPS; loopback, private-network and local hostnames are rejected. TOOLS.md lists further tools, such as metrics, import/export and favourites pinning, only as recommended future work.
Teams that run planning in Linear and want an assistant to do more than read and file issues: release pipelines, initiative updates, customer needs, roadmaps and webhooks are all covered. It runs on your machine with your own key, which suits people who want a local, scriptable setup. It is a community project, not Linear's own. If you'd rather not handle an API key, Linear runs its own hosted server at https://mcp.linear.app/mcp, which we also list. With 198 tools, some clients will want only a subset loaded.
linear_getViewerlinear_getOrganizationlinear_getUserslinear_getTeamslinear_createTeamlinear_addUserToTeamlinear_getWorkflowStateslinear_getIssueslinear_getIssueByIdlinear_searchIssueslinear_createIssuelinear_updateIssuelinear_assignIssuelinear_setIssuePrioritylinear_transferIssuelinear_archiveIssuelinear_createIssueRelationlinear_getIssueHistorylinear_addIssueLabellinear_createCommentlinear_deleteCommentlinear_getCommentslinear_updateIssueCustomFieldlinear_getProjectslinear_createProjectlinear_updateProjectlinear_getProjectIssueslinear_createProjectUpdatelinear_getProjectUpdateslinear_getMilestoneslinear_createMilestonelinear_getCycleslinear_getActiveCyclelinear_getCycleStatslinear_addIssueToCyclelinear_getInitiativeslinear_createInitiativeUpdatelinear_getRoadmapslinear_getReleaseslinear_createReleaselinear_addIssueToReleaselinear_createReleaseNotelinear_getDocumentslinear_searchDocumentslinear_createDocumentlinear_getCustomerslinear_createCustomerNeedlinear_getSavedViewslinear_createIssueFromTemplatelinear_getWebhookslinear_createWebhooklinear_rotateWebhookSecretlinear_addAttachmentlinear_generateOAuthApplicationSetuplinear_createOAuthClientCredentialsTokenlinear_createManagedOAuthApplicationlinear_getNotificationslinear_logoutAllSessionslinear_getOrganizationAuditEventslinear_getRateLimitStatus