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

# MCP

> Connect Kviria as a Model Context Protocol server - one tool, no setup.

Kviria ships a stateless
[Model Context Protocol](https://modelcontextprotocol.io) server
alongside the HTTP endpoint. It exposes **one tool** - `kviria` - that
wraps `POST /v1/agent` with the same skill contract, the same
decisions, and the same wallet limits. No session state.

```
https://api.kviria.com/mcp
Transport: streamable HTTP
```

The tool's input and output schemas are the authoritative
[tool definition](https://kviria.com/tool-definition.json) - identical
to the HTTP endpoint, so anything true of the HTTP contract is true of
MCP.

## Authentication

The wallet sign-in rides the MCP transport's HTTP headers — exactly
how x402 payments travel on MCP. Send `SIGN-IN-WITH-X` (and
`PAYMENT-SIGNATURE` for top-ups) on the HTTP POSTs to `/mcp`; the
same free 50 turns/day per wallet and per-turn pricing apply. Agents
built on x402-aware MCP clients do this natively; a bridge client
(see the [x402 MCP guide](https://docs.x402.org/guides/mcp-server-with-x402))
signs on behalf of hosts like Claude Desktop.

## Connect a client

Any MCP client that speaks streamable HTTP works. For Claude Desktop,
add to the config (Settings -> Developer -> Edit Config):

```json theme={null}
{
  "mcpServers": {
    "kviria": {
      "type": "streamable-http",
      "url": "https://api.kviria.com/mcp"
    }
  }
}
```

Other clients (Claude Code, Inspector, custom integrations) accept the
same URL. There is nothing to install.

## What the agent sees

One tool: `kviria`. The agent sends the user's words or a structured
intent plus their anchor, and receives the same five decisions
(`resolved`, `confirm`, `candidates`, `notFound`, `clarify`) the HTTP
endpoint returns. The narrowing loop - echo the candidates back, bind
the pick, pass the confirm answer - works exactly as described in the
[Quickstart](/quickstart).

## Notes

* **Stateless**: all conversation state is caller-held and echoed, same
  as the HTTP endpoint. The server keeps nothing between calls.
* **Wallet limits** apply per turn, same as
  [the HTTP endpoint](/api/rate-limits).
* **Discovery**: the server card is published at
  `https://api.kviria.com/.well-known/mcp/server-card.json`; the
  machine spec at `https://api.kviria.com/openapi.json`.
