📝

Claude CodeのMCPの説明文は英語で書かないとトークン数が倍に増える

に公開

ただのタイトル通りの話です。
当然と言えば当然なので問題ない方も多そうですが、なんとなく日本語で書いている人も多いんじゃないかと思い記事に残すことにしました。

以下は英語にすることでトークン数が減る事例を記載しているだけなので、すでに英語で書いている方は読まなくても大丈夫です。

日本語で書いたら1.3Kで、英語にすると620トークンになった

/contextコマンドが出たことで試しに使ってみたところ、ローカルで作成しているMCPのツールが占めるトークン数が、他のツールに対して明らかに多かったのですが、その理由が日本語で書いているから、でした。

(↑mcp__anki_editor__add_anki_pairが自作関数で、謎に1.3Kも使っている)

Docstringの中身は以下に記載の通りで、正直量的にも多くないだろうと思い、気にならないレベルだろうと思っていました。

暗記アプリに対して、分類・キー・値のペアを追加する。
ユーザーから技術仕様に関する具体的な質問を受けて回答した際、このMCPを呼び出す。
ただし「Unityの学習で優先すべき機能は?」のような、学習方針や意見を求める質問では使用しないこと。

Args:
    category (str): get_categoriesで取得したカテゴリーから選択
    sub_category (str): get_categoriesで取得したサブカテゴリーから選択
    key (str): ユーザーからの質問内容を簡潔にしたもの
    value (str): 質問された内容に対する回答を150字以内にまとめたもの

これをgpt-5に頼んで翻訳してもらったところ、以下の画像のように621トークンにまで減りました。

Add a category/subcategory-key-value entry to the memorization app.
Invoke this MCP after you answer a user’s specific question about technical specifications.
Do not use it for learning-strategy or opinion questions (e.g., “Which Unity features should I prioritize learning?”).

Args:
    category (str): Select a category returned by get_categories.
    sub_category (str): Select a subcategory returned by get_categories.
    key (str): A concise summary of the user’s question.
    value (str): A summary of your answer within 150 characters.

結論

冒頭にも書いた通り、Docstringは英語で書けという話です。が、最近のClaude Codeは遠慮なくコンテキストを捨てるので、デフォルトで使用するトークン数を削減することは非常に大事だと思います。

本記事で取り上げた内容は、自分的には最低限だからいいだろうという気持ちから日本語で書いたままだったものが思ったよりも大きなトークン数となってしまっていたことが発覚した、というものなので、もし同じような境遇の方がいれば届けば嬉しいなと思います。

Discussion