A2A Artifact Handoff

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

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
75%
이름 품질
93%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,500토큰 (도구 정의)
~5.6 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.17%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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개