# Liner Actions MCP and the MCP Tool Router: How Agents Pick from Thousands of Tools

> Liner Actions MCP puts 4 tools in front of 1,100+ apps. We measured 574 data capabilities (540 live) as 12 MCP tools: 16,206 bytes. Costs and setup inside.

- Canonical page: https://everyinfra.com/en/blog/liner-actions-mcp-tool-routing-data-tools
- Published: 2026-11-14T03:32:00+08:00 · Fact-checked: 2026-11-14T00:50:00+08:00

The EveryInfra catalog has 106 platforms and 574 data capabilities, and 540 of them are available. Our remote MCP server puts all of them behind 12 tools. On November 14, 2026, at 00:16 Singapore time, its `tools/list` response was 16,206 bytes.

We also built one tool per capability from the same public catalog. That hypothetical list is 528,989 bytes, about 33 times larger. We estimated tokens with the o200k tokenizer (3,758 against 131,395). Claude counts more tokens than that, so every dollar figure from these estimates is a lower bound. On Sonnet 5.5 without a cache hit, the 574-tool list costs at least about $0.263 per turn. A live `reddit/search` call cost $0.000792, so one turn of tool definitions costs at least as much as about 330 data calls.

Liner Actions MCP takes the same idea further. It shows 4 tools to the model and keeps more than 1,100 apps behind them. Give it the actions, such as a new sheet row or a ticket. Give public data from Reddit, YouTube and Trustpilot to EveryInfra. In our test, five charged data calls cost $0.004307 in total.

> **Key points**
>
> - Liner Actions MCP launched in Korea on September 29, 2026, with an English press release on November 3, 2026.
> - Its server shows 4 tools to the model and keeps 1,100+ apps behind them, with English-only action search.
> - Liner says the MCP and API are free for now, and its pricing page lists no Actions price (read November 14, 2026).
> - Our MCP server puts 574 data capabilities in 12 tools of 16,206 bytes (about 3,758 o200k tokens), while one tool per capability needs 528,989 bytes (about 131,395).
> - Five live charged calls cost $0.004307; at catalog prices, our estimate for a full seven-call sweep is $0.005655.
> - A misspelled action returned `did_you_mean: ["reviews"]` with no charge, and an async Trustpilot job returned 16 reviews in 52 seconds.

![Illustration of a full wall of small drawers from floor to ceiling, each with a different small icon. A round-faced robot stands at a catalog terminal and pulls out one teal drawer from the middle of the wall. All other drawers stay shut.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/img-tool-wall.webp)

With many tools, the model must first find the right drawer in the catalog, then open it.

