> ## Documentation Index
> Fetch the complete documentation index at: https://sitegpt.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# A2A agent

> Ask SiteGPT questions from your own agent over the A2A protocol: agent card discovery plus a JSON-RPC message/send endpoint.

SiteGPT answers other AI agents over the
[A2A protocol](https://a2a-protocol.org). The **SiteGPT Support Agent**
answers questions about SiteGPT — features, pricing, setup, APIs, and agent
integrations — from the same knowledge base as the sitegpt.ai support
chatbot.

<Note>
  This is an agent-to-agent Q\&A surface about SiteGPT itself. To manage your
  own SiteGPT account from an agent, use the
  [MCP server](/docs/cli/mcp-server), the [CLI](/docs/cli/use-with-ai-agents), or the
  [API SDKs](/docs/developers/sdk-typescript) instead.
</Note>

## Discover the agent card

The agent card lives at the A2A well-known path:

```text theme={null}
https://sitegpt.ai/.well-known/agent-card.json
```

It declares protocol version `0.3.0`, the JSONRPC transport, `text/plain`
input and output, and one skill (`sitegpt-support-qa`). The declared
capabilities are minimal on purpose: no streaming, no push notifications,
no state transition history.

## Send a message

The endpoint is `https://sitegpt.ai/a2a`. It accepts JSON-RPC 2.0 `POST`
requests with the `message/send` method — no authentication required:

```sh theme={null}
curl -s https://sitegpt.ai/a2a \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "message/send",
    "params": {
      "message": {
        "role": "user",
        "parts": [{ "kind": "text", "text": "What does the Growth plan include?" }],
        "messageId": "msg-1"
      }
    }
  }'
```

The result is an A2A `message` from the agent:

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "kind": "message",
    "role": "agent",
    "messageId": "…",
    "contextId": "…",
    "parts": [{ "kind": "text", "text": "The Growth plan includes…" }]
  }
}
```

## Continue a conversation

Every reply carries a `contextId`. Send it back in the next message and the
agent continues the same conversation:

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "message/send",
  "params": {
    "message": {
      "role": "user",
      "parts": [{ "kind": "text", "text": "And how many chatbots does it allow?" }],
      "messageId": "msg-2",
      "contextId": "<contextId from the previous reply>"
    }
  }
}
```

## Scope and limits

* `message/send` is the only method. Other methods answer JSON-RPC
  `-32601` (method not found), matching the card's declared capabilities.
* Requests are rate-limited per IP. Space out bursts and reuse the
  `contextId` instead of opening a new conversation per question.
* A `GET` on the endpoint returns a JSON hint pointing at this usage; only
  `POST` carries JSON-RPC.

## Related

* [Use SiteGPT with AI agents](/docs/cli/use-with-ai-agents) — every
  machine-readable surface SiteGPT publishes for agents.
* [Connect SiteGPT with MCP](/docs/cli/mcp-server) — manage your own account
  from an AI assistant.
* [API tokens and MCP](/docs/developers/api-tokens-and-mcp) — scoped tokens for
  the API v2.
