Skip to content

Connect Claude to GitHub and Linear

New GitHub issues pile up faster than anyone can label them, and the real work is tracked in Linear.

4 stepsModerate
Claude DesktopClaude CodeGitHubLinear

How it connects

Your AI reaches your apps through small connectors called MCP servers.
Your AI
Claude DesktopClaude Code
Connectors
GitHubLinear
Your apps
GitHubLinear

This setup is for maintainers and product teams who receive bug reports in GitHub Issues but plan work in Linear. Claude reads new GitHub issues, proposes labels and a priority, and creates matching Linear issues in the right team once you approve. You end up with a triaged backlog in Linear and a cleaner GitHub issue list.

Set it up

4 steps. Open one for the details.
  1. 1Add the GitHub MCP server

    In GitHub, create a fine-grained token limited to the repositories you want triaged, with read and write access to issues and read access to metadata. Add GitHub's official MCP server to Claude Desktop or Claude Code with that token. Ask Claude to list the ten newest open issues to confirm access.

    Tip: Leave contents and pull request permissions off; triage only needs issues.

  2. 2Add the Linear MCP server

    Add Linear's remote MCP server at mcp.linear.app and complete the OAuth sign-in in your browser. Pick the workspace that holds your product teams. Ask Claude to list your Linear teams and their workflow states so you know it sees the right workspace.

    Tip: If you belong to several workspaces, check the team names before creating anything.

  3. 3Give Claude a triage brief

    Write a short triage brief: your GitHub labels and what each means, how you set priority, and which Linear team owns which area of the product. Save it in a Claude Project, CLAUDE.md, or a prompt you paste each time. Include two or three past issues with the routing you chose as examples.

    Tip: Add a rule for duplicates, such as searching Linear by title before creating a new issue.

  4. 4Review before writing

    Ask Claude for a triage table first: issue, proposed labels, priority, target team and a one-line reason. Correct anything wrong, then approve the label changes and Linear issue creation. Keep tool approvals on for writes until a few rounds go through without corrections.

    Tip: Ask Claude to add the Linear link as a comment on the GitHub issue so reporters can follow progress.

Then just ask

Things to say once it's connected. Click one to copy it.
Ask Claude Desktop…Claude Desktop

Good to know

What you need, what it won't do, and how to keep it safe.
What you need
  • A GitHub account with write access to issues in the target repositories
  • A Linear workspace where you can create issues
  • Claude Desktop or Claude Code
  • A written triage brief with labels, priorities and team ownership
Limits
  • Claude judges priority from the issue text, so vague bug reports get vague triage.
  • Linear issues created this way do not stay in sync with GitHub; status changes in one do not update the other.
  • Large backlogs need batching, since Claude handles a limited number of issues well in one conversation.
Keep it safe
  • Use a fine-grained GitHub token scoped to specific repositories.
  • Keep tool-call approval on for any write action.

Questions

Straight answers before you start
Will Claude close or delete GitHub issues?
Only if the token allows it and you approve the call. For triage, stick to labels, comments and Linear issue creation, and close issues yourself.
Do I need a paid Linear plan?
Linear's MCP server works with the free plan, within the free plan's limits on issues and teams. You need a Claude plan that supports MCP connectors or Claude Code.
Can this run on a schedule?
In Claude Desktop you start triage by hand. If you want it on a timer, you can run Claude Code in a scheduled job, but keep a human review step before writes.
What if Claude routes an issue to the wrong team?
Move it in Linear and add the case to your triage brief as an example. Clear examples fix most routing mistakes.

Tools in this setup

The products involved