---
title: "Reduce MCP Token Usage on Mac: 79% Fewer Tokens, Measured"
description: "What MCP tools cost with and without ToolPiper, measured: 79% fewer input tokens on Claude Sonnet 5.5, and a local model that reaches all 475 tools."
date: 2026-11-02
author: "Ben Racicot"
tags: ["MCP", "Token Optimization", "Local AI", "Claude Code", "Text Generation", "Privacy", "macOS", "Apple Silicon"]
type: "article"
canonical: "https://modelpiper.com/blog/reduce-mcp-token-usage-mac"
---

# Reduce MCP Token Usage on Mac: 79% Fewer Tokens, Measured

> What MCP tools cost with and without ToolPiper, measured: 79% fewer input tokens on Claude Sonnet 5.5, and a local model that reaches all 475 tools.

## TL;DR

MCP tools cost tokens before you type anything. In our test on Claude Sonnet 5.5, ToolPiper cut input tokens by 79% across the same 50 requests, from 2,521,036 to 526,893. On a local model the saving decides whether tools work at all: the full library is 120,657 tokens, more than three and a half times the 32,768-token window ToolPiper gives a local model, and ToolPiper sends a set that fits in 4,096.

Almost nobody on a cloud model worries about what their MCP tools cost. Why would they? The window is 200,000 tokens or more. Providers charge a fraction of the price for the repeated part of a request, and some apps hold tool definitions back until the model asks for them. The bill creeps up on somebody's company card, and the conversation keeps working.

We don't get to be that relaxed. We're trying to make local AI beat the cloud, on your own Mac, and a local model has far less room to give away. Hand it a full tool library and there's no space left for your question. So we've measured this harder than a cloud user ever has a reason to, and the savings turned out to apply to cloud models too.

## What does an MCP tool cost?

An MCP tool costs whatever its definition adds to your request, which is its name, its parameters and usually a description. A client can send that list with every message, so a large tool library is paid for before you type anything.

ToolPiper has 475 tools, so we feel this more than most. Written out in full, with descriptions and parameter docs, they come to 120,657 tokens on a 12B Gemma model, counted by the model's own server. That's before a single word from you.

## Why does a local model care more than a cloud model?

A cloud model pays for tool definitions in money. A local model has no bill, so it pays in room and time, and it runs out of both much sooner.

Room first. ToolPiper gives a local model a 32,768-token window, and our full library is more than three and a half times that. It doesn't squeeze in. It doesn't fit at all, and you never get as far as a question.

Then time. Your hardware has to read tool definitions before the model can answer. The server remembers a list it has already read, so the wait lands on the first message and again whenever the list changes.

A cloud model feels neither. In a 200,000-token window the same library is an expensive habit rather than a wall, and a prompt cache softens the repeat cost. That's a fair reason for cloud users not to think about it. It's also why the people who do think about it tend to be building for local hardware.

## What happens when you hand a local model every tool?

It refuses. With all 475 tools in full, a 12B Gemma model on an M2 Max answered "Turn on dark mode." with an error in under three seconds, because the request came to 120,657 tokens and its window holds 32,768.

The error reads `request (120657 tokens) exceeds the available context size (32768 tokens)`. Same Mac, same model and same sentence from here on, on ToolPiper build 67.

Strip the list to names and parameters, close to what ToolPiper publishes, and all 475 tools come to 30,503 tokens. It fits. The model calls the right tool, 168 seconds after you ask. The server remembers the list, so your next message is quick, but the space doesn't come back. 93% of the window is gone before you've said anything. A 2,384-word document took the request to 33,734 tokens and got the same refusal in under a second.

Now send only the five tools PiperMatch returned for that sentence. 371 tokens. The model makes the same call, `system_display_dark_mode_set`, in 15.6 seconds, and that includes loading the model. The same document came to 3,602 tokens, and the model summarized it in 17.6 seconds.

ToolPiper's own chat sends a wider set than those five, sized to the model's window, so expect more than 371 tokens there. Across 50 test requests on this model, a 25-tool set averaged 6,949 input tokens, which leaves about 25,800 for you.

## How much does ToolPiper save?

In our test on Claude Sonnet 5.5, ToolPiper cut input tokens by 79% across the same 50 requests, from 2,521,036 to 526,893. On a local model it replaces 120,657 tokens of tools with a set that fits in 4,096.

