原文(日本語に翻訳)
MCPツールの説明とサーバー指示が2KBに制限されるようになりました。OpenAPIで生成されたサーバーによるコンテキスト肥大化を防ぎます。
原文(英語)
MCP tool descriptions and server instructions are now capped at 2KB to prevent OpenAPI-generated servers from bloating context
概要
MCP(Model Context Protocol)サーバーのツール説明文とサーバー指示テキストが、それぞれ最大2KB(約2,000文字)に制限されるようになりました。OpenAPIスペックから自動生成されたMCPサーバーは非常に長い説明文を持つ場合があり、コンテキストウィンドウを圧迫していました。この制限によりトークン消費が最適化されます。
基本的な使い方
この変更はMCPサーバー側の設定で対応が必要な場合があります。ツール説明が2KBを超えると自動的にトランケートされます。
json
// mcp-server/tools/my-tool.json
{
"name": "search_database",
"description": "データベースを検索します。クエリ文字列を受け取り、マッチした結果を返します。",
// ← この description が2KBを超える場合、自動的に切り詰められます
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string" }
}
}
}実践例
MCPサーバー開発時の説明文最適化
typescript
// 良い例: 簡潔で的確な説明(2KB未満)
const tool = {
name: "search_files",
description: `ファイルシステムを検索します。
パラメータ:
- pattern: 検索するglobパターン(例: "**/*.ts")
- directory: 検索対象ディレクトリ(省略時はカレント)
戻り値: マッチしたファイルパスのリスト`,
// この程度なら問題なし
};
// 避けるべき例: 不必要に長い説明
const badTool = {
name: "search_files",
description: `ファイルシステムを検索するツールです。このツールは...
[OpenAPIスペックから生成された数KB の説明文]
`,
// 2KBを超えると自動的にカットされる
};OpenAPI生成MCPサーバーの設定最適化
yaml
# openapi.yaml - ツール説明を簡潔に保つ
paths:
/search:
post:
summary: "ファイル検索" # ← summaryを簡潔に
description: |
ファイルシステムを検索します。
globパターンと検索ディレクトリを指定できます。
# ← 詳細説明も必要最小限にカスタムMCPサーバーでの説明文管理
python
# Python MCPサーバーの例
import mcp
MAX_DESCRIPTION_BYTES = 2000 # Claude Codeの制限に合わせる
def truncate_description(description: str) -> str:
"""説明文をClaude Codeの制限内に収める"""
encoded = description.encode('utf-8')
if len(encoded) <= MAX_DESCRIPTION_BYTES:
return description
# 安全にトランケート
return encoded[:MAX_DESCRIPTION_BYTES].decode('utf-8', errors='ignore')
tools = [
{
"name": "my_tool",
"description": truncate_description(long_description),
"inputSchema": {...}
}
]注意点
- 制限はツール説明(description) と サーバー指示(server instructions) の両方に適用されます
- 2KBを超える部分は自動的に切り詰められますが、ツールの機能自体には影響しません
- 重要な情報(パラメータの説明、使い方など)は2KB以内に収めるようにMCPサーバーを設計してください
- この変更はトークン消費の最適化が目的です。説明が切り詰められても、Claudeはツールを正常に使用できます