A2A Artifact Handoff

Compiles source-agent outputs into validated, receiver-ready handoff packages.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
75%
命名品質
93%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,500Token(工具定義)
~5.6 KB典型回應大小
中等的注意力影響(128k 上下文的 1.17%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "a2a-artifact-handoff": {
      "url": "https://a2a-artifact-handoff.onrender.com/mcp"
    }
  }
}

遠端端點

https://a2a-artifact-handoff.onrender.com/mcpstreamable-http

它能做什麼

工具清單

工具(3)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢prepare_artifact(content, filename, media_type, target_modes, ttl_hours)

Prepare content for transfer to another agent or a human reviewer. `target_modes` accepts either a JSON list or an actual list of MIME types. The result includes expiring artifact URLs, SHA-256 hashes, a manifest, and a downloadable ZIP package.

輸入結構描述

{
  "type": "object",
  "properties": {
    "content": {
      "title": "Content",
      "type": "string"
    },
    "filename": {
      "default": "artifact.md",
      "title": "Filename",
      "type": "string"
    },
    "media_type": {
      "default": "text/markdown",
      "title": "Media Type",
      "type": "string"
    },
    "target_modes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Target Modes"
    },
    "ttl_hours": {
      "default": 24,
      "title": "Ttl Hours",
      "type": "integer"
    }
  },
  "required": [
    "content"
  ],
  "title": "prepare_artifactArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "prepare_artifactDictOutput"
}
⚪compile_handoff(source_outputs, receiver_contract, handoff_context, ttl_hours)

Compile source-agent outputs into a receiver-ready handoff package. The input schema declares the exact source-output, receiver-contract, and handoff-context fields. The tool selects and validates required deliverables and returns either a portable package or actionable unmet requirements.

輸入結構描述

