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

# Quickstart

> Connect any MCP client to Spiral Stake and run your first query.

The Spiral MCP is a remote **Streamable HTTP** server. There is nothing to install and no key to obtain.

<CodeGroup>
  ```text Endpoint theme={null}
  https://api.spiralstake.xyz/mcp
  ```
</CodeGroup>

<Steps>
  <Step title="Add the server to your client">
    Point any MCP-compatible client at the endpoint. See the per-client guides for [Claude Desktop](/agents/connect/claude-desktop), [Cursor](/agents/connect/cursor), or [other clients](/agents/connect/other-clients).
  </Step>

  <Step title="Confirm the tools loaded">
    Your client should list seven tools: `list_strategies`, `get_strategy`, `get_prices`, `simulate_leverage`, `build_leverage_tx`, `build_manage_tx`, `get_positions`.
  </Step>

  <Step title="Ask a question">
    Try: *"List Spiral's stable strategies and simulate 3x on the best one."* The agent will call `list_strategies`, reason over the facts, then `simulate_leverage`.
  </Step>
</Steps>

## Verify the endpoint

A quick unauthenticated check that the server is live and MCP-valid:

```bash theme={null}
curl -s -X POST https://api.spiralstake.xyz/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
```

Expect a `result.serverInfo` of `{ "name": "spiralstake", "version": "0.1.0" }`.

<Note>
  Raw `curl` can't complete the full stateful tool handshake — use a real MCP client (below) or the [MCP Inspector](/agents/connect/other-clients) to call tools.
</Note>

## The typical flow

<Steps>
  <Step title="Discover">`list_strategies` → pick a strategy by its risk facts.</Step>
  <Step title="Preview">`simulate_leverage` → confirm leverage, LTV, expected APY.</Step>
  <Step title="Build">`build_leverage_tx` with the user's wallet address → get the unsigned tx.</Step>
  <Step title="Sign">The user signs approvals then the tx in their own wallet (or opens `meta.signingUrl`).</Step>
</Steps>
