Agent Kit exposes MCP tools over POST /mcp (JSON-RPC tools/list and tools/call). Do not rely on a fixed tool list in documentation — names and count change as Agent Kit grows.
Discover on every connect. Call tools/list (or open the dashboard Tools page) for the live catalog: each entry includes name, description, and inputSchema. Wire your LLM or backend from that response.

Authentication

POST https://agent-kit.abstraxn.com/mcp
Authorization: <application-api-key-or-agent-api-key>
Content-Type: application/json
Key typeagent_id in arguments
Application API key (dashboard Overview)Required when multiple agents exist
Per-agent API key (createAgentagent.apiKey)Optional; must match that agent if provided

Tool categories (OAuth scopes)

OAuth and consent use scopes, not individual tool names. New tools are included when they fit the same category.
ScopeWhat it covers
mcp:tools:readWallet/chain reads and x402 catalog discovery
mcp:tools:transferUnsigned transfer intents — your backend signs and broadcasts
mcp:tools:paidFixed-price and external x402 HTTP calls
After OAuth or API-key connect, call tools/list to see which names are available for your granted scopes.

Calling a tool

  1. tools/list → pick a name and read inputSchema.
  2. tools/call with params.name and params.arguments (JSON object matching the schema).
  3. For application API keys, pass agent_id in arguments when the schema requires an agent (typical for wallet actions).
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "<from-tools-list>",
    "arguments": {
      "agent_id": "AGENT_UUID"
    }
  }
}
Some tools return payment required (-32402) on the first call. That is expected:
  1. Parse accepts / payment metadata from the error or tool result.
  2. On your backend, sign paymentPayload with the agent accessKey.
  3. Retry tools/call with paymentPayload at the top level of params (sibling to name / arguments).
Unsigned transfer intents are different: Agent Kit returns an unsigned transaction; your backend signs with accessKey and broadcasts — it does not use the x402 retry flow.

uniswap_swap_quote (Uniswap BYOK)

When Uniswap is enabled in Integrations, agents can call uniswap_swap_quote for EVM swap quotes. Requires a developer Uniswap API key in the dashboard. Returns unsigned approval and swap transactions — see Uniswap integration and Swap confirmation.

lifi_swap_quote (LiFi BYOK)

When LiFi is enabled in Integrations, agents can call lifi_swap_quote for same-chain swaps and cross-chain bridges. Requires integrator name, API key, and fee in the dashboard. Returns unsigned approval (if needed) and route transaction on the source chain — see LiFi integration and Swap confirmation.

oneinch_swap_quote (1inch BYOK)

When 1inch is enabled in Integrations, agents can call oneinch_swap_quote for same-chain EVM aggregator swaps. Requires a 1inch API key in the dashboard. Returns unsigned approval (if needed) and swap transaction — see 1inch integration and Swap confirmation.

jupiter_swap_quote (Jupiter BYOK)

When Jupiter is enabled in Integrations, agents can call jupiter_swap_quote for SPL token swaps on Solana mainnet and devnet. Requires a Jupiter API key in the dashboard. Returns an unsigned versioned transaction for the agent Solana wallet — see Jupiter integration and Swap confirmation. Details: x402 payments.

Example: list tools

APP_KEY="<dashboard-api-key>"
MCP="https://agent-kit.abstraxn.com/mcp"

curl -s -X POST "$MCP" \
  -H "Authorization: $APP_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq .
Use a name from result.tools[] for any tools/call example in Smoke test.

LLM integration pattern

The sample backend API (NestJS reference):
  1. Sets MCP_SERVER_URL + MCP_SERVER_AUTH_TOKEN (= application API key).
  2. On startup (and after reconnect), runs initialize + tools/list — map whatever the server returns.
  3. Maps discovered tools to OpenAI (or other LLM) function definitions.
  4. During chat, the LLM may call tools/call; results are fed back into the model.
  5. Paid tools trigger x402 signing in AgentSigningService.
Your frontend only talks to your JWT API — never to MCP directly.

Next steps