Skip to main content
For how A2A fits next to MCP at runtime, see A2A transport. Each agent is exposed behind its own route prefix:
So a support agent gets:
  • GET /agent/support/.well-known/agent-card.json
  • POST /agent/support

What the endpoint serves

The A2A mount provides a stateful agent contract over one JSON-RPC endpoint:
  • agent discovery via the public card
  • request/response execution
  • SSE streaming
  • task retrieval, cancellation, and resubscription
  • push-notification config operations

Endpoint reference

Supported JSON-RPC methods

  • SendMessage
  • SendStreamingMessage
  • GetTask
  • ListTasks
  • CancelTask
  • SubscribeToTask
  • GetTaskPushNotificationConfig
  • ListTaskPushNotificationConfigs
  • CreateTaskPushNotificationConfig
  • DeleteTaskPushNotificationConfig
  • GetExtendedAgentCard

Request body contract

SendMessage and SendStreamingMessage use this shape:
Streaming uses the same payload but changes method to SendStreamingMessage.
  1. GET /agent/{agentName}/.well-known/agent-card.json
  2. POST /agent/{agentName} with SendMessage or SendStreamingMessage
  3. If you receive a task result, use GetTask for later polling
  4. Use SubscribeToTask for SSE replay of task events
Continuity is task-based: use task IDs to poll, stream, or resume work across turns.

Request examples

SendMessage

SendStreamingMessage

GetTask

SubscribeToTask

Operational notes

  • SendMessage can return a task-shaped result when execution is stateful.
  • Tool permissions follow the allowlist in each agent’s config.
  • On model reload, agent routes match your latest declarations.
  • CORS headers are set on agent routes for browser-friendly access.

Troubleshooting

If tool invocation is unexpectedly blocked, check the agent’s tool_access policy and root defaults in .hyperterse.
Next: configure providers in Model providers and tune permission policy in Tool access.