Skip to content
Back to skills

Linear Api

ASecurity

Manage Linear issues, boards, and cycles. Uses **Linear MCP** for standard operations and **plugin commands** for unique features.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
developmentbashnodeapidocumentation

Works with

  • cursor
  • api
  • mcp

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add ruslan-korneev/claude-plugins --skill linear-api --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Linear Api?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Linear Api
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ruslan-korneev-linear-api/badge)](https://www.skillsdirectory.com/skills/ruslan-korneev-linear-api)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Linear API Skill

Manage Linear issues, boards, and cycles. Uses **Linear MCP** for standard operations and **plugin commands** for unique features.

## When to Use This Skill

Use this skill when the user wants to:
- View a kanban board of current tasks (`/linear:board`)
- Manage sprints/cycles and track velocity (`/linear:cycle`)
- Archive or delete issues (`/linear:delete`)
- Edit or delete comments (`/linear:comment`)
- Auto-enrich issues with code context (issue-enricher agent)

**For standard CRUD operations** (create, get, list, update, search issues, add comments, manage projects/teams), use the **Linear MCP tools** directly — they are provided by the official Linear MCP server.

**Trigger phrases for plugin commands:**
- "What's on the board?" / "Show kanban"
- "Current sprint status" / "Sprint velocity"
- "Archive issue TEAM-123"
- "Edit comment on TEAM-456"

## Architecture: MCP + Plugin

### Linear MCP (standard operations)

The official Linear MCP server (`mcp.linear.app`) provides ~21 tools:
- Issues: `list_issues`, `list_my_issues`, `get_issue`, `create_issue`, `update_issue`, `search`
- Projects: `list_projects`, `get_project`, `create_project`, `update_project`
- Teams: `list_teams`, `get_team`
- Users: `list_users`, `get_user`
- Comments: `list_comments`, `create_comment`
- Documents: `get_document`, `list_documents`, `search_documentation`
- Workflow: `list_issue_statuses`, `get_issue_status`, `list_issue_labels`
- Initiatives, milestones, project updates

### Plugin commands (unique features)

| Command | Feature |
|---------|---------|
| `/linear:board` | ASCII kanban board visualization |
| `/linear:cycle` | Cycle management with velocity stats |
| `/linear:delete` | Archive/delete issues |
| `/linear:comment` | Edit/delete comments (MCP only supports create) |

### issue-enricher agent

Analyzes codebase to auto-suggest issue attributes (description, labels, estimate, priority). Works with both MCP `create_issue` and `/linear:create` flows.

## Configuration

### Required Environment Variables

| Variable | Description | Example |
|----------|-------------|---------|
| `LINEAR_API_KEY` | Personal API Key from Linear Settings > API | `lin_api_XXXXXXXXXXXX` |
| `LINEAR_TEAM` | Default team key | `ENG` |

Set in `~/.claude/settings.local.json`:

```json
{
  "env": {
    "LINEAR_API_KEY": "lin_api_XXXXXXXXXXXX",
    "LINEAR_TEAM": "ENG"
  }
}
```

### Linear MCP Setup

The MCP server is configured in `.mcp.json` at the repository root. It connects automatically when the plugin is installed.

To add manually: `claude mcp add --transport http linear-server https://mcp.linear.app/mcp`

### Smart Defaults (plugin commands)

- **Team**: `$LINEAR_TEAM` environment variable
- **Project**: `basename $(pwd)` — auto-detected from current directory

## API Pattern (for plugin commands)

Plugin commands use Linear's GraphQL API directly:

```bash
curl -s -X POST https://api.linear.app/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: $LINEAR_API_KEY" \
  -d '{"query": "...", "variables": {...}}'
```

### Error Handling

1. Check `LINEAR_API_KEY` is set — show setup instructions if missing
2. Parse response with `jq`
3. Check for errors: `echo "$RESPONSE" | jq -e '.errors' > /dev/null 2>&1`
4. If errors exist, extract message: `echo "$RESPONSE" | jq -r '.errors[0].message'`

### Pagination

Linear uses cursor-based pagination:

```graphql
issues(first: 50, after: $cursor) {
  nodes { ... }
  pageInfo { hasNextPage endCursor }
}
```

Loop while `hasNextPage` is true, passing `endCursor` as `after`.

## References

- [GraphQL Queries](references/graphql-queries.md) — Queries for board, cycles, delete, and comment edit/delete
- [Filtering](references/filtering.md) — Filter syntax and operators
- [Workflow States](references/workflow-states.md) — Status model and transitions

Files in this skill

  • SKILL.md3.8 KB
  • references/filtering.md3.7 KB
  • references/graphql-queries.md3.3 KB
  • references/workflow-states.md2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.