streamlinear

mcp
Security Audit
Fail
Health Pass
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 81 GitHub stars
Code Fail
  • execSync — Synchronous shell command execution in mcp/src/cli.ts
  • process.env — Environment variable access in mcp/src/cli.ts
  • process.env — Environment variable access in mcp/src/linear-core.ts
  • network request — Outbound network request in mcp/src/linear-core.ts
  • spawnSync — Synchronous process spawning in mcp/test/smoke.test.mjs
  • process.env — Environment variable access in mcp/test/smoke.test.mjs
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

A lightweight Linear MCP server for Claude Code that exposes one tool with action dispatch (search, get, update, comment, create, graphql, help) using ~500 tokens instead of the standard MCP's ~17,000.

README.md

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

Action Purpose
search Find issues (smart defaults: your active issues)
get Issue details by ABC-123, URL, or UUID
update Change state, priority, assignee
comment Add comment to issue
create Create new issue
graphql Raw GraphQL for anything else
help Full documentation

Installation

Single Workspace

Add to your .mcp.json:

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "@primeradianthq/[email protected]"],
      "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/[email protected]"],
      "env": {
        "LINEAR_API_TOKEN": "${LINEAR_PERSONAL_TOKEN}"
      },
      "envFrom": ["LINEAR_PERSONAL_TOKEN"]
    },
    "linear-work": {
      "command": "npx",
      "args": ["-y", "@primeradianthq/[email protected]"],
      "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/[email protected]
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

Reviews (0)

No results found