/ Directory / Playground / linear-claude-skill
● Community wrsmith108 ⚡ Instant

linear-claude-skill

by wrsmith108 · wrsmith108/linear-claude-skill

A Claude skill that teaches the agent how to manage Linear issues, projects, and cycles through the Linear MCP and SDK.

Clone this skill into ~/.claude/skills/ and Claude gets a working mental model of Linear — teams, cycles, issue states, GraphQL queries, and common automations. It wraps the Linear MCP (or direct SDK calls) with opinionated patterns so the agent does triage, rollovers, and project reporting without reinventing the API each turn.

Why use it

Key features

Live Demo

What it looks like in practice

linear-claude-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "linear-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/wrsmith108/linear-claude-skill",
        "~/.claude/skills/linear-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "linear-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/wrsmith108/linear-claude-skill",
        "~/.claude/skills/linear-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "linear-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/wrsmith108/linear-claude-skill",
        "~/.claude/skills/linear-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "linear-claude-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/wrsmith108/linear-claude-skill",
        "~/.claude/skills/linear-claude-skill"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "linear-claude-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/wrsmith108/linear-claude-skill",
        "~/.claude/skills/linear-claude-skill"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "linear-claude-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/wrsmith108/linear-claude-skill",
          "~/.claude/skills/linear-claude-skill"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add linear-claude-skill -- git clone https://github.com/wrsmith108/linear-claude-skill ~/.claude/skills/linear-claude-skill

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use linear-claude-skill

How to run a weekly Linear cycle review with Claude

👤 Engineering managers and tech leads on a Linear team ⏱ ~15 min beginner

When to use: Friday afternoon, you need to know what shipped this cycle, what slipped, and what to roll over.

Prerequisites
  • Linear API key or Linear MCP installed — linear.app/settings/api — create a personal API key
  • Skill cloned — git clone https://github.com/wrsmith108/linear-claude-skill ~/.claude/skills/linear-claude-skill
Flow
  1. Ask Claude to pull the current cycle
    Show me every issue in the current cycle for team ENG — grouped by state, with the assignee.✓ Copied
    → Table: Backlog / In Progress / In Review / Done with issue IDs
  2. Diagnose slips
    Which issues are still In Progress or In Review with 2 days left? Who owns them?✓ Copied
    → Per-issue one-liner with risk call-out
  3. Roll over and write the recap
    Roll incomplete issues into the next cycle and draft a Slack recap of what actually shipped.✓ Copied
    → Confirmation of the rollover + paste-ready recap

Outcome: A clean cycle close-out in 10 minutes instead of an hour.

Pitfalls
  • Claude rolls over issues you meant to cancel — Tell it 'list first, confirm, then mutate' — keep a human checkpoint before writes
Combine with: github · slack

Triage the bug inbox with prioritization rationale

👤 On-call engineers, tech leads ⏱ ~25 min intermediate

When to use: Monday morning, the Bugs project has 40 untriaged items and you need to cut the list.

Flow
  1. List untriaged bugs
    Find all issues in project 'Bugs' with no priority and no assignee, created in the last 14 days.✓ Copied
    → Ranked table with titles
  2. Suggest priority + owner
    For each, suggest priority (Urgent/High/Medium/Low) and the most-likely team based on the file paths or labels mentioned.✓ Copied
    → Reasoned suggestions, not blanket Medium
  3. Apply the decisions
    Apply those priorities and assign to the suggested teams. Confirm before each write.✓ Copied
    → Per-issue confirmation

Outcome: A fully triaged bug inbox with traceable reasoning per issue.

Pitfalls
  • Mass-assigning to one person who happens to show up in the last few commits — Limit assignments to team-level, not individual — cheaper to fix later
Combine with: github

Generate a project status update from Linear

👤 PMs and TPMs running multi-cycle projects ⏱ ~15 min beginner

When to use: Before a status review meeting or async update to stakeholders.

Flow
  1. Gather project state
    Summarize project 'Mobile v2.0': issue counts by state, % complete, and what's changed since last Monday.✓ Copied
    → Numeric snapshot + delta
  2. Call out risks
    List the top 3 risks — issues blocked, overdue, or with no owner.✓ Copied
    → Ranked risks with why
  3. Draft the update
    Write a 5-bullet status update: progress, shipped this week, next week, risks, asks.✓ Copied
    → Paste-ready paragraph or bullets

Outcome: A crisp stakeholder update you didn't have to write yourself.

Pitfalls
  • Updates become uniformly 'on track' — Force Claude to pick actual risks from stale issues; don't let it round to green
Combine with: github

Combinations

Pair with other MCPs for X10 leverage

linear-claude-skill + github

Mirror GitHub issue activity into Linear for tracking

For every issue closed in octocat/api this week, mark the matching Linear issue as Done and leave a comment linking to the PR.✓ Copied
linear-claude-skill + sentry

Auto-file Linear bugs from Sentry alerts with proper priority

For every Sentry issue marked 'unresolved' with >100 events today, create a Linear bug in the BACKEND team at High priority.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
cycle-reporting team, cycle selector You need a snapshot of a cycle N Linear API calls (read-only)
issue-triage filter (project, state, labels) Weekly bug or backlog grooming Read-only until user confirms writes
issue-creation title, description, team, priority, labels Filing structured issues from meeting notes or Sentry/GitHub events 1 write per issue
project-status project id Before stakeholder updates Read-only

Cost & Limits

What this costs to run

API quota
Linear API: 1500 requests / hour on personal keys
Tokens per call
200–2000 tokens per report step
Monetary
Free — Linear Free and Standard plans both support API access
Tip
Batch GraphQL fields in one query — saves both rate limit and token budget

Security

Permissions, secrets, blast radius

Minimum scopes: read
Credential storage: Linear API key in env var (LINEAR_API_KEY). Never paste into the prompt.
Data egress: api.linear.app only
Never grant: admin (org-wide write)

Troubleshooting

Common errors and fixes

Skill doesn't activate

Ensure SKILL.md exists at ~/.claude/skills/linear-claude-skill/SKILL.md and restart Claude Code.

Verify: ls ~/.claude/skills/linear-claude-skill/
401 from Linear API

Regenerate the API key in linear.app/settings/api; make sure LINEAR_API_KEY is exported in the shell Claude Code runs in.

Verify: echo $LINEAR_API_KEY | head -c 6
Rate limit hit during a big report

Ask Claude to paginate with fewer fields; or split the report by team.

Alternatives

linear-claude-skill vs others

AlternativeWhen to use it insteadTradeoff
Linear MCP (official)You want a JSON-RPC tool surface rather than a prompt skillMCP gives real tools; skill gives better defaults and reporting prose
Jira skillYour team uses Jira instead of LinearDifferent data model entirely

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills