OpenRouter: Sonnet 5.5 used 42 times the CLI’s input tokens with GitHub’s default MCP tools
OpenRouter measured the same GitHub task on Claude Sonnet 5.5 in three ways: the gh command-line tool used 1,421 input tokens, a skill 3,315 and GitHub’s MCP server with its 46 default tools 59,417. Both the tool descriptions and the tools’ long responses drove up consumption.
In a blog post published on 11 November, OpenRouter compared how much the same agent task consumes when it is built in three different ways. The models had to find the latest release of the cli/cli repository on GitHub and the three newest open issues labelled ‘bug’.
With every request, the model receives descriptions of the tools available to it, and these are billed as input tokens. An MCP server gives the agent ready-made tools, and in every request the model receives each tool’s name, description and parameter descriptions. In the CLI approach, the model gets only a shell and is told that the gh tool is installed. A skill is an instruction file: the model first sees one line of it and reads the rest only when needed.
Descriptions and responses drive up consumption
The table shows Claude Sonnet 5.5’s input tokens and cost per task. The model answered correctly in every run. With the default tools, GitHub’s MCP server consumed 42 times as many input tokens as the CLI and cost 17 times as much.
| Method | Input tokens | Cost/task |
|---|---|---|
| CLI | 1,421 | $0.0075 |
| Skill | 3,315 | $0.0118 |
| MCP, 2 tools | 23,228 | $0.0552 |
| MCP, 46 default tools | 59,417 | $0.1274 |
| MCP, all 91 tools | 101,351 | $0.2113 |
| MCP, 2 tools, responses truncated to 4,000 characters | 5,357 | $0.0191 |
Source: OpenRouter, median of three runs on 20 October 2026, GitHub MCP server v2.0.2.
The result applies to one server and one task, and OpenRouter urges readers to measure their own server. The model also matters: the descriptions of the 46 tools added 19,436 tokens to the request on Claude Haiku 5.5 but 8,903 on GPT-6 Luna. The skill cost more than the CLI because the instructions, once read, stay in the conversation.
Much of MCP’s consumption came from the tool’s response. The tool that fetches the release returned 42,182 characters, 87 per cent of which described download packages. On Sonnet 5.5, the response took up about 20,400 tokens, more than all 46 descriptions combined. It was sent again with every subsequent request.
Truncating responses to 4,000 characters worked only because the required fields happened to be at the start. OpenRouter recommends requesting only the fields needed: this shrank the issue-list response from 8,336 characters to 714.
Tool search helped only some models
OpenRouter’s Tool Search, now in beta, sends a tool’s description only when the model searches for it. On Claude models, the descriptions of the 46 tools took up only 578 tokens at the start. Over the whole task, Sonnet 5.5’s consumption halved from 59,417 tokens to 30,334. On Haiku 5.5, it rose from 99,319 to 154,623 because the model repeatedly called a tool with invalid arguments. When Tool Search was combined with the 4,000-character truncation, Gemini 3.8 Flash and Haiku 5.5 answered correctly in only one run out of three.
OpenRouter recommends the CLI if one exists and the agent can run commands. Otherwise, it advises restricting MCP to the tools needed, on GitHub’s server with the option --tools=get_latest_release,list_issues or --toolsets=issues,repos.
The guide for the RavenClaude plug-in, published on GitHub, also recommends the CLI and skills first. However, it considers MCP the right choice when the agent needs the current state of another system, such as GitHub. Yet in OpenRouter’s GitHub test, the gh CLI answered correctly with a fraction of MCP’s tokens. The guide is based on community writing and says its own token estimates are indicative.
Tool Search works in OpenRouter’s Responses and Messages APIs. The blog post includes a Python script that readers can use to measure their own MCP server’s consumption.
Read more: How an agent works · Agent map