# KIRHA Search

> The right context at the right time, from the world's leading data providers. One API. 800+ tools.

- name: com.kirha/search
- version: 1.0.0
- connection class: R1 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 87/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.kirha%2Fsearch
- tools: https://api.protogrid.dev/v1/servers/com.kirha%2Fsearch/tools

**An agent can connect on its own if it already holds `SEARCH_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "search": {
      "type": "http",
      "url": "https://mcp.kirha.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SEARCH_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${SEARCH_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-6d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 87/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list carries no ttlMs, so clients re-fetch it

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 1 of 1 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: Search (destructiveHint, idempotentHint)
- pass `tools.token_cost`: about 327 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 6 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 1, about 327 tokens to load them all
- tool set hash: 6ab599527555f895ab6ff308dca74dc1
- badge: [![protogrid quality](https://protogrid.dev/badge/com.kirha/search.svg)](https://protogrid.dev/servers/com.kirha/search)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.kirha.com/mcp (streamable-http, auth api_key ${SEARCH_TOKEN}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (1)

- `Search`: Live, structured data from 50+ specialized providers in one call. Call this tool whenever an answer depends on facts that change over time or that you should not state from memory. A few examples among many more: market and crypto prices, wallets and DeFi, company records and financials, SEC filings, patents, clinical trials and drug safety, scientific papers, news, prediction markets, packages and CVEs, flights, weather. When no specialized provider fits, it falls back to web search, so it can replace a generic web search on any question. KIRHA plans the query, calls the right providers (SEC, PubMed, CoinGecko, GitHub, Polymarket and more) and returns each provider's raw result. Ask in plain language, there is nothing to configure.
