The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the MCP Linear listing page.
A Model Context Protocol (MCP) server for the Linear GraphQL API, built for real project-management workflows — not just basic issue CRUD.
MCP Linear bridges AI assistants and Linear by implementing the MCP protocol. With it you can:
See TOOLS.md for the full inventory.
The server exposes MCP resources and prompts in addition to tools, including:
linear://viewer, linear://organization, linear://teams, linear://projects, linear://project/{id}, linear://project/{id}/issues, linear://project/{id}/documents, linear://issue/{id}, linear://document/{id}, linear://roadmap/{id}, linear://milestone/{id}, linear://rate-limitsummarize-project-status, draft-project-update, triage-issue, summarize-documentOnce connected, you can use prompts like:
MCP Linear Integration)Personal API keys support the normal Linear and workspace-webhook tools. They cannot call Linear's alpha managed-child-OAuth-application API because that API requires the caller itself to be an OAuth application. With a personal API key, linear_generateOAuthApplicationSetup still prepares an official manifest and pre-filled Linear setup URL for an administrator to confirm.
To let MCP actually create and manage child OAuth applications, authenticate it with an access token belonging to a Linear OAuth application that is eligible to manage those child applications:
Or pass --oauth-token YOUR_OAUTH_ACCESS_TOKEN. Explicit command-line credentials take precedence over environment variables; when both environment credential types are present, OAuth authentication is selected. See Linear's OAuth documentation and OAuth application manifests.
Each MCP server process uses one Linear credential. If the managing app token uses actor=app (which cannot receive admin) and you also need admin-scoped workspace-webhook tools, configure two MCP server entries: one with the managing OAuth token for child-app operations and one with a workspace administrator's personal API key for workspace webhooks. A user-actor OAuth token carrying admin can cover the webhook side instead.
OAuth scopes are selected when an authorization URL or client-credentials token is requested; they are not mutable fields on an OAuth application. The MCP validates current Linear scopes, prepares authorization URLs, and can issue app-actor tokens with linear_createOAuthClientCredentialsToken. For GitHub-hosted pipelines, enable the client_credentials grant and request the narrowest useful scope, such as issues:create.
Client-credentials tokens normally expire after 30 days and have no refresh token. Linear permits multiple active tokens only while they use the same scope set; requesting a different scope set revokes the application's existing app-actor tokens. The token tool therefore requires both confirmSecretExposure: true and confirmScopeChangeRisk: true.
Creating an OAuth app and rotating OAuth or webhook secrets returns one-time secret material through MCP. Those tools require confirmSecretExposure: true; move returned values directly into a secret manager such as GitHub Actions secrets and do not paste them into source control or logs.
Webhook URLs must be publicly reachable HTTPS endpoints. Validation rejects credentials in URLs and obvious loopback, private-network, link-local, and local-hostname destinations.
add-mcp installs the server into Claude Code, Cursor, Codex, VS Code, Claude Desktop, and many other MCP-aware agents with a single command:
Add -g to install globally instead of into the current project. See the add-mcp docs for the full agent list and flags.
Add the following to your MCP settings file:
~/.cursor/mcp.json~/Library/Application Support/Claude/claude_desktop_config.json~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json~/.config/gomcp/config.yamlPrerequisites:
Run the server with your Linear API token:
Or with a managing OAuth application's access token:
Or set the token in your environment and run without arguments:
The default validation path is:
npm test runs Jest unit tests and an official MCP SDK smoke test against the built stdio server, covering tool, resource, and prompt registration plus host-compatible schema emission.
See DEVELOPMENT.md for local development details.
tacticlaunch/cursor-memory-bank — If you are a developer seeking to enhance your workflow with Cursor, consider giving it a try.
This project is licensed under the MIT License — see the LICENSE file for details.