protogrid

Search / com.kviria/kviria

Kviria

R2· OAuth, once

Location understanding for AI agents: know where, then navigate there. Beta: contiguous US.

v2.0.0 · active · website · descriptor JSON · versions

An agent can connect after a one-time OAuth consent by a human.Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.
Quality70needs work
Trust83of 100
Uptime, 30 days100%
Latency p50407 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "kviria": {
      "type": "http",
      "url": "https://api.kviria.com/mcp",
      "headers": {
        "Authorization": "Bearer ${KVIRIA_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http kviria https://api.kviria.com/mcp --header "Authorization: Bearer ${KVIRIA_TOKEN}"
[mcp_servers.kviria]
url = "https://api.kviria.com/mcp"
bearer_token_env_var = "KVIRIA_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kviria": {
      "type": "remote",
      "url": "https://api.kviria.com/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:KVIRIA_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "kviria": {
      "type": "http",
      "url": "https://api.kviria.com/mcp",
      "headers": {
        "Authorization": "Bearer ${KVIRIA_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=kviria&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmt2aXJpYS5jb20vbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7S1ZJUklBX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "kviria": {
      "type": "http",
      "url": "https://api.kviria.com/mcp",
      "headers": {
        "Authorization": "Bearer ${KVIRIA_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "kviria": {
      "httpUrl": "https://api.kviria.com/mcp",
      "headers": {
        "Authorization": "Bearer ${KVIRIA_TOKEN}"
      }
    }
  }
}
extensions:
  "kviria":
    enabled: true
    name: "kviria"
    type: streamable_http
    uri: "https://api.kviria.com/mcp"
    headers:
      "Authorization": "Bearer ${KVIRIA_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${KVIRIA_TOKEN}. The registry never accepts secret values.

Quality 70 / 100needs work

protocoln/a · weight 25
  • n/a
    protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)
authorization100 · weight 15
  • pass
    auth.prmProtected Resource Metadata (RFC 9728) published
  • pass
    auth.as_metadataauthorization server metadata reachable
  • pass
    auth.cimdClient ID Metadata Documents supported
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene64 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: kviria (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
  • pass
    tools.token_costabout 922 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability50 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

1 tools, about 922 tokens to load them all · tool set c6cf5f8dad74 · tools last changed 2026-10-09 · checked 2026-10-20 17:02 UTC

Tool changes

  • kviriachangeddescription, input schema, output schemameaning changed
    before

    Kviria narrows a user's spoken reference down to exactly one place or address and returns its verified coordinate with an evidence trail. Call it with the user's raw message and their current anchor {lat, lng}. Phrase your reply from the returned facts ONLY: state names, distances, and categories exactly as returned; never invent distances, crosswalks, landmarks, opening hours, or any sensory detail. For a 'confirm' decision, ask the user "is it {name} ({distanceM} m)?" and pass their bare yes/no back as the next transcript, echoing the candidates array verbatim. For 'candidates', list them with their distances and ask which one; on the user's next message echo the SAME candidates array back so the engine binds the pick mechanically. Preserve the pendingConfirm marker on the candidate it came with. The target is the final outcome: present its coordinate, never paraphrase the place name. If the user rejects (no), present the returned candidates or ask for more detail. Do not call with invented anchors; the anchor is the user's real position. Kviria is in beta: current coverage is the contiguous United States (approximately lat 24.4 to 49.5, lng -125.0 to -66.8). Queries outside the covered area return an honest notFound with an out_of_coverage evidence entry, and that turn is free. Tell the user the area is outside current coverage instead of retrying.

    after · 34% of words in common

    Kviria finds the place, address or street corner a user means near their current position and returns its verified coordinate with an evidence trail. When to call: on every user turn of a place conversation, from the first time the user mentions a place, a kind of place, an address, a street, a corner or what is around them, until the place is settled. That includes yes or no answers, picks ("the second one"), corrections ("no, the other one"), follow-ups ("what's across from it") and questions about your last answer ("are you sure?"). Kviria resolves each of these from the state, so do not answer them yourself. What to send: transcript is the user's whole last turn, word for word. state is the `state` field of the previous kviria response, copied exactly: that field only, never the whole response; send an empty string on the first call. anchor is the user's current position exactly as you were given it: send it on the first call, and after that only when the position changes; never invent or round it. What comes back, and your move: one - the place is settled; say its name and distance exactly as returned. one_unconfirmed - ask "Is it {name} ({distanceM} m)?" and send the user's answer as the next call. many - name the candidates with their distances, ask which one, and send the user's answer as the next call. none - Kviria looked and found nothing; say so and ask for a nearby business or landmark. unclear - ask the user to say more about the place. not_a_place_request - the user's words are not about a place; reply to the user yourself. Phrase your reply from the returned facts only; never invent a place, a distance or any other detail. Distances are meters; convert them for your user. Coverage: the contiguous United States. Outside it the answer is none with an out_of_coverage entry and the turn is free; tell the user instead of retrying. Errors: 400 invalid_state means the state was altered; start again with an empty state. 503 parser_unavailable: do not retry the call. Tell the user you cannot look it up right now and to ask again in a moment; never ask the user to rephrase for it.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-3d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.kviria.com/mcp streamable-httpoauth2 AS: https://api.kviria.comyes100%407 ms–2026-10-20

Tools (1)

kviriaKviria finds the place, address or street corner a user means near their current position and returns its verified coordinate with an evidence trail. When to call: on every user turn of a place conversation, from the first time the user mentions a place, a kind of place, an address, a street, a corner or what is around them, until the place is settled. That includes yes or no answers, picks ("the second one"), corrections ("no, the other one"), follow-ups ("what's across from it") and questions about your last answer ("are you sure?"). Kviria resolves each of these from the state, so do not answer them yourself. What to send: transcript is the user's whole last turn, word for word. state is the `state` field of the previous kviria response, copied exactly: that field only, never the whole response; send an empty string on the first call. anchor is the user's current position exactly as you were given it: send it on the first call, and after that only when the position changes; never invent or round it. What comes back, and your move: one - the place is settled; say its name and distance exactly as returned. one_unconfirmed - ask "Is it {name} ({distanceM} m)?" and send the user's answer as the next call. many - name the candidates with their distances, ask which one, and send the user's answer as the next call. none - Kviria looked and found nothing; say so and ask for a nearby business or landmark. unclear - ask the user to say more about the place. not_a_place_request - the user's words are not about a place; reply to the user yourself. Phrase your reply from the returned facts only; never invent a place, a distance or any other detail. Distances are meters; convert them for your user. Coverage: the contiguous United States. Outside it the answer is none with an out_of_coverage entry and the turn is free; tell the user instead of retrying. Errors: 400 invalid_state means the state was altered; start again with an empty state. 503 parser_unavailable: do not retry the call. Tell the user you cannot look it up right now and to ask again in a moment; never ask the user to rephrase for it.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.kviria/kviria",
  "title": "Kviria",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.kviria.com/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional: Bearer kvr_... for clients that send a fixed header (a key from https://api.kviria.com/key). MCP clients that support OAuth need no header."
        },
        {
          "name": "PAYMENT-SIGNATURE",
          "description": "Optional x402 top-up into the account's balance — any amount at or above one turn's price ($0.01 USDC on Base); see GET /v1/x402"
        }
      ]
    }
  ],
  "version": "2.0.0",
  "websiteUrl": "https://kviria.com",
  "description": "Location understanding for AI agents: know where, then navigate there. Beta: contiguous US."
}