Sandbox
@prime-radiant-inc/streamlinear

Linear MCP server for Claude Code

streamlinear connects Claude Code to Linear through one MCP tool that dispatches seven actions. It uses startup metadata, fuzzy IDs, and smart defaults so you can find, update, and create issues with less token overhead.

89 stars3 forksTypeScriptUpdated 21d ago
Who it's for

Builders who use Claude Code and want a smaller Linear integration for issue work.

What it delivers

You can manage Linear issues from your agent with far fewer tool-definition tokens and less setup noise.

What it does

Single dispatch tool

Uses one tool with `action` values like `search`, `get`, `update`, `comment`, `create`, `graphql`, and `help`.

Smart issue lookup

`search` defaults to your assigned open issues, and IDs accept Linear keys, URLs, or UUIDs.

Fuzzy updates

State names and assignees are matched loosely, so inputs like `done` or `me` still work.

Raw GraphQL escape hatch

Lets you send custom GraphQL queries for Linear actions the main commands do not cover.

Claude Code plugin bundle

Includes a `.claude-plugin` directory with a plugin manifest and skills bundle.

How to get it

  1. 1When installed as a dependency, the package provides two binaries
    npm install @primeradianthq/streamlinear@1.1.3
    npx streamlinear-cli help
    npx streamlinear

README

streamlinear

A lightweight Linear MCP for Claude Code. One tool, seven actions.

Why?

The standard Linear MCP uses ~17,000 tokens for tool definitions.

streamlinear uses ~500 tokens.

Design Philosophy

Instead of 23 separate tools, streamlinear has one tool with action dispatch:

{"action": "search"}
{"action": "get", "id": "ABC-123"}
{"action": "update", "id": "ABC-123", "state": "Done"}
{"action": "comment", "id": "ABC-123", "body": "Fixed!"}
{"action": "create", "title": "New bug", "team": "ENG"}
{"action": "graphql", "graphql": "query { viewer { name } }"}
{"action": "help"}

Actions

ActionPurpose
searchFind issues (smart defaults: your active issues)
getIssue details by ABC-123, URL, or UUID
updateChange state, priority, assignee
commentAdd comment to issue
createCreate new issue
graphqlRaw GraphQL for anything else
helpFull documentation

Installation

Single Workspace

Add to your .mcp.json:

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "@primeradianthq/streamlinear@1.1.3"],
      "env": {
        "LINEAR_API_TOKEN": "lin_api_xxxxx"
      }
    }
  }
}

Multiple Workspaces

To use streamlinear with multiple Linear workspaces, create separate MCP entries and map each secret to LINEAR_API_TOKEN:

{
  "mcpServers": {
    "linear-personal": {
      "command": "npx",
      "args": ["-y", "@primeradianthq/streamlinear@1.1.3"],
      "env": {
        "LINEAR_API_TOKEN": "${LINEAR_PERSONAL_TOKEN}"
      },
      "envFrom": ["LINEAR_PERSONAL_TOKEN"]
    },
    "linear-work": {
      "command": "npx",
      "args": ["-y", "@primeradianthq/streamlinear@1.1.3"],
      "env": {
        "LINEAR_API_TOKEN": "${LINEAR_WORK_TOKEN}"
      },
      "envFrom": ["LINEAR_WORK_TOKEN"]
    }
  }
}

Installed Package

When installed as a dependency, the package provides two binaries:

npm install @primeradianthq/streamlinear@1.1.3
npx streamlinear-cli help
npx streamlinear

The MCP server requires LINEAR_API_TOKEN at runtime. Consumers such as Scribble may expose their own operator-facing variable and map it to LINEAR_API_TOKEN before starting streamlinear.

Smart Defaults

  • Teams and workflow states shown in tool description (fetched at startup)
  • search with no params → your assigned issues, not completed/canceled
  • IDs accept ABC-123, Linear URLs, or UUIDs
  • State names are fuzzy matched ("done" → "Done", "in prog" → "In Progress")
  • assignee: "me" uses the authenticated user
  • Error messages show valid options when things fail

The GraphQL Escape Valve

For anything not covered by the main actions, use raw GraphQL:

{
  "action": "graphql",
  "graphql": "query { projects { nodes { id name } } }"
}

Use {"action": "help"} for common GraphQL patterns.

License

MIT

Files in the repo

Repository payload18 top-level entries
  • .claude-plugin
  • .github
  • docs
  • mcp
  • scripts
  • .gitignore
  • ABOUT.md
  • AGENTS.md
  • catalog-info.yaml
  • CHANGELOG.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • lefthook.yml
  • LICENSE
  • package-lock.json
  • package.json
  • README.md
  • SECURITY.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k