# Using Atlas with Linear in 2026

> Atlas reads and updates Linear issues, cycles, and projects through Linear's official remote MCP server at https://mcp.linear.app/mcp.

Atlas works with Linear through Linear's official remote MCP server at https://mcp.linear.app/mcp. Once connected, Atlas reads and updates Linear issues, cycles, and projects, so it can pull an issue's acceptance criteria into context, branch, implement the change, and move the ticket to In Review without leaving the terminal. Setup is two commands: atlas mcp add linear and atlas mcp auth linear.

## What Atlas plus Linear actually does

Atlas connects to Linear through Linear's official remote MCP server, which lets the terminal agent read and update Linear issues, cycles, and projects directly. In 2026 that removes the browser round trip: Atlas pulls an issue's acceptance criteria into context, branches, implements, and moves the ticket to In Review.

The unit of work in Linear is the issue, and the unit of work for Atlas is the diff. The Linear MCP server is what joins them. Because Atlas can query Linear issues, cycles, and projects, it does not need you to copy an issue description into a prompt. You name the issue, Atlas fetches it, and the acceptance criteria written by whoever filed the ticket become part of the agent's context before a single file is opened. The write direction matters just as much: Atlas can move the ticket to In Review, so the tracker stays honest without a manual status update at the end of every task.

## Adding Linear's remote MCP server to Atlas

Setting up Linear takes two commands in 2026: atlas mcp add linear --url https://mcp.linear.app/mcp registers the server, and atlas mcp auth linear completes Linear's OAuth 2.1 browser flow. Linear supports dynamic client registration, so there is no client ID to paste anywhere.

Dynamic client registration is the reason Linear setup is short. Many remote MCP servers make you create an app in a settings page and copy a client ID and secret into config. Linear does not. Run atlas mcp add linear --url https://mcp.linear.app/mcp, then run atlas mcp auth linear, approve the consent screen in the browser Linear opens, and the token is written for you. The OAuth 2.1 flow is the whole authentication story here, and it is per user, which means the scopes Atlas gets are the scopes your Linear account already has.

## Confirming the Linear connection before you rely on it

Confirm the Linear MCP server is live by running atlas mcp list, which prints the mcp.linear.app URL and its OAuth status. A connected Linear entry is the one prerequisite before you ask Atlas to fetch issue ENG-142 and let it start work on the ticket.

atlas mcp list is the fastest sanity check in the Linear setup. It prints each registered server, and for Linear it prints the mcp.linear.app URL alongside the OAuth status. If the status is not connected, re-run atlas mcp auth linear rather than debugging the tool calls themselves, because a failed fetch of a Linear issue is almost always an expired or never completed OAuth handshake rather than a bad issue key. Checking atlas mcp list first turns a confusing agent failure into a one line fix.

## The daily loop: from Linear issue to reviewable diff

A daily Atlas plus Linear loop starts with one sentence: ask Atlas to fetch issue ENG-142. Atlas reads the acceptance criteria, creates the branch, implements the change, and shows you the diff. Nothing lands in the repository until you approve what the terminal printed.

Naming the issue is the whole prompt. Atlas fetches ENG-142 through the Linear MCP server, reads the description and the acceptance criteria the way a person would, and then works in your repository rather than in a chat window. The branch it creates, the edits it makes, and the diff it prints all happen where your code already lives. Review the diff the same way you would review a teammate's, because the acceptance criteria Atlas is coding against are visible to you in the same terminal buffer.

## Closing the ticket back in Linear

Once the diff is approved, Atlas posts its summary back as a Linear comment and transitions issue ENG-142, so the ticket carries the same explanation the reviewer read in the terminal. The write path runs over the same mcp.linear.app connection, not a second token and not a webhook.

Trackers rot when the code changes and the ticket does not. Having Atlas post its summary back as a Linear comment and transition the issue after the diff is approved keeps the two in step by default rather than by discipline. The order matters: the diff is approved first, then the ticket moves. Atlas is not allowed to declare a Linear issue done on the strength of its own work, because the transition happens after a human accepts the change.

## Keeping branch and push commands gated

Permissions matter because Atlas branches and pushes while working a Linear issue. Keep permission.bash set to ask in atlas.json so branch and push commands still need a keystroke, even when Atlas is driving a ticket end to end. Linear writes and shell writes stay two separate approvals in 2026.

The Linear MCP server governs what Atlas may do inside Linear. permission.bash in atlas.json governs what Atlas may do to your machine and your git remote. Leaving permission.bash set to ask means that even a fully autonomous run against ENG-142 pauses before it creates the branch and pauses again before it pushes. That is the cheapest possible guardrail: you keep the speed of an agent that reads its own tickets, and you keep the veto on every command that touches shared state.

## Setup

1. Add Linear's official remote MCP server with atlas mcp add linear --url https://mcp.linear.app/mcp
2. Run atlas mcp auth linear to complete Linear's OAuth 2.1 browser flow. Linear supports dynamic client registration, so there is no client ID to paste.
3. Confirm the server reports connected with atlas mcp list, which prints the mcp.linear.app URL and its OAuth status.
4. Ask Atlas to fetch issue ENG-142, then let it create the branch, implement the change, and show you the diff.
5. Have Atlas post its summary back as a Linear comment and transition the issue once the diff is approved.
6. Keep permission.bash set to ask in atlas.json so branch and push commands still need a keystroke.

## FAQ

### how to connect Atlas to Linear

Run atlas mcp add linear --url https://mcp.linear.app/mcp to register Linear's official remote MCP server, then run atlas mcp auth linear to complete the OAuth 2.1 browser flow. Verify with atlas mcp list.

### does Linear MCP need a client ID

No. Linear supports dynamic client registration, so there is no client ID to paste. The atlas mcp auth linear browser flow handles OAuth 2.1 registration and token exchange for you.

### can Atlas update Linear issues or only read them

Atlas reads and updates Linear issues, cycles, and projects. It can post a summary back as a Linear comment and transition an issue to In Review once you approve the diff.

### how do I check if the Linear MCP server is connected in Atlas

Run atlas mcp list. It prints the mcp.linear.app URL and its OAuth status. If Linear is not showing as connected, re-run atlas mcp auth linear.

### how do I stop Atlas from pushing a branch without asking

Keep permission.bash set to ask in atlas.json. Branch and push commands then require a keystroke even while Atlas is working a Linear issue end to end.

### can Atlas pull acceptance criteria from a Linear ticket

Yes. Atlas pulls an issue's acceptance criteria into context through the Linear MCP server. Ask it to fetch issue ENG-142 and it reads the description and criteria before touching a file.

### what OAuth version does the Linear MCP server use

Linear's official remote MCP server uses OAuth 2.1. Run atlas mcp auth linear and Atlas completes the browser flow against mcp.linear.app.

---

Canonical HTML: https://runatlas.sh/resources/integrations/linear
Source of truth: aeo_pages row `/resources/integrations/linear` (segment: Integrations) (this file is generated from it, never hand-edited).
Licence: Atlas is proprietary with a free core. It is not open source and there is no public source repository.