{
  "type": "object",
  "properties": {
    "source_outputs": {
      "items": {
        "$ref": "#/$defs/SourceOutput"
      },
      "title": "Source Outputs",
      "type": "array"
    },
    "receiver_contract": {
      "$ref": "#/$defs/ReceiverContract"
    },
    "handoff_context": {
      "$ref": "#/$defs/HandoffContext"
    },
    "ttl_hours": {
      "default": 24,
      "title": "Ttl Hours",
      "type": "integer"
    }
  },
  "required": [
    "source_outputs",
    "receiver_contract",
    "handoff_context"
  ],
  "$defs": {
    "ContractConstraints": {
      "examples": [
        {
          "maxFileBytes": 100000,
          "requireSha256": true
        }
      ],
      "properties": {
        "requireSha256": {
          "default": true,
          "description": "Require SHA-256 integrity metadata for delivered artifacts.",
          "title": "Requiresha256",
          "type": "boolean"
        },
        "maxFileBytes": {
          "anyOf": [
            {
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional maximum size in bytes for each delivered artifact.",
          "title": "Maxfilebytes"
        }
      },
      "title": "ContractConstraints",
      "type": "object"
    },
    "HandoffContext": {
      "properties": {
        "objective": {
          "maxLength": 2000,
          "minLength": 1,
          "title": "Objective",
          "type": "string"
        },
        "status": {
          "default": "completed",
          "maxLength": 80,
          "title": "Status",
          "type": "string"
        },
        "sourceAgent": {
          "anyOf": [
            {
              "maxLength": 200,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sourceagent"
        },
        "destinationAgent": {
          "anyOf": [
            {
              "maxLength": 200,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Destinationagent"
        },
        "decisions": {
          "items": {
            "type": "string"
          },
          "title": "Decisions",
          "type": "array"
        },
        "assumptions": {
          "items": {
            "type": "string"
          },
          "title": "Assumptions",
          "type": "array"
        },
        "unresolvedIssues": {
          "items": {
            "type": "string"
          },
          "title": "Unresolvedissues",
          "type": "array"
        }
      },
      "required": [
        "objective"
      ],
      "title": "HandoffContext",
      "type": "object"
    },
    "OutputRequirement": {
      "description": "One deliverable expected by the receiving agent.",
      "examples": [
        {
          "acceptedMediaTypes": [
            "text/markdown"
          ],
          "filename": "report.md",
          "id": "report",
          "required": true
        },
        {
          "acceptedMediaTypes": [
            "text/csv"
          ],
          "filename": "evidence.csv",
          "id": "evidence",
          "required": true,
          "requiredCsvColumns": [
            "channel",
            "score",
            "evidence"
          ]
        },
        {
          "acceptedMediaTypes": [
            "application/json"
          ],
          "filename": "summary.json",
          "id": "summary",
          "required": true,
          "requiredJsonKeys": [
            "recommendation",
            "confidence"
          ]
        }
      ],
      "properties": {
        "id": {
          "description": "Stable requirement identifier. Use the matching source output id when known; use filename only for the delivered filename.",
          "maxLength": 80,
          "minLength": 1,
          "title": "Id",
          "type": "string"
        },
        "acceptedMediaTypes": {
          "description": "Media types accepted for this deliverable, for example text/markdown, text/csv, or application/json.",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "title": "Acceptedmediatypes",
          "type": "array"
        },
        "filename": {
          "anyOf": [
            {
              "maxLength": 200,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Filename required by the receiving agent.",
          "title": "Filename"
        },
        "required": {
          "default": true,
          "description": "Whether this deliverable is mandatory.",
          "title": "Required",
          "type": "boolean"
        },
        "description": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "requiredJsonKeys": {
          "description": "Use only when acceptedMediaTypes contains application/json. Leave empty for Markdown, text, CSV, images, and other media types.",
          "items": {
            "type": "string"
          },
          "title": "Requiredjsonkeys",
          "type": "array"
        },
        "requiredCsvColumns": {
          "description": "Use only when acceptedMediaTypes contains text/csv. Leave empty for Markdown, text, JSON, images, and other media types.",
          "items": {
            "type": "string"
          },
          "title": "Requiredcsvcolumns",
          "type": "array"
        }
      },
      "required": [
        "id",
        "acceptedMediaTypes"
      ],
      "title": "OutputRequirement",
      "type": "object"
    },
    "ReceiverContract": {
      "description": "Machine-readable input contract declared by the receiving agent.",
      "properties": {
        "contractVersion": {
          "default": "0.1",
          "title": "Contractversion",
          "type": "string"
        },
        "destinationCapability": {
          "maxLength": 200,
          "minLength": 1,
          "title": "Destinationcapability",
          "type": "string"
        },
        "requiredOutputs": {
          "items": {
            "$ref": "#/$defs/OutputRequirement"
          },
          "minItems": 1,
          "title": "Requiredoutputs",
          "type": "array"
        },
        "constraints": {
          "$ref": "#/$defs/ContractConstraints",
          "description": "Runtime constraint values. Provide requireSha256 and optionally maxFileBytes; do not copy JSON Schema definitions into this field."
        }
      },
      "required": [
        "destinationCapability",
        "requiredOutputs"
      ],
      "title": "ReceiverContract",
      "type": "object"
    },
    "SourceOutput": {
      "description": "One output produced by the source agent.",
      "properties": {
        "id": {
          "maxLength": 80,
          "minLength": 1,
          "title": "Id",
          "type": "string"
        },
        "filename": {
          "maxLength": 200,
          "minLength": 1,
          "title": "Filename",
          "type": "string"
        },
        "mediaType": {
          "maxLength": 120,
          "minLength": 3,
          "title": "Mediatype",
          "type": "string"
        },
        "content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Content"
        },
        "contentBase64": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Contentbase64"
        },
        "role": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Role"
        }
      },
      "required": [
        "id",
        "filename",
        "mediaType"
      ],
      "title": "SourceOutput",
      "type": "object"
    }
  },
  "title": "compile_handoffArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "compile_handoffDictOutput"
}
🟢inspect_handoff(run_id)

Inspect a handoff package and return an acceptance decision. The tool recalculates deliverable hashes, checks expiry and contract satisfaction, and returns the receiving agent's next action.

輸入結構描述

{
  "type": "object",
  "properties": {
    "run_id": {
      "title": "Run Id",
      "type": "string"
    }
  },
  "required": [
    "run_id"
  ],
  "title": "inspect_handoffArguments"
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "inspect_handoffDictOutput"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本3 個工具
已驗證未記錄版本3 個工具