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

# Claude Desktop

> Use Ovra inside Claude Desktop with one block of JSON config.

Claude Desktop speaks MCP natively. Add Ovra and the chat window picks up 19 `ovra_*` tools.

<Note>
  Sandbox-only today. Use a `sk_sandbox_*` or `sk_test_*` key.
</Note>

## Where the config lives

| OS      | Path                                                              |
| ------- | ----------------------------------------------------------------- |
| macOS   | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Windows | `%APPDATA%\Claude\claude_desktop_config.json`                     |
| Linux   | `~/.config/Claude/claude_desktop_config.json`                     |

## Streamable HTTP (recommended)

```json theme={}
{
  "mcpServers": {
    "ovra": {
      "type": "streamable-http",
      "url": "https://api.getovra.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk_sandbox_..."
      }
    }
  }
}
```

## Stdio (local subprocess)

```json theme={}
{
  "mcpServers": {
    "ovra": {
      "command": "npx",
      "args": ["@ovra/mcp@latest"],
      "env": {
        "OVRA_API_KEY": "sk_sandbox_..."
      }
    }
  }
}
```

Restart Claude Desktop. The tool menu should now list 19 `ovra_*` tools.

## Examples

<AccordionGroup>
  <Accordion title="Check spending">
    > "Show me my agents and what they've spent in the last 30 days."

    Claude calls `ovra_agent { action: "get" }` and `ovra_transaction { action: "get" }`, replies with a summary.
  </Accordion>

  <Accordion title="Make a purchase">
    > "Buy a domain on namecheap.com for my-project.dev"

    Claude calls `ovra_pay { action: "checkout", agentId, purpose, amount, merchant }` and reports the transaction ID.
  </Accordion>

  <Accordion title="Inspect policy">
    > "Would a EUR 500 purchase at amazon.de be allowed for my procurement agent?"

    Claude calls `ovra_policy { action: "get", agentId }` and explains the limit.
  </Accordion>

  <Accordion title="File a dispute">
    > "Open a dispute on tx\_abc — package never arrived."

    Claude calls `ovra_dispute { action: "file", transactionId: "tx_abc", reason: "not_received" }`. Plan-tier-gated (Business+).
  </Accordion>
</AccordionGroup>

## Recommended tools

| Tool               | Purpose                                 |
| ------------------ | --------------------------------------- |
| `ovra_pay`         | Full payment flow                       |
| `ovra_agent`       | List agents, check status               |
| `ovra_intent`      | Declare and verify                      |
| `ovra_credential`  | Fine-grained credential lifecycle       |
| `ovra_transaction` | History + memo                          |
| `ovra_policy`      | Read spending limits                    |
| `ovra_config`      | Inspect API keys + webhooks (read-only) |

## Troubleshooting

* **Tools don't appear:** quit and relaunch Claude Desktop fully — re-loading from the menu doesn't refresh MCP servers.
* **Auth errors:** `GET /keys` to confirm the key isn't revoked. If you rotated, update the config.
* **Sandbox confusion:** every Ovra response carries `X-Ovra-Mode: test|live`. In sandbox you'll always see `test`.

## Next

<CardGroup cols={2}>
  <Card title="MCP setup" icon="terminal" href="/mcp/setup">
    Other clients and advanced config.
  </Card>

  <Card title="MCP tools" icon="book" href="/mcp/tools">
    Every action and parameter.
  </Card>

  <Card title="Quickstart" icon="play" href="/quickstart">
    Five-minute end-to-end run.
  </Card>
</CardGroup>
