Skip to content

原文(日本語に翻訳)

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はツールを正常に使用できます

関連情報