Skip to content

原文(日本語に翻訳)

MCPツール結果の永続化オーバーライドを_meta["anthropic/maxResultSizeChars"]アノテーション(最大500K)で追加し、DBスキーマなど大きな結果を切り捨てなしで通過させられるようになりました。

原文(英語)

Added MCP tool result persistence override via _meta["anthropic/maxResultSizeChars"] annotation (up to 500K), allowing larger results like DB schemas to pass through without truncation

概要

MCPサーバーがツール結果を返す際、デフォルトでは一定サイズを超えると自動的に切り捨てられていました。今回の変更により、_metaフィールドにanthropic/maxResultSizeCharsアノテーションを指定することで、最大500,000文字まで切り捨てなしでデータを渡せるようになりました。データベーススキーマ全体や大きなファイル内容など、サイズの大きな結果を扱うMCPツールに特に有効です。

基本的な使い方

MCPサーバーのツール結果レスポンスに_metaフィールドを追加します:

json
{
  "content": [
    {
      "type": "text",
      "text": "...大きなデータ..."
    }
  ],
  "_meta": {
    "anthropic/maxResultSizeChars": 500000
  }
}

実践例

データベーススキーマ全体を渡す

大規模なDBスキーマを取得するMCPツールでは、テーブル定義やカラム情報が数万文字に達することがあります:

json
{
  "content": [
    {
      "type": "text",
      "text": "CREATE TABLE users (\n  id BIGINT PRIMARY KEY,\n  ...\n);\nCREATE TABLE orders (\n  ...\n);\n-- 数百テーブル分のDDL"
    }
  ],
  "_meta": {
    "anthropic/maxResultSizeChars": 300000
  }
}

大きなファイル内容を渡す

ログファイルやコード生成結果など、大容量テキストを扱う場合:

json
{
  "content": [
    {
      "type": "text",
      "text": "...ファイルの全内容..."
    }
  ],
  "_meta": {
    "anthropic/maxResultSizeChars": 200000
  }
}

MCPサーバー実装例(Node.js)

javascript
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  if (request.params.name === "get_db_schema") {
    const schema = await fetchFullDatabaseSchema();
    return {
      content: [{ type: "text", text: schema }],
      _meta: {
        "anthropic/maxResultSizeChars": 500000
      }
    };
  }
});

注意点

  • 上限は**500,000文字(500K)**です。これを超える値を指定しても500Kとして扱われます
  • この設定はツール結果ごとに個別に指定します。サーバー全体に適用するグローバル設定ではありません
  • 大きな結果を渡すとコンテキストウィンドウを大量に消費します。必要な場合にのみ使用し、可能な限りデータを絞り込むことを推奨します
  • _metaフィールドはMCP仕様の標準フィールドで、Anthropic固有の拡張はanthropic/プレフィックスで識別されます

関連情報