Earlier this month, a thread on r/mcp asked how many MCP tools an agent can take before it gets confused. It got 21 replies with very different answers ([r/mcp, November 4, 2026](https://www.reddit.com/r/mcp/comments/1xnmicj/how_many_mcp_tools_is_too_many_before_your_agent/)). One person saw wrong picks after 20 to 30 tools. Another saw problems only past a few hundred. A third said overlap between descriptions hurts more than the count.

When you add tools, the model reads more definitions each turn, you pay more, and a wrong pick has a different cost. Liner Actions MCP is one connector for actions in more than a thousand apps. The EveryInfra remote MCP server reads public platform data.

On the Liner side, we read the docs and the press release. We also sent one request without credentials and recorded the answer. We did not sign in with a Liner account, so every step that writes to a sheet or a ticket is a config example. On the EveryInfra side, every number comes from live responses on the test night. EveryInfra has no partnership with Liner.

## What liner actions mcp is: 4 tools in front of 1,100+ apps

Liner is a Korean AI search company. On September 29, 2026, Korean media reported its new Liner Actions MCP ([Digital Today, September 29, 2026](https://www.digitaltoday.co.kr/en/view/108354/liner-launches-liner-actions-mcp-to-connect-1-100-apps-to-ai-agents); [VentureSquare](https://www.venturesquare.net/en/1116726/)). The pitch is simple. You connect an AI agent once, and it can use calendars, Slack, Notion and more than 1,100 other services.

The English press release came out on November 3, 2026 ([VMblog press release, November 3, 2026](https://vmblog.com/news/liner-launches-actions-mcp-connecting-ai-agents-to-more-than-1100-verified-apps-through-a-single-integration/)). Its headline says "more than 1,100 verified apps". The release says Liner called each tool to confirm that it works. Tools load on demand. Liner says it stores no user data, and its logs are de-identified. The MCP server and the Liner Actions API are free for now, in Korean and English.

An analysis piece on November 11, 2026 compared it with one MCP server per app ([Efficiently Connected, November 11, 2026](https://www.efficientlyconnected.com/liner-actions-mcp-agent-integration/)). The first launch was on September 29, and the English release was on November 3.

The Liner Actions MCP page in the developer docs gives more detail ([Liner Actions MCP docs](https://liner.com/developers/docs/actions-mcp)). The server shows four tools. `search_actions` finds actions from a natural-language query, and with no query it lists the available services. `execute_action` runs the action that the model picked. `connect_account` and `complete_connection` link your account in a given app.

The troubleshooting section has three rules that shape how you use it. First, action search works only with English queries. Second, sign-in approval expires after 30 days, and then requests return 401. Third, finishing the browser sign-in is not enough, because the assistant must also confirm the connection.

At 00:15 Singapore time we sent one request to the server with no credentials. It returned `HTTP 401` and `{"error":"unauthorized"}`. The `resource_metadata` value in the response header pointed to protected resource metadata. That document names actions.liner.com as the authorization server, with one scope, `mcp`. This is the discovery flow that the MCP authorization spec requires ([MCP authorization spec, 2026-07-28](https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization); [RFC 9728](https://datatracker.ietf.org/doc/html/rfc9728)).

![Screenshot of the Available tools table on the Liner Actions MCP docs page. It lists search_actions, execute_action, connect_account and complete_connection with descriptions. A line below says action search only works with English queries. Teal boxes mark both parts.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/img-liner-docs-tools.webp)

The four tools in the Liner docs, and the line about English-only queries. [Screenshot of the Liner developer docs, November 14, 2026, Singapore time](https://liner.com/developers/docs/actions-mcp)

Setup depends on the client. In Claude Code, you add an HTTP server with `claude mcp add` at user scope. To remove it, you pass the same `-s` value. In Codex, you run `codex mcp add liner-actions --url …`, which writes to `~/.codex/config.toml`. Then you run `codex mcp login liner-actions` and approve in the browser. Start a new Codex session after that, because a running session does not read the config again.

In ChatGPT, you turn on developer mode under Settings › Security and login. Then you add the MCP server under Plugins and choose OAuth. Liner's docs say this is open to Plus, Pro, Business, Enterprise and Edu. Write actions work only on Business, Enterprise and Edu. OpenAI's own help article also puts custom MCP servers under developer mode ([OpenAI Help: custom MCP servers in ChatGPT](https://help.openai.com/en/articles/12584461-connecting-custom-mcp-servers-in-chatgpt); [OpenAI developer docs: MCP](https://developers.openai.com/codex/mcp)).

On price, the release only says "free for now". It does not say for how long, or if there is a call limit. The [Liner developer pricing](https://liner.com/developers/docs/pricing) page lists the Tools API at $1 per 1,000 requests. The Agent API is $3 per 1,000.

It also adds a 5% platform fee on credits for accounts created from November 10, 2026. It has no row for Actions. In our cost tables, Liner is $0, and we flag it for a check before you rely on it.

Liner offers both an MCP server and an API, and its docs say how to choose. Use MCP when you connect your own agent to your own accounts. Use the API when you build a product where each user connects their own account. The API lets you manage environments, users and keys, and it runs on servers with no browser. Our use case is one person or a small team in Claude Code or ChatGPT, so we use MCP.

| Item | What Liner says | Source and read date |
| --- | --- | --- |
| Name | Liner Actions MCP (plus Liner Actions API) | Press release, November 3, 2026 |
| Launch | Korea, September 29, 2026; English release November 3, 2026 | Digital Today, VMblog |
| Apps | More than 1,100 services, each tested | Press release; MCP docs |
| Server | actions.liner.com/api/v1/mcp, Streamable HTTP, OAuth 2.1 | Docs; 401 without credentials at 00:15 SGT |
| Tools shown | 4: search_actions, execute_action, connect_account, complete_connection | MCP docs |
| Tool choice | Search actions in natural language, English only, then run one | MCP docs |
| Sign-in life | Approval expires after 30 days, then 401 | MCP docs |
| ChatGPT | Developer mode; writes only on Business, Enterprise, Edu | Liner docs |
| Price | MCP and API free for now; no Actions row on pricing page | Release; pricing page read November 14, 2026 |
| Data | No user data stored; logs de-identified | Press release |

## How it picks tools: search first, then a short list

Liner splits tool choice into two steps. In the MCP server, `search_actions` does the first step. The model writes a query such as "append a row to a Google Sheet". The server returns a few candidate actions, and the model picks one to run.

The Actions API docs for developers describe the same flow as explicit steps ([Liner Actions API: use Actions as LLM tools](https://liner.com/developers/docs/actions-api-guides-llm-tools)). You rank candidate actions against the request. You pass only a small shortlist to the model. The docs say it plainly: "Do not send the entire catalog."

The same page has three rules about wrong or unclear calls. Write and destructive actions need the person's confirmation before the first run. If a timeout leaves the result unknown, do not retry automatically, because the API has no published idempotency-key contract. A `needs_connection` reply is not proof that the action did not run, so check the app first. The quick start adds one more limit: the sign-in link from `needs_connection` expires about 15 minutes later ([Liner Actions API quick start](https://liner.com/developers/docs/actions-api-quick-start)).

This is the same pattern as tool search at Anthropic, OpenAI and Microsoft. Only the location is different. Anthropic marks tools with `defer_loading`, and the model calls a search tool with regex or BM25. Each search returns the 3 to 5 most relevant definitions, and one request can hold up to 10,000 tools ([Anthropic tool search docs](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool)).

OpenAI added `tool_search` to the Responses API for gpt-5.4 and later models. Its guide suggests namespaces to group tools, with fewer than 10 functions in each group ([OpenAI tool search guide](https://developers.openai.com/api/docs/guides/tools-tool-search)). Microsoft Foundry Toolbox gives the model two meta tools, `tool_search` and `call_tool`, ranked with BM25. It returns 5 tools by default and 10 at most ([Foundry Toolbox overview](https://learn.microsoft.com/en-us/azure/foundry/agents/concepts/toolbox-overview)). The docs suggest it from 10 to 15 tools up ([Foundry, October 26, 2026](https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/tool-search)).

Here is the difference. In those three, the search runs in the client or the model platform. Each MCP server that you add still sends its full list of definitions. In Liner, the search runs on the server, and the client sees the same 4 tools all the time.

English-only search is one cost of server-side search. A user may ask Claude, in another language, to add some reviews to a sheet. If the model passes that text to `search_actions` as is, the docs say the search finds nothing. Tell the model in the prompt to search for actions in English. [Claude Code's docs](https://code.claude.com/docs/en/mcp) give a related tip to server authors. Tool search reads only the start of each description, so put the search words first.

## More tools: lower accuracy, and every extra definition costs money each turn

More tools cause two problems. One is accuracy, and the other is money. The public numbers on accuracy point the same way.

Anthropic's tool search docs say Claude's selection accuracy drops after 30 to 50 available tools. They suggest on-demand loading from 10 tools or 10K tokens of definitions. Anthropic's engineering post of November 24, 2025 gave two test results ([Anthropic: advanced tool use](https://www.anthropic.com/research/advanced-tool-use)). Opus 4 went from 49% to 74% with tool search. Opus 4.5 went from 79.5% to 88.1%.

Research papers show similar gains. RAG-MCP retrieves candidate tools first, and correct picks rose from 13.62% to 43.13% with less than half the prompt tokens ([RAG-MCP, arXiv 2505.03275](https://arxiv.org/abs/2505.03275)). LiveMCPBench tested 12 models on 70 servers and 527 tools ([LiveMCPBench, arXiv 2508.01780](https://arxiv.org/abs/2508.01780)). Claude-Sonnet-4 reached a 78.95% task success rate, and most models scored 30% to 50%. About half of the failures came from not finding the right tool.

| Source | Setup | Before | After |
| --- | --- | --- | --- |
| RAG-MCP paper (arXiv 2505.03275) | Retrieve candidate tools first | 13.62% correct picks | 43.13% correct picks |
| Anthropic engineering post | Opus 4 with tool search | 49% | 74% |
| Anthropic engineering post | Opus 4.5 with tool search | 79.5% | 88.1% |
| LiveMCPBench (arXiv 2508.01780) | 70 servers, 527 tools, 12 models | Most models 30–50% | Claude-Sonnet-4 78.95% |

![Horizontal bar chart with three before-and-after pairs. RAG-MCP paper: 13.62% to 43.13%. Anthropic Opus 4 with tool search: 49% to 74%. Opus 4.5: 79.5% to 88.1%. Gray is all tools given up front, teal is retrieval or tool search first. A note says the numbers are self-reported with different methods, so compare only within a row.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/fig-05-accuracy-bar.en.light.svg)

Forum reports match these numbers and add detail. In the November 4 thread on r/mcp, one person said there is no fixed number, but wrong picks get common past 20 to 30 tools. Overlapping descriptions hurt more than the raw count. Another person runs 9 or 10 tools per server with no problem. The day they added a second file-reading tool, the agent started to pick the wrong one.

A third reply put the limit at "a few hundred in one list". Past that point, the model picked by name similarity, not by the job. Grouping tools by area and loading only one group helped more than cutting the count.

Other threads add more data. On November 12, 2026, one person pulled `tools/list` from 50 public MCP servers. In 23 of them, at least a third of the text was one schema block, repeated on every tool ([r/mcp, November 12, 2026](https://www.reddit.com/r/mcp/comments/1xujtxy/a_lot_of_heavy_mcp_tool_lists_are_the_same_schema/)).

We used EveryInfra `reddit/search` with the query "too many MCP tools" and got 9 posts. We used `youtube/search` on the same topic and got 10 videos. Of these 19 results, 16 came out in the last 7 weeks, and the week of November 9 had the most, with 5.

The most-watched video came out on October 6, 2026, with the title "Too many MCP tools? Anthropic found a solution." It had 37,239 views when we read it ([YouTube](https://www.youtube.com/watch?v=g87DYmwbzuo)). In its comments, people asked how tool search works with caching. One person said that picking the tool is also an uncertain model step. Another said that tool registries already do the same thing.

![Stacked column chart of Reddit posts and YouTube videos per week. Week of Sep 28: 0. Oct 5: 1. Oct 12: 1. Oct 19: 3. Oct 26: 4. Nov 2: 2. Nov 9: 5. Teal is Reddit, gray is YouTube.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/fig-06-discussion-timeline-chart.en.light.svg)

Anthropic's tool use docs say that names, descriptions and schemas in the `tools` parameter count as input tokens. When you send tools, the API also adds a special system prompt ([Claude tool use overview](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview)). The model reads these definitions again on every turn. So the cost of definitions is the cost per turn times the number of turns.

Anthropic's engineering post used an example with 5 servers and 58 tools, about 55,000 tokens of definitions. Internally, they saw 134,000 tokens before they optimized. With tool search, the tool-related tokens for a whole session fell to about 8,700. Compare our numbers. EveryInfra's 12 tools are about 3,758 o200k tokens, less than one fourteenth of Anthropic's 58-tool example. Our hypothetical 574 tools are about 131,395 tokens, the same scale as the 134,000 tokens that Anthropic saw.

## How much context the definitions use: 12 tools, 16,206 bytes

The EveryInfra remote MCP server is at [api.everyinfra.com/mcp](https://api.everyinfra.com/mcp).

We read `tools/list` once with our key at 00:16 Singapore time. We wrote each tool's JSON in compact form, measured the bytes, and counted tokens with tiktoken using two encodings ([tiktoken](https://github.com/openai/tiktoken)). The result was 16,206 bytes: about 3,758 tokens with o200k and 3,728 with cl100k. That is about 313 tokens per tool, or one token per 4.3 bytes, close to the "about 4 bytes per token" rule in the tiktoken README.

The server also sends usage instructions during the handshake, 3,993 characters or about 987 tokens. Claude Code's docs say it reads only the first 4,096 characters of server instructions and of each tool description that loads up front. Before v2.1.296 the limit was 2,048. Older Claude Code versions would cut our instructions in half.

The instructions and the tool definitions come to 20,218 bytes, about 4,745 o200k tokens. When a request has tools, the API also adds a tool use system prompt of 286 tokens on Sonnet 5.5. A session with only EveryInfra reads this amount on every turn.

![Screenshot. Left: the live tools/list response from the EveryInfra MCP server with 12 tool names that start with everyinfra_. Right: a tools/call response for a misspelled action, with error code unknown_capability, did_you_mean reviews, and a next step that says Nothing was charged. Teal boxes mark both parts.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/img-mcp-response.webp)

Left: the 12 tools read at 00:16. Right: the reply to a misspelled capability name at 00:25. [Screenshot of live EveryInfra MCP responses, November 14, 2026, Singapore time](https://api.everyinfra.com/mcp)

Four of the 12 tools read data directly. `everyinfra_list_capabilities` reads the catalog. `everyinfra_call_api` calls any capability. `everyinfra_get_job` gets async results. `everyinfra_search` runs web search. The other eight handle the account, call history, top-up links, support tickets and captcha work.

Description length sets the size. The ticket tool is the largest at 661 tokens, because it must say when to open a ticket and which fields to send. The top-up link tool is the smallest at 134 tokens. The four data tools come to 5,825 bytes, about 1,307 o200k tokens, or 36% of the 12 tools by bytes. If your client lets you turn tools on one by one, use only these four. Then the fixed load per turn falls by about two thirds.

| Tool | Bytes | o200k tokens | Purpose |
| --- | --- | --- | --- |
| everyinfra_list_capabilities | 797 | 172 | Read the catalog: platforms, actions, params |
| everyinfra_call_api | 1,657 | 392 | Call any data capability |
| everyinfra_get_job | 777 | 170 | Get async job results |
| everyinfra_search | 2,594 | 573 | Web and news search |
| everyinfra_get_account | 946 | 240 | Balance and account status |
| everyinfra_list_requests | 1,204 | 270 | Call history and refunds |
| everyinfra_get_topup_link | 578 | 134 | Top-up link |
| everyinfra_create_ticket | 2,885 | 661 | Open a ticket |
| everyinfra_get_ticket | 972 | 215 | Read a ticket |
| 2 captcha tools | 2,468 | 628 | List types, submit a task |
| 1 other tool | 1,315 | 303 | Not used here |
| Total, 12 tools | 16,206 | 3,758 | Read at 00:16 Singapore time |

You can repeat these numbers on your own machine with the script below. A `tools/list` call has no charge. The tiktoken count is an estimate, and Claude's tokenizer is different. The Claude pricing page says the tokenizer in Claude 4.7 and later models gives about 30% more tokens for the same text. When a request has tools, the API also adds a tool use system prompt, 286 tokens on Sonnet 5.5 ([Claude pricing](https://platform.claude.com/docs/en/about-claude/pricing)).

So every dollar figure in this article that comes from an o200k estimate is a lower bound. For an exact count, send the same tool list to the count_tokens endpoint ([Claude token counting docs](https://platform.claude.com/docs/en/build-with-claude/token-counting)).

```bash
curl -s https://api.everyinfra.com/mcp \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' > tools.json

uv run --with tiktoken python3 - <<'PY'
import json, tiktoken
tools = json.load(open("tools.json"))["result"]["tools"]
enc = tiktoken.get_encoding("o200k_base")
total_b = total_t = 0
for t in tools:
    s = json.dumps(t, ensure_ascii=False, separators=(",", ":"))
    b, n = len(s.encode()), len(enc.encode(s))
    total_b += b; total_t += n
    print(f"{t['name']:<34}{b:>7}{n:>6}")
print("total", len(tools), total_b, total_t)
PY
```

Now compare it with a server that has one MCP tool per capability. We took the name, description and parameters of each capability from the public catalog at [api.everyinfra.com/api/v1/social/catalog](https://api.everyinfra.com/api/v1/social/catalog). That includes parameter descriptions, allowed values and defaults. The 574 tool definitions came to 528,989 bytes, about 131,395 o200k tokens.

The median tool was 185 tokens, the 90th percentile 374, and the largest 1,281. The smallest possible form keeps only tool names and parameter types. It still needs 109,086 bytes, about 24,811 tokens. Both are hypothetical lists that we built, not the reply of a real server. They show the scale: by bytes, one tool per capability is about 33 times larger than our 12 tools (about 35 times by o200k tokens). By bytes, the smallest form is still about 6.7 times larger, and with no descriptions the model has less to go on.

Two details show how uncertain the token estimates are. First, a different tokenizer gives a different count. For our 12 real tools, cl100k gives 3,728 and o200k gives 3,758, almost the same. For the 574 hypothetical tools, cl100k gives 146,004, 11% more than o200k, because those tools carry many parameter descriptions and allowed values. Claude uses a third tokenizer, so we treat bytes as the hard number and tokens and dollars as estimates.

Second, toolsets do not always save much. The 10 platforms with the most capabilities hold 185 of the 574, or 32%. Douyin alone has 38, TikTok 24 and X 21. At the median of 185 tokens per tool, a Douyin group alone is about 7,000 tokens, more than all 12 EveryInfra tools today. Groups make the list smaller, but they are not equal in size. A large platform group still needs short descriptions and enum parameters.

![Horizontal bar chart of tokens used by tool definitions in context. EveryInfra MCP, the real 12 tools: 3,758, in teal. Hypothetical 574 tools with names and types only: 24,811. Anthropic example with 5 servers and 58 tools: about 55,000. Hypothetical 574 tools with catalog descriptions: 131,395. Anthropic internal before optimizing: 134,000.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/fig-01-tool-defs-bar.en.light.svg)

## Cost per turn: definitions can cost more than the data

To turn tokens into money, we used the Claude pricing page as read on November 14, 2026 ([Claude pricing](https://platform.claude.com/docs/en/about-claude/pricing)). Sonnet 5.5 input is $2 per million tokens, and a cache hit is $0.10. Opus 5.5 input is $4, and a cache hit is $0.20. Haiku 5.5 input is $0.10 with a $0.01 cache hit up to 100K tokens per prompt. Above that line, the prices are $0.50 and $0.05. We saved a copy of the page on the same day.

The token counts below are o200k estimates. Claude counts more, so each dollar figure is a lower bound. On Sonnet 5.5, our real 12 tools cost at least about $0.0075 per turn with no cache. With a cache hit, they cost at least about $0.00038. The hypothetical 574 tools cost at least about $0.263 per turn with no cache, and at least about $0.013 with a cache hit.

For comparison, the live `reddit/search` call at 00:18 cost $0.000792. With one tool per capability and no cache, each turn of definitions costs at least as much as about 330 `reddit/search` calls.

![Log-scale horizontal bar chart. One live reddit/search call: $0.000792, in teal. 12 tool definitions with cache hit: $0.000376. 12 tool definitions without cache: $0.0075. Hypothetical 574 tools with cache hit: $0.0131. Without cache: $0.263. Definition costs are o200k estimates and lower bounds.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/fig-03-turn-cost-bar.en.light.svg)

A different model changes the gap in step with the price. Opus 5.5 input costs twice as much as Sonnet 5.5, so the hypothetical 574 tools cost at least about $0.526 per turn with no cache. Haiku 5.5 is much cheaper, but 131,395 tokens go past its 100K line. The input price jumps from $0.10 to $0.50, so one turn costs at least about $0.066. That is still at least the price of 80 data calls. The smallest form, about 24,811 tokens, stays under the 100K line and costs at least about $0.0025 per turn.

Our 12 tools on Haiku 5.5 cost about $0.00004 per turn with a cache hit, also a lower bound.

Prompt caching removes most of the cost, but it has conditions. Anthropic's cache matches on the prefix, and tool definitions sit at the start. If the tool list does not change by a single byte, each later turn pays the cache price ([Claude tool use with prompt caching](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching)).

The 2026-07-28 MCP spec says servers should return `tools/list` in a stable order to improve prompt cache hits ([MCP spec: tools](https://modelcontextprotocol.io/specification/2026-07-28/server/tools)). Tool search adds new tools after the cached prefix, so the prefix stays the same. A video on tool search from October 18, 2026 made this point several times ([YouTube, October 18, 2026](https://www.youtube.com/watch?v=4QuXrXoMVtM)). The author gave a model 4 MCP servers and asked it to save one file. Most of the input was tool definitions. Tool search cut the input by more than a third, but with a few small tools it cost more, because of the extra search turn.

The spec also changes on a fixed schedule now. On November 11, 2026, the [MCP blog](https://blog.modelcontextprotocol.io/posts/mcp-release-cycle/) announced a new release cycle, and the next spec is set for 2027-03-30 ([SEP-3398](https://modelcontextprotocol.io/seps/3398-release-cycle-updates)). On the same day, the Google Open Source blog wrote about tool bloat and progressive disclosure ([Google Open Source blog, November 11, 2026](https://opensource.googleblog.com/2026/11/scaling-ai-agents-open-standards-mcp-aaif.html)).

## Four tiers, from all tools up front to an mcp tool router

The public thresholds fall into four tiers. Below 10 tools, with small definitions, send them all to the model. With cache hits, each turn costs very little.

From 10 tools or 10K tokens, Anthropic suggests tool search. Claude Code turns it on by default. It loads only tool names and server instructions when a session starts ([Claude Code MCP docs](https://code.claude.com/docs/en/mcp); [Agent SDK tool search](https://code.claude.com/docs/en/agent-sdk/tool-search)). With `ENABLE_TOOL_SEARCH=auto`, Claude Code loads all tools up front while their definitions use less than 10% of the context window. Above that line, it defers them.

From tens to hundreds of tools, server authors should group or merge tools. The GitHub MCP server has a `--toolsets` flag. Its README says that enabling only the toolsets you need helps the model choose and cuts context size ([GitHub MCP Server](https://github.com/github/github-mcp-server)). EveryInfra puts 574 capabilities behind `everyinfra_call_api`, with the capability name as a parameter. The model reads the catalog first, then calls.

At thousands of tools, only one shape is left: search plus execute. Liner shows 4 tools for more than 1,100 apps. Uber's [engineering blog](https://www.uber.com/us/en/blog/designing-mcp-gateway/) of October 1, 2026 describes an internal MCP gateway. Agents find its 5,000+ tools on demand.

| ENABLE_TOOL_SEARCH value | What Claude Code does |
| --- | --- |
| Not set | All MCP tools deferred and loaded on demand |
| true | Same as not set |
| auto | Load all tools up front while definitions use less than 10% of the context window |
| auto:N | Same as auto, with N% as the line |
| false | Load all MCP tools up front, no deferral |

![Four boxes that rise like steps. Under 10: give the model all tools. From 10 to 30: tool search or deferred loading, with Anthropic at 10 or more tools or over 10K tokens, and Foundry at 10 to 15 or more. Tens to hundreds: toolsets or a few meta tools, such as GitHub MCP toolsets and EveryInfra with 574 capabilities in 12 tools. Thousands: only search and execute tools, such as Liner with 4 tools for 1,100+ apps and Uber with 5,000+ tools found on demand.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/fig-07-tool-count-ladder-flow.en.light.svg)

"mcp tool router" appears in search suggestions, and it means tiers three and four. A router sits between the model and hundreds or thousands of tools, and it sends each request to the right one. There are several ways to build it.

Composio Tool Router is a hosted service that searches, signs in and runs tools for the agent ([Composio docs](https://docs.composio.dev/docs)). Zapier MCP also gives the agent discovery tools. Its usage docs say each tool call counts as 2 tasks, and failed calls do not count ([Zapier MCP usage docs](https://docs.zapier.com/mcp/overview/usage)). The free plan has 100 tasks per month, and the paid Professional plan starts at $19.99 per month ([Zapier pricing, read November 14, 2026](https://zapier.com/pricing)).

In research, JSPLIT picks tool groups from a taxonomy first ([JSPLIT, arXiv 2510.14537](https://arxiv.org/abs/2510.14537)). Dynamic ReAct loads tools during the run and reports up to 50% less tool loading ([Dynamic ReAct, arXiv 2509.20386](https://arxiv.org/abs/2509.20386)). The Anthropic Messages API can also connect to remote MCP servers directly. You set `enabled` and `defer_loading` per tool, which is a small router inside the request ([Claude MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector)).

The cost of capability-as-parameter is this: the model cannot see all 574 capabilities from the tool names. It must call `everyinfra_list_capabilities` first, or guess a name from the server instructions. A catalog lookup adds a turn, and a wrong guess returns `unknown_capability`. The catalog is free. A wrong name has no charge and returns the allowed values and the closest match.

| Approach | Who uses it | Tools the client sees | How it picks | Public price (read date) |
| --- | --- | --- | --- | --- |
| Server-side search + execute | Liner Actions MCP | 4 | English natural-language search | Free for now, no price listed (Nov 14, 2026) |
| Discovery tools | Zapier MCP | A few | Search, fill params, run | 2 tasks per successful call; free plan 100 tasks per month (Nov 14, 2026) |
| Hosted router | Composio Tool Router | A few | Hosted search and sign-in | See its pricing page |
| Platform tool search | Anthropic, OpenAI, Foundry | 3–10 on demand | Regex or BM25 | Model token prices |
| Toolsets | GitHub MCP | The groups you turn on | You pick groups | Free, open source |
| Capability as parameter | EveryInfra MCP | 12 | Read catalog, then name it | price_usd per call |

## One action connector plus one data MCP server

With both servers in one client, the split is natural. Liner handles actions: a new row in Google Sheets, a ticket in Linear or Jira, a Slack message. EveryInfra reads public platform data: Reddit threads, YouTube comments, Trustpilot reviews. There are three reasons for this split.

First, the two servers add up to only 16 tools. EveryInfra uses 16,206 bytes (about 3,758 o200k tokens), and Liner shows only 4 tools. Claude Code's default tool search also loads them only when needed.

Second, the two sides fail in different ways. A failed read has no side effects, so you can send it again, and EveryInfra does not charge for failures. A failed or unclear write is different, and Liner's docs say not to retry it blindly.

Third, data calls should have a clear price per call. Each EveryInfra response includes `charged_usd`, and `everyinfra_list_requests` shows the call history with refunds.

![Flow diagram. At the top: Claude, ChatGPT or Codex with two MCP servers in one chat. Left, the data lane (live calls): EveryInfra MCP with 12 tools and about 3,758 tokens, then everyinfra_call_api with reddit/search and youtube/comments, then trustpilot/reviews for 1 to 2 star reviews as an async job, then keep five fields. Right, the action lane (config example, dashed boxes): Liner Actions MCP with 4 tools and 1,100+ apps behind them, then search_actions with an English query, then execute_action where writes wait for approval, then one sheet row or one ticket. An arrow goes from the last left box to search_actions on the right.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/fig-02-two-lane-flow.en.light.svg)

Here is the config for both servers in Claude Code. We made live calls to EveryInfra with this URL and key. The Liner part follows its docs, and we did not run it with a Liner account, so it is a config example. Get an EveryInfra key from the [quick start](/en/docs#quickstart), and see other clients on the [MCP server page](/en/mcp-server).

```bash
# Data: EveryInfra remote MCP (called live)
claude mcp add --transport http everyinfra https://api.everyinfra.com/mcp \
  --header "Authorization: Bearer $EVERYINFRA_API_KEY"

# Actions: Liner Actions MCP (config example, from Liner docs)
claude mcp add --transport http -s user liner-actions https://actions.liner.com/api/v1/mcp
# The first call opens Liner sign-in and approval in the browser. Approve again after 30 days.
# To remove it, use the same scope: claude mcp remove liner-actions -s user

# Codex (config example)
codex mcp add liner-actions --url https://actions.liner.com/api/v1/mcp
codex mcp login liner-actions
```

![Illustration of two conveyor belts side by side. The left belt carries envelopes into a row of small app windows. The right belt carries teal data strips into an open notebook. A small robot in the middle sorts envelopes to the left and strips to the right.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/img-two-lanes.webp)

Actions go down one lane, data goes down the other, and the model joins them.

## Live calls: seven requests for one feedback sweep

We tested one concrete job. We collected recent user feedback for a SaaS product from public sources, then planned to write the result to a sheet. The data half ran as live calls on EveryInfra MCP from 00:18 to 00:36 Singapore time on November 14, 2026. Each call went through `everyinfra_call_api` as an MCP `tools/call`.

The topic was "too many MCP tools" itself, because that is the subject of this article. For product reviews we picked the Notion page on Trustpilot. It is public, it has many reviews, and they come in many languages.

Why these sources? Reddit threads show the problems users describe and the fixes they found. YouTube tutorials show how many people learn a topic, and the comments show where they get stuck. Trustpilot is a common place for paying users to write reviews, and one- and two-star reviews are mostly about money and support. Together they cover problems in use and complaints about payment. Each of the five capabilities costs $0.0014 or less per call, and failures and empty results are free.

| Time (Singapore) | Capability | Key params | Result | Charged |
| --- | --- | --- | --- | --- |
| 00:16 | tools/list | List tools | 12 tools, 16,206 bytes | Free |
| 00:18 | `reddit/search` | too many MCP tools | 9 posts | $0.000792 |
| 00:20 | `reddit/comments` | r/mcp post 1xnmicj | 16 comments | $0.000792 |
| 00:21 | `youtube/search` | MCP tool search | 10 videos | $0.000778 |
| 00:25 | `youtube/comments` | Video g87DYmwbzuo | 17 comments | $0.000556 |
| 00:25 | trustpilot / review (misspelled on purpose) | Singular action name | unknown_capability, did_you_mean reviews | $0 |
| 00:34–00:35 | `trustpilot/reviews` async | notion.com, last 30 days | 0 rows | Empty result refunded, $0 |
| 00:36 | `trustpilot/reviews` async | notion.so, 1–2 stars, last 3 months | 16 reviews, 52 seconds | $0.001389 |

Five calls were charged, for a total of $0.004307. The misspelled call and the call with 0 rows had no charge.

A wrong capability name is cheap. We sent `review` for `reviews`, and within a second the server returned `unknown_capability`. The structured error listed `allowed: ["profile","reviews"]` and `did_you_mean: ["reviews"]`. The next step said to resend with `reviews` and that nothing was charged. That reply was only 470 bytes, about 119 o200k tokens, and the model can fix the call on the next turn.

On Sonnet 5.5, reading it costs at least about $0.00024, about three tenths of one `reddit/search` call. With one more turn of cached definitions, one wrong name still costs a small part of one cent.

The two async Trustpilot requests had different conditions. With notion.com and the last 30 days, the result had 0 rows. With notion.so, 1 to 2 stars and the last 3 months, the result had 16 reviews. Notion's Trustpilot page address is notion.so ([Trustpilot: Notion](https://www.trustpilot.com/review/notion.so)).

For capabilities that fetch a live page, such as Trustpilot reviews, we sent `"mode":"async"`, got a job_id, and polled with `everyinfra_get_job`. This job returned in 52 seconds.

```text
{"jsonrpc":"2.0","id":17,"method":"tools/call","params":{
  "name":"everyinfra_call_api",
  "arguments":{"platform":"trustpilot","action":"reviews","mode":"async",
    "params":{"company":"notion.so","stars":["1","2"],"date":"last3months"}}}}
```

The 16 reviews were posted between August 23, 2026 and November 13, 2026. Thirteen had one star and three had two stars, from 11 countries.

We read the title and first two sentences of each review and gave it one main category. Billing, plans and trials: 7. Support: 4. Product and AI changes: 4. Data privacy: 1.

The sample has only these 16 reviews. It shows what 1- and 2-star reviews in these three months were about, not what all Notion users think.

All 7 billing reviews had one star. Of the 3 two-star reviews, 2 were about support and 1 said the product had too much going on. By month, September had the most with 7, and the first two weeks of November already had 4. By country, the UK had 4, Lithuania and the US had 2 each, and 8 other countries had 1 each. For a product team, these cuts say more than the total: one star is about money, and two stars are about support and onboarding.

This table is what the second step writes to a sheet or a ticket. We kept no reviewer names.

| Category | Reviews | Typical point (paraphrased) |
| --- | --- | --- |
| Billing, plans, trials | 7 | Trial cancelled early; must buy more credits; refund refused |
| Support | 4 | No reply on a business plan; AI allowance not restored |
| Product and AI features | 4 | Pages do not load; too much going on; AI cannot be turned off |
| Data privacy | 1 | Data sent to a third-party model, in small print |

To run this job for your own product, change the keywords, post IDs, video IDs and Trustpilot domain. See params and prices for [`reddit/search`](/en/reddit-api/search), [`reddit/comments`](/en/reddit-api/comments), [`youtube/search`](/en/youtube-api/search), [`youtube/comments`](/en/youtube-api/comments) and [`trustpilot/reviews`](/en/trustpilot-api/reviews). Platform overviews are on the [Reddit](/en/reddit-api), [YouTube](/en/youtube-api) and [Trustpilot](/en/trustpilot-api) pages.

## Results take context too: keep only the fields you need

Tool results also go into context. They go in only once, but they are often larger than the definitions. We counted the raw result text of four data calls with o200k. `reddit/search` with 9 rows used about 5,622 tokens, and `youtube/search` with 10 rows about 5,696. `reddit/comments` with 16 rows used about 3,636, and `youtube/comments` with 17 rows about 1,625. The total was about 16,579, and the 16 Trustpilot reviews added about 6,027.

We kept only five fields: link, title, text, time, and likes (or rating for Trustpilot). The four calls fell to about 11,157 tokens, 33% less, and Trustpilot fell to about 3,210. Claude Code warns when one MCP output passes 10,000 tokens, and it caps output at 25,000 tokens by default. You can change the cap with `MAX_MCP_OUTPUT_TOKENS`. Text results longer than 50,000 characters go to a file, and the model gets only the path ([Claude Code MCP docs](https://code.claude.com/docs/en/mcp)). For a feedback sweep, a `limit` of 20 to 50 per call stays under the warning and leaves room to merge results.

| Call | Rows | Raw tokens | Five fields | Cut |
| --- | --- | --- | --- | --- |
| `reddit/search` | 9 | 5,622 | 4,685 | 17% |
| `youtube/search` | 10 | 5,696 | 3,125 | 45% |
| `reddit/comments` | 16 | 3,636 | 2,820 | 22% |
| `youtube/comments` | 17 | 1,625 | 527 | 68% |
| `trustpilot/reviews` | 16 | 6,027 | 3,210 | 47% |

![Grouped horizontal bar chart of result tokens for four live calls. Dark is raw, teal is five fields kept. reddit/search with 9 rows: 5,622 vs 4,685. youtube/search with 10 rows: 5,696 vs 3,125. reddit/comments with 16 rows: 3,636 vs 2,820. youtube/comments with 17 rows: 1,625 vs 527. The axis ends at 10,000, the Claude Code warning line.](https://everyinfra.com/articles/liner-actions-mcp-tool-routing-data-tools/fig-04-result-tokens-bar.en.light.svg)

Put result size next to the data price, and the gap gets clearer. The table below uses the rows that each call returned. Price per 1,000 rows = charged amount ÷ rows returned × 1,000. Read cost = result o200k tokens × the Sonnet 5.5 input price of $2 per million tokens. We count the first read only, so read cost is also a lower bound.

For all five calls, the raw results were about 22,606 tokens. The first read costs at least about $0.0452, 10.5 times the $0.004307 charged. With five fields, the results were about 14,367 tokens and at least about $0.0287, still 6.7 times.

The search calls show the largest gap. A `reddit/search` post is about 624 tokens, and one read costs 14.2 times the data fee. A `youtube/comments` comment is only about 95 tokens, and with five fields the ratio falls to 1.9. So once the tool list is small, the largest cost in a sweep is often the model reading results, not the data API. `limit` and field filters control that cost.

| Capability | Rows returned | Charged | Per 1,000 rows | Tokens per row | Read cost ÷ charged (raw / five fields) |
| --- | --- | --- | --- | --- | --- |
| `reddit/search` | 9 | $0.000792 | $0.088 | 624 | 14.2 / 11.8 |
| `reddit/comments` | 16 | $0.000792 | $0.050 | 227 | 9.2 / 7.1 |
| `youtube/search` | 10 | $0.000778 | $0.078 | 569 | 14.6 / 8.0 |
| `youtube/comments` | 17 | $0.000556 | $0.033 | 95 | 5.8 / 1.9 |
| `trustpilot/reviews` | 16 | $0.001389 | $0.087 | 376 | 8.7 / 4.6 |
| Five calls | 68 | $0.004307 | — | — | 10.5 / 6.7 |

## Help the model pick: how to write tool descriptions

Once the tool count is set, good descriptions decide how often the model picks right. Several sources add up to a short checklist.

First, put the words the model will search for at the start. Claude Code's docs say tool search reads only the part within the shorter limit. Server instructions and up-front descriptions are read only to 4,096 characters.

Second, say when to use the tool and when not to. In the November 4 thread, the poster rewrote each description as "use this when… not for…". Replies agreed, because confusion between similar descriptions is more common than confusion from the count.

Third, remove repeated schema text. In the study of 50 servers, 23 repeated the same block in at least a third of their definitions. You pay for those tokens every turn, and they do not help the model choose.

Fourth, make errors lead the model back. EveryInfra returns the allowed values and the closest match for a wrong capability name.

| Check | Why | Source |
| --- | --- | --- |
| Search words at the start of the description | Tool search reads only the first part | Claude Code MCP docs |
| "Use this when… not for…" | Similar descriptions cause more errors than count | r/mcp, November 4, 2026 |
| No repeated schema blocks | Repeated text costs tokens every turn | r/mcp, November 12, 2026 |
| Errors with allowed values and closest match | The model fixes the call on the next turn | EveryInfra live test, 00:25 |
| English action queries for Liner | Search works only in English | Liner Actions MCP docs |

One more point is easy to miss. The model must first think of searching for a tool. A reply on November 5 in the same thread said that a model does not search for tools for every task. You must add a line in AGENTS.md or a similar file, such as "for this kind of task, search for tools first".

Another reply suggested a fixed set of prompts, run once with all tools and once with tool search. Log search misses and wrong calls separately, because retrieval can fail before the model picks anything. That matches LiveMCPBench, where about half of the failures came from retrieval. For an action connector, add one more line: Liner needs English search queries.

## Step two: write to a sheet or open a ticket (config example)

When the data is ready, the action lane takes over. Below are a prompt for Claude and the call that we expect it to send. We wrote both from the Liner docs and did not run them with a Liner account, so this is a config example. The prompt must say three things. Search for actions in English. Show the content to a person before any write. If the result is unclear, do not retry, and read the sheet first.

```text
You have two MCP servers: everyinfra (reads public data) and liner-actions (runs actions).
1. Call everyinfra_call_api for trustpilot/reviews (company=notion.so, stars=["1","2"],
   date=last3months, mode=async). Get the result with everyinfra_get_job.
   Keep only url, title, text, posted_at, rating.
2. Sort each review into billing / support / product / privacy. One row per review.
3. Call search_actions on liner-actions with an English query: "append rows to a google sheet".
4. Show me the row count and the first three rows. Wait for my OK before execute_action.
5. If execute_action times out or the result is unclear, do not retry. Read the sheet first.
```

```text
{"name":"execute_action","arguments":{
  "action":"<Google Sheets append-row action returned by search_actions>",
  "input":{"spreadsheet":"Notion user feedback 2026-11","rows":[
    ["2026-11-13","1","Billing, plans, trials","https://www.trustpilot.com/reviews/…"],
    ["2026-11-12","1","Billing, plans, trials","https://www.trustpilot.com/reviews/…"]]}}}
```

Plan for two things. First, the first time `execute_action` meets an app that you have not connected, it asks for a connection. The model calls `connect_account`, you sign in to Google in the browser, and then the model calls `complete_connection`. The Liner Actions API docs say the sign-in link is valid for about 15 minutes.

Second, a retry means different things on the two lanes. On the EveryInfra side, failures are free. For scheduled sweeps and calls that retry on their own, use REST with an `Idempotency-Key` header. Then a resend with the same key counts as one request. Our [idempotency key article](/en/blog/api-idempotency-key-ai-agent-retry) shows how.

On the Liner side, an automatic resend after a timeout can append the same row twice. The Liner Actions API docs say there is no published idempotency-key contract yet. So you rely on a check before the write and a read after it.

## What a wrong tool choice costs

We combined our live tests with the rules in the docs. Wrong choices fall into three types, and their costs are very different. On the read side, a mistake costs one more turn and a few seconds. On the write side, it can cost an extra sheet row, a duplicate ticket or a message sent to the wrong place.

| Wrong choice | Live test or doc rule | Direct cost | Hidden cost |
| --- | --- | --- | --- |
| Wrong capability name | `review` returned unknown_capability + did_you_mean, 00:25 | $0, about 119-token reply | One more turn, definitions read again |
| Action search finds nothing | Liner docs: English queries only | Not published | The model may use some other tool by force |
| Wrong or repeated write action | Liner docs: confirm first, never retry an unknown result | Not published | Wrong sheet, duplicate ticket, manual cleanup |

We measured the first row. The last two come from the docs only. Errors on the read side have one thing in common.

The server can tell if the request itself is wrong, and failures have no charge, so another try costs only time. Errors on the write side have no such guard. Once an action runs, the state of the other system changes, and neither the model nor the connector may know the new state. That is why Liner's docs ask for confirmation first and a check before any retry.

## The math: one sweep and one month

Our live run made 5 charged calls for $0.004307, the same as catalog prices. The numbers below are an estimate for a full sweep at catalog prices, where each comment capability reads two posts or videos. That sweep makes 7 data calls: one `reddit/search`, two `reddit/comments`, one `youtube/search`, two `youtube/comments` and one `trustpilot/reviews`. At catalog `price_usd`, the total is $0.005655.

For the model, we count 8 turns: 7 tool calls and a final answer. Each turn reads the tool definitions. Tokens are o200k estimates, so the dollar figures are lower bounds. With our 12 tools on Sonnet 5.5, the first turn has no cache hit and costs $0.0075. The next 7 turns hit the cache, for at least about $0.0101 in total. The same capabilities as 574 tools would cost at least about $0.355.

Run one sweep a day for 5 products, and you get 150 sweeps a month. The data fees come to about $0.85. Definitions cost at least about $1.52 with 12 tools and at least about $53.2 with 574 tools. These numbers do not include result tokens or model output, which are the same for both setups.

The first turn is also too low. For the next 7 turns to hit the cache, the first turn must write the cache. The pricing page puts a 5-minute cache write at 1.25 times the input price, $2.50 per million tokens on Sonnet 5.5. So the first turn for 12 tools is at least about $0.0094, not the $0.0075 that we used.

| Item | Per sweep | Per month (5 products × 30 days) | Basis |
| --- | --- | --- | --- |
| EveryInfra data fees (7 calls, estimate) | $0.005655 | $0.85 | Catalog price_usd; 5 live calls charged the catalog price |
| 12 tool definitions · Sonnet 5.5 (lower bound) | $0.0101 | $1.52 | About 3,758 o200k tokens, first turn uncached |
| 574 tool definitions · Sonnet 5.5 (lower bound) | $0.355 | $53.2 | About 131,395 o200k tokens, same rule |
| 12 tool definitions · Opus 5.5 (lower bound) | $0.0203 | $3.04 | Twice the input price |
| 12 tool definitions · Haiku 5.5 (lower bound) | $0.00064 | $0.10 | Under the 100K-token line |
| Liner Actions MCP | $0 | $0 | Free for now per the release; check before use |

With one sweep a week for 20 products, the data fees are about $0.48 a month (20 × 30/7 weeks × $0.005655). Model prices and Liner's price are the numbers most likely to change. EveryInfra `price_usd` follows the catalog on the day you call, and the [pricing page](/en/pricing) matches the catalog.

## Measure your own setup with the same numbers

First, run `tools/list` on each MCP server that you use. Count bytes and tokens with the script above. Compare the total with 10K tokens and with 10% of your context window. If you are over either line, turn on tool search, or ask the server author for toolsets.

Next, pick five to ten requests that you really make every day. Run them in three setups. Use all tools up front, then tool search, then only the servers that the task needs. For each run, log four numbers: first-turn input tokens, tool calls, wrong or missed calls, and whether the result was right. Then convert tokens to money with the pricing page, and put that next to your data bill.

Our test gives a reference point. With only the EveryInfra server, definitions were 16,206 bytes, about 3,758 o200k tokens. The raw results of our five live data calls were about 22,606 tokens, and about 14,367 with five fields. For the seven-call sweep, our estimate is about 27,900 and 17,700. Results were several times larger than definitions.

So when the tool list is already small, cut results next with `limit` and field filters. If your server has one tool per capability and over a hundred thousand tokens of definitions, fix the definitions first.

## Limits and things to watch

We did not run the Liner side, so some points come from the docs only. The docs do not give a full example of how many candidates `search_actions` returns, how it ranks them, or what a failed write looks like. The release says "free for now" with no end date, and the pricing page has no Actions row, so check again before you depend on it. Write the English-only rule into your prompt. If you do not, the model may use some other tool by force when a search finds nothing. ChatGPT Plus and Pro users can add the server, but writes need Business or higher, so solo users will stop at step two.

The EveryInfra side has limits too. For capabilities that fetch a live page, such as Trustpilot reviews, we submit in async mode and then poll. In the catalog, 34 of the 574 capabilities are marked as unavailable, but all five in this article were available.

All token counts here are o200k estimates. Claude's real counts are higher, so the dollar figures from them are lower bounds. Check with count_tokens before you budget. A short tool list does not stop all wrong picks either. With EveryInfra, a wrong capability name is still possible. It just costs an error with no charge and one more turn.

Think about where the data goes. EveryInfra returns content from public pages, which can include reviewer names and avatar links. Before you write rows to a team sheet, keep only link, time, rating, text and category. Drop names. Liner says it stores no user data and de-identifies logs. But the sheet or ticket lives in your Google, Linear or Jira account, so your own access rules decide who sees it.

For the rule that sends daily jobs to a fixed list and the long tail to a router, see the [Monid article](/en/blog/data-api-and-tool-router-monid). For two MCP servers that join reviews with warehouse data, see the [Airbyte MCP article](/en/blog/airbyte-mcp-social-data-agent). To move large results into subagents, see the [Claude Code subagents article](/en/blog/claude-code-subagents-tiktok-accounts).

## FAQ

**How do I turn MCP tool search on or off in Claude Code?**

It is on by default, and MCP tools load on demand. Set `ENABLE_TOOL_SEARCH=false` to turn it off. `auto` loads all tools up front while definitions use less than 10% of the context window. `auto:5` sets the line at 5% ([Claude Code MCP docs](https://code.claude.com/docs/en/mcp)). Source: the Google suggestion "mcp tool search claude code".

**What is an mcp tool router, and how is it different from tool search?**

Tool search is a feature of the model platform or client. The model searches, then calls. An mcp tool router is a layer between the model and many tools or servers that searches, signs in and runs tools. Liner Actions MCP, Composio Tool Router and Zapier MCP belong to this group. The router keeps its own tool catalog, and the client sees only a few fixed tools. Source: the keyword "mcp tool router" and the Google suggestion "mcp server too many tools".

**Is liner actions mcp free?**

Liner's English press release of November 3, 2026 says Liner Actions MCP and the API are free for now. The developer pricing page, read November 14, 2026, lists the Tools API and Agent API but no Actions price. Check it again before you use Actions. In ChatGPT, write actions also need a Business, Enterprise or Edu plan ([Liner Actions MCP docs](https://liner.com/developers/docs/actions-mcp)). Source: the keyword "liner actions mcp", which had no Google suggestions.

**Is MCP too much if I only have one or two agents?**

Someone asked this on r/mcp on November 9, 2026. With few tools and small definitions, a few plain functions are cheaper. Remote MCP pays off when Claude Code, ChatGPT and Codex should share the same data tools. EveryInfra REST and MCP use the same key and the same prices, so you can use both. Source: [r/mcp, November 9, 2026](https://www.reddit.com/r/mcp/comments/1xrw28k/is_using_mcp_too_much_if_youve_only_got_one_or/).

## References

1. Liner Actions MCP, Liner developer docs, read November 14, 2026, https://liner.com/developers/docs/actions-mcp
1. Liner Developers docs home, read November 14, 2026, https://liner.com/developers/docs
1. Actions API Quick Start, Liner developer docs, read November 14, 2026, https://liner.com/developers/docs/actions-api-quick-start
1. Use Actions as LLM tools, Liner developer docs, read November 14, 2026, https://liner.com/developers/docs/actions-api-guides-llm-tools
1. Pricing, Liner developer docs, read November 14, 2026, https://liner.com/developers/docs/pricing
1. Liner Launches Actions MCP, press release on VMblog, November 3, 2026, https://vmblog.com/news/liner-launches-actions-mcp-connecting-ai-agents-to-more-than-1100-verified-apps-through-a-single-integration/
1. Liner launches Liner Actions MCP, Digital Today, September 29, 2026, https://www.digitaltoday.co.kr/en/view/108354/liner-launches-liner-actions-mcp-to-connect-1-100-apps-to-ai-agents
1. Liner: Use 1100 Apps Once Connected to AI Agent, VentureSquare, September 29, 2026, https://www.venturesquare.net/en/1116726/
1. Liner Actions MCP: One Integration for 1,100 AI Agent Apps, Efficiently Connected, November 11, 2026, https://www.efficientlyconnected.com/liner-actions-mcp-agent-integration/
1. Tool search tool, Claude docs, read November 14, 2026, https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool
1. Pricing, Claude docs, read November 14, 2026, https://platform.claude.com/docs/en/about-claude/pricing
1. Tool use with prompt caching, Claude docs, https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-use-with-prompt-caching
1. Tool use with Claude, Claude docs, https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview
1. Token counting, Claude docs, https://platform.claude.com/docs/en/build-with-claude/token-counting
1. MCP connector, Claude docs, https://platform.claude.com/docs/en/agents-and-tools/mcp-connector
1. Connect Claude Code to tools via MCP, Claude Code docs, read November 14, 2026, https://code.claude.com/docs/en/mcp
1. Tool search, Claude Agent SDK docs, https://code.claude.com/docs/en/agent-sdk/tool-search
1. Introducing advanced tool use, Anthropic, November 24, 2025, https://www.anthropic.com/research/advanced-tool-use
1. Tool search, OpenAI API docs, https://developers.openai.com/api/docs/guides/tools-tool-search
1. Model Context Protocol, OpenAI developer docs, https://developers.openai.com/codex/mcp
1. Connecting custom MCP servers in ChatGPT, OpenAI Help Center, https://help.openai.com/en/articles/12584461-connecting-custom-mcp-servers-in-chatgpt
1. Toolbox overview, Microsoft Foundry docs, https://learn.microsoft.com/en-us/azure/foundry/agents/concepts/toolbox-overview
1. Tool search, Microsoft Foundry docs, October 26, 2026, https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/tool-search
1. Tools, MCP specification 2026-07-28, https://modelcontextprotocol.io/specification/2026-07-28/server/tools
1. Authorization, MCP specification 2026-07-28, https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization
1. SEP-3398 Release cycle updates, MCP, https://modelcontextprotocol.io/seps/3398-release-cycle-updates
1. MCP release cycle, MCP blog, November 11, 2026, https://blog.modelcontextprotocol.io/posts/mcp-release-cycle/
1. RFC 9728 OAuth 2.0 Protected Resource Metadata, IETF, https://datatracker.ietf.org/doc/html/rfc9728
1. github-mcp-server README, GitHub, https://github.com/github/github-mcp-server
1. tiktoken README, GitHub, https://github.com/openai/tiktoken
1. RAG-MCP: Mitigating Prompt Bloat in LLM Tool Selection, arXiv 2505.03275, https://arxiv.org/abs/2505.03275
1. JSPLIT, arXiv 2510.14537, https://arxiv.org/abs/2510.14537
1. LiveMCPBench, arXiv 2508.01780, https://arxiv.org/abs/2508.01780
1. Dynamic ReAct, arXiv 2509.20386, https://arxiv.org/abs/2509.20386
1. Zapier MCP usage, Zapier docs, read November 14, 2026, https://docs.zapier.com/mcp/overview/usage
1. Zapier pricing, read November 14, 2026, https://zapier.com/pricing
1. Composio docs, read November 14, 2026, https://docs.composio.dev/docs
1. Designing an MCP gateway, Uber engineering blog, October 1, 2026, https://www.uber.com/us/en/blog/designing-mcp-gateway/
1. Scaling AI agents with open standards, Google Open Source blog, November 11, 2026, https://opensource.googleblog.com/2026/11/scaling-ai-agents-open-standards-mcp-aaif.html
1. How many MCP tools is too many before your agent gets confused?, r/mcp, November 4, 2026, https://www.reddit.com/r/mcp/comments/1xnmicj/how_many_mcp_tools_is_too_many_before_your_agent/
1. A lot of heavy MCP tool lists are the same schema block repeated, r/mcp, November 12, 2026, https://www.reddit.com/r/mcp/comments/1xujtxy/a_lot_of_heavy_mcp_tool_lists_are_the_same_schema/
1. Is using MCP too much if you've only got one or two agents?, r/mcp, November 9, 2026, https://www.reddit.com/r/mcp/comments/1xrw28k/is_using_mcp_too_much_if_youve_only_got_one_or/
1. Too many MCP tools? Anthropic found a solution., YouTube, October 6, 2026, https://www.youtube.com/watch?v=g87DYmwbzuo
1. Why do MCP Tools Eat Your Context?, YouTube, October 18, 2026, https://www.youtube.com/watch?v=4QuXrXoMVtM
1. Notion reviews, Trustpilot, read November 14, 2026, https://www.trustpilot.com/review/notion.so
1. EveryInfra data capability catalog, read November 14, 2026, 00:16 Singapore time, https://api.everyinfra.com/api/v1/social/catalog
1. EveryInfra remote MCP server, read November 14, 2026, 00:16 Singapore time, https://api.everyinfra.com/mcp
