# Replacing Linear MCP with linear-CLI

> Source: <https://thebiglog.com/links/linear-cli-instead-of-linear-mcp>
> Published: 2026-09-21 11:03:13+00:00

# [Replacing Linear MCP with linear-cli](https://github.com/schpet/linear-cli)[#](https://thebiglog.com/links/linear-cli-instead-of-linear-mcp)

/github.com

[Linear](https://linear.app) is one of my favorite software finds of the last few years. I’m not as big of a fan when it comes to their token-hungry MCP server though. I recently switched to [this (unofficial) CLI](https://github.com/schpet/linear-cli) and my rough estimate is that it saves me between 5k to 25k tokens a session.

I asked Claude to sample the differences and it came back with medians based on 71 tickets. Note the unit here is characters:

| Operation | MCP | CLI | MCP ÷ CLI | 
|---|---|---|---|
| Update issue | 3,061 | 211 | 14.5× | 
| Read (no comments) | 3,721 | 2,311 | 1.6× | 
| Read (with comments) | 4,531 | 2,615 | 1.7× | 

The explanation for both differences is simple and comes down to sane defaults and flexibility, both of which the MCP lacks: `get_issue` returns *thirty-one* fields. Those include the issue’s body and status, but also fields like `slaStartedAt`, `slaMediumRiskAt`, `slaHighRiskAt`, `slaBreachesAt`. The last few are always `null` in my workspace. The CLI doesn’t return them by default.

For updates, the CLI returns a simple success message while the MCP’s `update_issue` response is almost as big as the read payload. Neither MCP tools accepts a parameter that makes its response smaller.
