What the Linear MCP Server Actually Gives Claude Code
Connect Claude Code to Linear by adding Linear's own hosted MCP server, at https://mcp.linear.app/mcp, and authenticating once through your browser. Once it's connected, Claude Code can search your Linear workspace, pull an issue's full description and comment history as context, and create or update issues, change status, assign people, and leave comments, all from inside the same session where you're already building.
This is a server Linear built and runs themselves, not a community package reverse-engineered against their API. That matters the same way it did for [connecting Claude Code to Notion](/blog/connect-claude-code-to-notion): it's maintained against Linear's actual product, so it keeps working when Linear ships changes instead of quietly breaking. Community alternatives exist too, but the hosted route is the one I'd default to unless you have a specific reason not to.
How to Connect It
The hosted route is the fastest, and it's the one Linear documents as the default.
- In Claude Code, run claude mcp add --transport http linear https://mcp.linear.app/mcp to register the server.
- On first use, Claude Code opens your browser for a Linear OAuth login. Approve it, and the connection is live for that machine going forward, no API key to generate or store.
- Run /mcp inside a Claude Code session to confirm the connection completed and see which Linear tools are now available.
If you'd rather run a narrower, read-only connection, Linear lets you generate an API key with only the Read permission enabled, then point a local MCP server at that key instead of using the hosted OAuth route. That trade gives up write access, so Claude Code can pull issue context but can't create or update anything on your behalf, which is the right call for a shared machine or a client-facing workspace you'd rather not risk.
What This Is Actually Good For: the Ticket-to-Diff Loop
The obvious use is starting a build from the ticket instead of retyping it. Point Claude Code at a Linear issue and it reads the real description and every comment, including the back-and-forth a client or teammate already had about scope, instead of you summarizing that thread into a prompt by hand and losing detail on the way.
I run this as a loop, and inside the club we just call it the Ticket-to-Diff loop: pull the issue, build against exactly what it says, then push the result back into the same issue instead of leaving it stranded in your terminal history. It sounds small, but it's the difference between Linear being a to-do list you check before you code and Linear being the actual system of record for what happened.
- Pull an issue's description and comments as context before scoping a change, so you're building against what the team actually agreed to, not your memory of a standup.
- Move an issue to In Progress when a build session starts and back to a review status when it's ready, so status in Linear matches reality without a separate update.
- Leave a comment with what changed and why, in the same voice you'd use if you'd typed it yourself, so a teammate or client reading the ticket later gets the real story.
Scope It to What Your Own Account Can Already See
Linear's MCP connection doesn't have its own permission model separate from you. It authenticates as your Linear account and inherits exactly what you can already see and edit, team by team. If you can't access a team in Linear's own interface, Claude Code can't reach it through the connection either, and if you can, it can, so the real access-control decision already happened when your workspace admin set up your account.
That makes the scope conversation different from Notion's page-by-page sharing model: there's no separate list of what's shared with the integration to review. Workspace admins can still restrict MCP access at the org level with allowlists if that's a concern, but for most solo builders and small agency teams, the thing to actually check is whether your own Linear seat has access to more teams than the client work in front of you needs.
When Not to Bother With It
Skip it for a one-off build with no Linear presence, or a client who tracks work in a spreadsheet or a shared doc instead. It earns its place once there's a real, actively-updated issue tracker on the other end, where skipping the connection means you'd be retyping ticket context into a prompt every session anyway.
Short, practical drops on skills, MCP, agents, prompts, and more. No spam, unsubscribe anytime.
Frequently asked questions
How do I connect Claude Code to Linear?
Add Linear's official hosted MCP server with claude mcp add --transport http linear https://mcp.linear.app/mcp, then approve the browser OAuth flow that opens on first use. Run /mcp inside a session to confirm the connection and see the available tools.
Do I need a Linear API key to connect Claude Code?
Not for the hosted route, it authenticates through browser OAuth instead. You'd only generate an API key if you want a narrower, read-only connection, in which case Linear lets you create a key with only the Read permission enabled.
Can Claude Code see my entire Linear workspace once connected?
It can see whatever your own Linear account can already see, team by team, no more and no less. The connection inherits your existing permissions rather than getting a separate grant, so a team you can't access in Linear's own interface stays inaccessible through Claude Code too.
Can Claude Code create and update Linear issues, or is it read-only?
The hosted OAuth connection can do both by default, it can read issues and comments and also create issues, update status, assign people, and comment. If you want read-only instead, use a Linear API key with only the Read permission enabled rather than the full OAuth route.
Last reviewed by David Iya on August 27, 2026


