# Kelvin — power electronics components

> Read-only parts catalogue for power electronics: search, selection, cross-reference.

- name: io.github.OpenConverters/kelvin
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.OpenConverters%2Fkelvin
- tools: https://api.protogrid.dev/v1/servers/io.github.OpenConverters%2Fkelvin/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "kelvin": {
      "type": "http",
      "url": "https://kelvin.openconverters.com/mcp"
    }
  }
}
```


## Trust

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

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### 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: 100 (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`: 7 of 7 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,194 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name
- pass `stability.new_links`: no tool change named a new site

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

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

- tools: 7, about 1,194 tokens to load them all
- tool set hash: 269b15be28018f222c0d871d5f7587d0
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.OpenConverters/kelvin.svg)](https://protogrid.dev/servers/io.github.OpenConverters/kelvin)
- 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://kelvin.openconverters.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (7)

- `cross_reference`: Find substitutes for a part by MPN — the deterministic, program-only cross-reference the Kelvin web app runs: pre-gate the catalogue at the ranker's own reject edges, then score every candidate on value, ratings, footprint and mount type. No LLM judgement. An original whose own specs are incomplete can never yield a clean 'recommended'.
- `describe_family`: The exact field names one family can be filtered, sorted and bucketed on, and the designRequirements keys its selector reads. Call this before search_parts on an unfamiliar family rather than guessing field names.
- `list_families`: Every component family in the TAS catalogue, with how many parts it holds and whether it has a deterministic selector. Start here.
- `part_details`: One part by MPN: its extracted specs and, optionally, the full TAS catalogue record behind them (datasheet URL, mechanical drawing, provenance).
- `recommend_parts`: Kelvin's deterministic selector: rank real parts against a designRequirements block and return the candidates with the margins that ranked them. Same authority Kirchhoff and Heaviside select through — no LLM judgement, reproducible.
- `search_parts`: Parametric search over one family: numeric ranges, categorical values, MPN substring and manufacturer, with optional facet counts. This is the catalogue question — 'what parts do we have that ...' — and needs no converter design.
- `spec_distribution`: How one numeric spec is distributed across a filtered slice of a family — bucket counts (log or linear) plus how many parts state the value at all. Answers 'what is available' questions that a top-N list cannot.
