Skip to main content
Glama

Synthex Forge — x402 Paid Agent Services

Execute Agent Handoff

execute_agent_handoff
Read-onlyIdempotent

Assess a handoff of task state between two agents. use it rather than record_agent_coordination for agent handoff, not agent coordination; an object with 31 fields including acceptance_criteria, blocked. $0.1 USDC.

Input Schema

NameRequiredDescriptionDefault
stateNoThe state this operation operates on. See the schema for its type and whether it is required.
task_idNoThe task id this operation operates on. See the schema for its type and whether it is required.
to_agentNoThe to agent this operation operates on. See the schema for its type and whether it is required.
from_agentNoThe from agent this operation operates on. See the schema for its type and whether it is required.
context_sha256NoThe context sha256 this operation operates on. See the schema for its type and whether it is required.
acceptance_criteriaNoThe acceptance criteria this operation operates on. See the schema for its type and whether it is required.

Output Schema

NameRequiredDescriptionDefault
whyNoThe `why` field of the response.
doneNoThe `done` field of the response.
itemNoThe single item the operation returned.
kindNoThe `kind` field of the response.
noteNoA note on how the answer was produced.
openNoThe `open` field of the response.
ownerNoThe `owner` field of the response.
risksNoThe `risks` field of the response.
blockedNoThe `blocked` field of the response.
task_idNoThe `task_id` field of the response.
verdictYesThe decision this tool returned.
to_agentNoThe `to_agent` field of the response.
signatureYesThe Ed25519 signature over the evidence core, base64-encoded.
signed_byNoThe key id that signed the answer.
blocked_byNoThe `blocked_by` field of the response.
from_agentNoThe `from_agent` field of the response.
handoff_idNoThe `handoff_id` field of the response.
transferredNoThe `transferred` field of the response.
state_digestNoThe `state_digest` field of the response.
evidence_coreYesThe canonical, signed core of the answer — the payload the signature covers.
output_sha256YesSHA-256 hex digest of the canonical evidence core.
scopeBoundaryNoThe `scopeBoundary` field of the response.
context_sha256NoThe `context_sha256` field of the response.
missing_fieldsNoThe `missing_fields` field of the response.
profileVersionNoVersion of the answer profile.
scope_boundaryNoWhat this service explicitly does not do.
profile_versionNoVersion of the answer profile.
canonicalizationNoThe canonicalisation rule the digest was computed under.
methodologyVersionNoThe `methodologyVersion` field of the response.
acceptance_criteriaNoThe `acceptance_criteria` field of the response.
methodology_versionNoVersion of the method that produced the answer.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed33 schema fields changed
    • addedOutput schema / properties / acceptance_criteria
      Added value: +{
      +  "description": "The `acceptance_criteria` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / blocked
      Added value: +{
      +  "description": "The `blocked` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / blocked_by
      Added value: +{
      +  "description": "The `blocked_by` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / canonicalization
      Added value: +{
      +  "description": "The canonicalisation rule the digest was computed under.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / context_sha256
      Added value: +{
      +  "description": "The `context_sha256` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / done
      Added value: +{
      +  "description": "The `done` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence_core
      Added value: +{
      +  "description": "The canonical, signed core of the answer — the payload the signature covers.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / from_agent
      Added value: +{
      +  "description": "The `from_agent` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / handoff_id
      Added value: +{
      +  "description": "The `handoff_id` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / item
      Added value: +{
      +  "description": "The single item the operation returned.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / kind
      Added value: +{
      +  "description": "The `kind` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / methodologyVersion
      Added value: +{
      +  "description": "The `methodologyVersion` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / methodology_version
      Added value: +{
      +  "description": "Version of the method that produced the answer.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / missing_fields
      Added value: +{
      +  "description": "The `missing_fields` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / note
      Added value: +{
      +  "description": "A note on how the answer was produced.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / open
      Added value: +{
      +  "description": "The `open` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / output_sha256
      Added value: +{
      +  "description": "SHA-256 hex digest of the canonical evidence core.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / owner
      Added value: +{
      +  "description": "The `owner` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / profileVersion
      Added value: +{
      +  "description": "Version of the answer profile.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / profile_version
      Added value: +{
      +  "description": "Version of the answer profile.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / risks
      Added value: +{
      +  "description": "The `risks` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / scopeBoundary
      Added value: +{
      +  "description": "The `scopeBoundary` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / scope_boundary
      Added value: +{
      +  "description": "What this service explicitly does not do.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / signature
      Added value: +{
      +  "description": "The Ed25519 signature over the evidence core, base64-encoded.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / signed_by
      Added value: +{
      +  "description": "The key id that signed the answer.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / state_digest
      Added value: +{
      +  "description": "The `state_digest` field of the response.",
      +  "type": "object"
      +}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / task_id
      Added value: +{
      +  "description": "The `task_id` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / to_agent
      Added value: +{
      +  "description": "The `to_agent` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / transferred
      Added value: +{
      +  "description": "The `transferred` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / verdict
      Added value: +{
      +  "description": "The decision this tool returned.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / why
      Added value: +{
      +  "description": "The `why` field of the response.",
      +  "type": "object"
      +}
    • addedOutput schema / required
      Added value: +[
      +  "evidence_core",
      +  "output_sha256",
      +  "signature",
      +  "verdict"
      +]
  2. Added

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add context. It does add the pricing ($0.1 USDC), which is genuinely useful for an agent budgeting calls. The trailing clause about 'an object with 31 fields' is ambiguous and does not clearly disclose behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short but poorly formed: the semicolon-joined run-on and the dangling fragment 'an object with 31 fields including acceptance_criteria, blocked' obscure what is being described. The most actionable fact (cost) is buried at the end rather than front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full schema coverage, the description needn't document returns. However, it leaves unclear whether the tool merely validates/assesses a handoff or effects the transfer, and the ambiguous '31 fields' clause introduces doubt about the state payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries parameter documentation and baseline 3 applies. The description mentions acceptance_criteria (a real parameter) but also 'blocked', which is not among the six declared parameters, adding confusion rather than meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Assess a handoff of task state between two agents.' It also explicitly contrasts itself with the sibling record_agent_coordination, so an agent can distinguish these two without opening schemas. Slight tension with the tool name 'execute_agent_handoff' (assess vs. execute) keeps it below 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit routing rule: 'use it rather than `record_agent_coordination` for agent handoff, not agent coordination.' That names the alternative and the selecting condition. It stops short of stating prerequisites or when-not to use this tool in any other sense.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.