0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCP サーバーのツール一覧はいくらかかるのか — 34,374 件のトークン数を数えた

0
Posted at

この記事は modelmarket.dev のブログ記事 (英語) の日本語版です。

12,915 台の MCP サーバーを調べた私たちの記事に、ある読者が私たちのしていなかった計算をしてくれました。7,656 台のサーバーで 182,157 件のツール定義なら、1 台あたり約 24 ツールになります。そしてクライアントは、モデルへのリクエストのたびにその定義をすべて送り直します。典型的な一覧のトークン数を数えれば、それはそのままコストになる、というコメントでした。

私たちが公開している MCP サーバーのログ HISTOR は、観測しているすべてのサーバーについて最新のツール一覧を保持しています。そこで「典型的な一覧」を 1 つ選ぶ代わりに、全部を数えました。2026 年 10 月 19 日時点で、npm と PyPI のパッケージ 18,204 件、リモートサーバー 16,170 台です。

数え方

クライアントがモデルへのリクエストに入れるのと同じ形で数えています。各ツールの name、description、input_schema をコンパクトな JSON にしたものです。トークナイザーは o200k_base(tiktoken 0.12)です。ツールが 1 つ以上あるサーバーはそれぞれ 1 回ずつ、HISTOR が最後に観測した一覧で数えました。

結果

パッケージ リモートサーバー
サーバー数 18,204 16,170
ツール定義の数 337,449 232,427
サーバーあたりのツール数:中央値 / 平均 8 / 18.5 7 / 14.4
サーバーあたりのトークン数:中央値 1,272 1,328
平均 3,812 3,412
90 パーセンタイル 8,361 7,425
99 パーセンタイル 39,612 22,294
最大 304,780 547,935
ツールあたりのトークン数:中央値 129 231
10,000 トークンを超えるサーバー 1,447 618
100,000 トークンを超えるサーバー 31 9

目立つ点が 3 つあります。

平均は中央値の 3 倍です。 典型的なサーバーは安く済みます。トークンの大半を占めているのは、数百から数千のツールを持つ数百台のサーバーです。調査記事の「約 24 ツール」は、10 月 13 日に応答したパッケージの平均でした。現在のより大きな集合では、平均は 18.5、中央値は 8 です。

いちばん重い一覧は、ツールがいちばん多い一覧ではありません。 最大のリモート一覧は 71 ツールで 547,935 トークン、1 ツールあたり約 7,700 トークンです。別のリモートサーバーは 15 ツールを 175,588 トークンで提供しています。一覧を重くしているのはツールの数よりも、1 つひとつの定義の大きさです。1 ツールあたり数千トークンともなれば、説明文や入力スキーマはそれ自体が 1 本の文書です。

そもそも収まらないものもあります。 304,780 トークンは、200,000 トークンのコンテキストウィンドウより大きい値です。そのパッケージを接続したクライアントには、質問を入れる余地が残りません。

金額にすると

一覧はリクエストのたびに一緒に送られるので、コストは「トークン数 × 単価 × リクエスト数」です。2026 年 10 月 19 日の定価で、1,000 リクエストあたりの金額は次のとおりです。

サーバー 1 台の一覧 トークン数 100 万トークンあたり $0.10(小型モデル) 100 万トークンあたり $2(中型モデル) 中型モデルでプロンプトキャッシュから読んだ場合
パッケージの中央値 1,272 $0.13 $2.54 $0.13
パッケージの平均 3,812 $0.38 $7.62 $0.38
90 パーセンタイル 8,361 $0.84 $16.72 $0.84
99 パーセンタイル 39,612 $3.96 $79.22 $3.96

中央値のサーバーを 5 台接続したクライアントは、ユーザーが一言も入力しないうちに、約 6,400 トークンのツール定義を送っています。

費用を減らすには

  • プロンプトキャッシュ。 クライアントがツール一覧を毎回同じ形でプロンプトの前のほうに置けば、キャッシュからの読み込みは入力単価の約 20 分の 1 で済みます。ツールの順番を入れ替えたり、リクエストごとに一覧を作り直したりするクライアントは、その割引を失います。
  • 定義をオンデマンドで読み込む。 モデルにはまずツール名だけを見せ、そのツールを呼ぼうとする段階で初めてスキーマを渡します。
  • 公開する側は定義を小さく。 説明文には、そのツールが何をするのか、いつ使うのかだけを書きます。スキーマに同じ文章を繰り返さない。ツールを減らすか、関連する操作を action 引数付きの 1 つのツールにまとめる。ツールの中央値はパッケージで 129 トークン、リモートサーバーで 231 トークンです。1 ツールあたり 7,700 トークンなら、何か別のことが起きています。

自分のサーバーを数える

カウンターを無料のページにしました:modelmarket.dev/tools/tool-list-cost。tools/list の結果を貼り付けるか、HISTOR が観測しているサーバーを名前で指定します(https のエンドポイント、npm:<パッケージ>、pypi:<パッケージ>、またはレジストリ名)。トークン数、34,374 件の中での位置、1,000 リクエストあたりの金額、いちばん重いツール、そして README 用の 1 行が返ってきます。

![tool list](https://img.shields.io/endpoint?url=https%3A%2F%2Fmodelmarket.dev%2Ftools%2Fbadge%2Ftool-list-cost%3Fserver%3Dnpm%253Ayour-package)

ページは上の数字と同じトークナイザーで数えています。HISTOR のツール一覧 120 件、計 260 万トークンで tiktoken と照合し、差はありませんでした。貼り付けた一覧はメモリ上で数えるだけで保存しません。名前での検索は HISTOR に問い合わせるだけで、そのサーバーには一切接続しません。

この数字が測っていないもの

  • トークナイザーは 1 つだけです。 ほかのモデルでは数え方が違い、差は通常数十パーセントです。ただし形は変わりません。中央値は 1,300 トークン前後で、裾が長く伸びます。
  • プロバイダー側の文章。 モデル API はツール定義を独自の指示文で包みますが、その分は数えていません。
  • クライアントが実際に送るもの。 フィールドを省いたり、長い説明文を短くしたりするクライアントもあれば、出力スキーマまで送るクライアントもあります。一覧のすべてのフィールドを数えると、パッケージの中央値は 1,390 トークン、90 パーセンタイルは 9,960 トークンです。
  • 実際に使われているサーバーかどうか。 掲載されているサーバーはそれぞれ 1 回ずつ数えています。人気のサーバーも放置されたサーバーも同じ重みです。

再現する

手順は 5 か国語で、alexar76/histor の docs/tool-list-cost.md にあります。集計に使ったスクリプト(scripts/tool_list_tokens.py、エクスポート用のクエリは docstring に記載)と、サーバー名を含まない集計結果(docs/tool-list-tokens-2026-10-19.json)も同じ場所です。

HISTOR と WARDEN は私たちが作っています。数字は 2026 年 10 月 19 日時点のスナップショットで、ログはその後も更新され続けています。この記事ではどのサーバーも名指ししていません。問いを投げかけてくれた Paul Irolla さんに感謝します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?