kviria. Its arguments are the request body of
the Agent endpoint: the request’s fields (request,
place, kind, streets, street, address, side, pick, answer),
which your agent fills from the user’s words, and state, anchor,
rangeM and confirmation. Its result is the same response, as
structured content and as JSON text. The tool’s schemas are the
tool definition.
The server keeps no session. The conversation travels in state, as an
ordinary argument: copy it from the last result into the next call.
Connecting
Every request to/mcp carries an OAuth token or a Kviria key:
- OAuth, for clients that connect in one click (Claude, ChatGPT, Claude
Code, Cursor, VS Code). A request without a token gets HTTP
401with aWWW-Authenticateheader that names Kviria’s metadata. The client starts OAuth from it and opens Kviria’s connect page, where you allow it. Kviria supports Client ID Metadata Documents and dynamic client registration, with PKCE (S256). - A Kviria key, for clients that send a fixed header:
Authorization: Bearer kvr_..., from api.kviria.com/key.
PAYMENT-SIGNATURE on the HTTP request that carries the tool call.
- A request body is at most 64 KB, and holds one JSON-RPC message. A batch
(an array) is refused with
400and the JSON-RPC error-32600. - MCP calls do not need an agent name.
When a call is refused
- A call Kviria refuses comes back as a tool result with
isError: true. Its text is the same JSON error body the HTTP endpoint sends, such asinvalid_statewith an emptystate. See Errors. - Arguments that do not match the tool’s schema are refused before Kviria
sees them, with an “Input validation error” text. An empty
anchorobject is one: when you have no new position, leaveanchorout.
Discovery
- The server card:
https://api.kviria.com/.well-known/mcp/server-card.json - The registry name:
com.kviria/kviria - The OpenAPI document:
https://api.kviria.com/openapi.json