The test was simple. Same model, same 50 requests, two ways of handing over tools. One way sent the whole MCP list, 455 rows at the time. The other sent the 25 tools PiperMatch picked for that request. Anthropic's own usage counts did the scoring, 50,421 input tokens per request against 10,538. At Sonnet 5.5's price of $2 per million input tokens and $10 per million output, the run cost $5.17 against $1.19. We ran it again on November 2, with a larger catalog and a 491-row list. 2,701,152 tokens against 535,542, $5.49 against $1.20, and 80% fewer.

Two details matter. The 25 picked tools carried their full descriptions and the long list didn't, so the every-tool side got its smallest possible form and still used nearly five times the input tokens. Prompt caching was off on both sides, and a cache would narrow the dollar gap on a list that never changes. It wouldn't give a local model any more room.

The worry with a smaller set is that the model misses tools. In both runs it called the expected tool slightly more often from the 25 than from the full list, though individual requests moved in both directions. In a larger check, the right tool landed inside the 25 picked 435 times out of 451, on test requests PiperMatch had never seen. We ran the first test and that check in October 2026 on ToolPiper build 64.

## What does ToolPiper do differently?

ToolPiper saves tokens in three places. It keeps the tool list short, it lets you connect only the tools you need, and PiperMatch picks the tools for each request before a model reads anything.

### A shorter list

ToolPiper's MCP list carries each tool's name and parameters and leaves descriptions out. With descriptions, the same list would be about 484 KB. It's about 121 KB. An agent that needs more calls `request_tools` and gets the full definition back.

### Only the tools you connect

Add `?category=` or `?profile=` to the connect URL and the list shrinks to match. The `automation` profile, which is the core, browser and testing tools, is about 14 KB. The `inference` profile is about 4.2 KB. That's 88% and 96% off the full list, and a filtered agent can still reach everything else through `request_tools`.

### PiperMatch

PiperMatch is ToolPiper's on-device tool matcher. It reads your request on your Mac and picks the tools that apply, and ToolPiper sends only those, within one eighth of the model's window. How it picks is the part we keep to ourselves. The result is the part you can check. [Here's where it runs and how well it does](/mcp#pipermatch).

## Where does each saving apply?

PiperMatch's 79% saving applies where ToolPiper builds the request, in its own chat, voice and automations. Claude Code, Cursor and other MCP clients build their own requests, so they get the short list, filtering and request\_tools.

ToolPiper never sees an outside app's prompt, so it can't pick for that prompt. Those apps fetch the list you connected and decide what to send from there. Claude Code also holds definitions back until its model asks for one. If that's your setup, [trimming the list Claude Code sees](/blog/mcp-tools-token-usage-toolpiper) is where your savings come from.

## How do I check this on my own Mac?

ToolPiper's MCP Tools settings show how many tools and bytes a new connection would receive from your current selection.

Change the selection and the number moves. On a cloud model, your provider's usage report counts the input tokens. ToolPiper runs on Apple Silicon Macs with macOS 26 or later.

[Download ToolPiper](/download) and connect it with `?profile=automation`.

## FAQ

### Does MCP reduce token usage?

No. MCP adds to it, because every tool a server lists takes up context. What reduces it is sending fewer or smaller definitions, which is what ToolPiper's short list, filtering and PiperMatch do.

### How do I reduce MCP token usage in Claude Code?

Connect only what you need. Add a profile to the URL, such as `http://127.0.0.1:9998/mcp?profile=automation`, or exclude tools in ToolPiper's MCP Tools settings. Claude Code also holds tool definitions back until its model asks for them.

### Does prompt caching make tool token usage irrelevant?

On a cloud model it lowers the repeat cost of a list that stays the same, though the definitions still take up the window. A local model with a 32,768-token window can't hold the full library at all, so a cache doesn't help there.

### Does sending fewer tools make the model worse?

Not in our tests. Across two runs on Claude Sonnet 5.5, the model called the expected tool slightly more often from the 25 tools PiperMatch picked than from the full list, on about a fifth of the input tokens.

### Does PiperMatch send my requests anywhere?

No. The matching runs on your Mac. If you use a cloud model, your prompt goes to that provider, and only the tools PiperMatch picked go with it.
