# su.hpt/hptsu-mcp (remote · mcp.hpt.su)

Search hpt.su — Russian/EAEU vehicle compliance documents: type approvals, certificates, VIN lookup.

- Trust score: 63/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- remote · `mcp.hpt.su`: 63/100 (this document), [markdown](https://verifymcp.io/servers/su-hpt-hptsu-mcp/mcp.md), [page](https://verifymcp.io/servers/su-hpt-hptsu-mcp/mcp)
- pypi · `hptsu-mcp`: 24/100, [markdown](https://verifymcp.io/servers/su-hpt-hptsu-mcp/hptsu-mcp.md), [page](https://verifymcp.io/servers/su-hpt-hptsu-mcp/hptsu-mcp)

## Channel facts

- Endpoint: `https://mcp.hpt.su/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `0.4.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 21 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 39/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 3294 tokens (~149/item across 22 items; 21 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http su-hpt-hptsu-mcp https://mcp.hpt.su/mcp
```

### Codex

```toml
[mcp_servers.su-hpt-hptsu-mcp]
url = "https://mcp.hpt.su/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "su-hpt-hptsu-mcp": {
      "type": "remote",
      "url": "https://mcp.hpt.su/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add su-hpt-hptsu-mcp --url https://mcp.hpt.su/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  su-hpt-hptsu-mcp:
    url: "https://mcp.hpt.su/mcp"
```

### Other

```json
{
  "mcpServers": {
    "su-hpt-hptsu-mcp": {
      "type": "http",
      "url": "https://mcp.hpt.su/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-04 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-03 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 61, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 58, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 57, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 56, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 56)

First indexed and scored.

## MCP tools (21)

### `search_documents` (~61 tokens)

Cross-registry search by document number across all hpt.su kinds.

Input parameters:

- `number`: Document number, full or partial.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).

Output parameters:

- `result` (string)

### `get_document` (~86 tokens)

Fetch a single Document by slug+kind.

Input parameters:

- `kind` (string, required): One of: otts, otch, zotts, zotch, sbkts, zoets, sout, cert, decl. Slug isn't globally unique between kinds, so kind is required.
- `slug` (string, required): Document slug — URL-form of the number (the same as in site URL).

Output parameters:

- `result` (string)

### `search_certificates` (~153 tokens)

Search conformity certificates (ТР ТС / ТР ЕАЭС).

Input parameters:

- `applicant`: Applicant name, full or partial.
- `applicant_inn`: Applicant INN (exact match).
- `manufacturer`: Manufacturer name, full or partial.
- `number`: Certificate number, full or partial.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `product`: Product full name, full or partial.
- `regulations`: Technical regulation code (e.g. 'ТР ТС 018/2011').
- `scheme`: Certification scheme — '1с'…'9с'.
- `status`: Certificate status code.

Output parameters:

- `result` (string)

### `search_declarations` (~154 tokens)

Search declarations of conformity (ТР ТС / ТР ЕАЭС).

Input parameters:

- `applicant`: Applicant name, full or partial.
- `applicant_inn`: Applicant INN (exact match).
- `manufacturer`: Manufacturer name, full or partial.
- `number`: Declaration number, full or partial.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `product`: Product full name, full or partial.
- `regulations`: Technical regulation code (e.g. 'ТР ТС 018/2011').
- `scheme`: Declaration scheme — '1д'…'6д'.
- `status`: Declaration status code.

Output parameters:

- `result` (string)

### `search_otts` (~293 tokens)

Search ОТТС (vehicle type approvals, ТР ТС 018/2011).

Input parameters:

- `axis_count`: Axle count (e.g. '2') or exact 'axes / wheels' (e.g. '2 / 4') — auto-resolved to reference id. A bare axle count may match several wheel configs; then candidates are returned to pick from.
- `brand`: Vehicle brand (e.g. 'Toyota').
- `category`: Vehicle category (M1, N2, L3, …).
- `chassis`: Chassis identifier, full or partial.
- `comm_name`: Commercial name, full or partial.
- `eco_class`: Ecological class — pass '5' or the name; auto-resolved to reference id.
- `issuer`: Certification body name — auto-resolved to id (or pass numeric id). See list_certification_bodies.
- `mods`: Modifications, full or partial.
- `number`: ОТТС number, full or partial.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `type`: Vehicle type / model, full or partial.
- `vin`: VIN, full or partial (5-17 characters).
- `wheel_formula`: Wheel formula (e.g. '4x2'); auto-resolved to reference id.

Output parameters:

- `result` (string)

### `search_otch` (~222 tokens)

Search ОТШ (chassis type approvals).

Input parameters:

- `axis_count`: Axle count (e.g. '2') or exact 'axes / wheels' (e.g. '2 / 4') — auto-resolved to reference id. A bare axle count may match several wheel configs; then candidates are returned to pick from.
- `brand`: Brand.
- `category`: Vehicle category.
- `comm_name`: Commercial name.
- `eco_class`: Ecological class — '5' or name; auto-resolved to reference id.
- `issuer`: Certification body name — auto-resolved to id (or pass numeric id).
- `number`: ОТШ number, full or partial.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `type`: Type / model.
- `vin`: VIN substring (5-17 chars).
- `wheel_formula`: Wheel formula (e.g. '4x2'); auto-resolved to reference id.

Output parameters:

- `result` (string)

### `search_zotts` (~205 tokens)

Search ЗОТТС (vehicle conformity assessment conclusion).

Input parameters:

- `axis_count`: Axle count (e.g. '2') or exact 'axes / wheels' (e.g. '2 / 4') — auto-resolved to reference id. A bare axle count may match several wheel configs; then candidates are returned to pick from.
- `brand`: Brand.
- `category`: Vehicle category.
- `eco_class`: Ecological class — '5' or name; auto-resolved to reference id.
- `issuer`: Certification body name — auto-resolved to id (or pass numeric id).
- `number`: ЗОТТС number.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `type`: Type.
- `vin`: VIN substring.
- `wheel_formula`: Wheel formula (e.g. '4x2'); auto-resolved to reference id.

Output parameters:

- `result` (string)

### `search_zotch` (~206 tokens)

Search ЗОТШ (chassis conformity assessment conclusion).

Input parameters:

- `axis_count`: Axle count (e.g. '2') or exact 'axes / wheels' (e.g. '2 / 4') — auto-resolved to reference id. A bare axle count may match several wheel configs; then candidates are returned to pick from.
- `brand`: Brand.
- `category`: Vehicle category.
- `eco_class`: Ecological class — '5' or name; auto-resolved to reference id.
- `issuer`: Certification body name — auto-resolved to id (or pass numeric id).
- `number`: ЗОТШ number.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `type`: Type.
- `vin`: VIN substring.
- `wheel_formula`: Wheel formula (e.g. '4x2'); auto-resolved to reference id.

Output parameters:

- `result` (string)

### `search_sbkts` (~354 tokens)

Search СБКТС (vehicle safety certificate).

Input parameters:

- `axis_count`: Axle count (e.g. '2') or exact 'axes / wheels' (e.g. '2 / 4') — auto-resolved to reference id. A bare axle count may match several wheel configs; then candidates are returned to pick from.
- `brand`: Brand.
- `category`: Vehicle category.
- `comm_name`: Commercial name.
- `date_from`: Issue date from (YYYY-MM-DD).
- `date_to`: Issue date to (YYYY-MM-DD).
- `eco_class`: Ecological class — '5' or name; auto-resolved to reference id.
- `engine`: ICE engine model, full or partial.
- `fuel`: Engine fuel type, one of: 'бензин', 'дизель', 'газ', 'электро', 'водород'.
- `issuer`: Testing lab name — auto-resolved to id (or pass numeric id). See list_test_labs.
- `motor`: Electric motor model, full or partial.
- `motor_power`: Motor power (kW).
- `number`: СБКТС number.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `powertrain`: Powertrain type: 'ice' (combustion), 'hybrid', 'electric'.
- `type`: Type.
- `vin`: VIN (10-17 chars; substring/exact).
- `wheel_formula`: Wheel formula (e.g. '4x2'); auto-resolved to reference id.
- `year`: Manufacture year (YYYY).

Output parameters:

- `result` (string)

### `search_zoets` (~335 tokens)

Search ЗОЕТС (vehicle technical expertise conclusion).

Input parameters:

- `axis_count`: Axle count (e.g. '2') or exact 'axes / wheels' (e.g. '2 / 4') — auto-resolved to reference id. A bare axle count may match several wheel configs; then candidates are returned to pick from.
- `brand`: Brand.
- `category`: Vehicle category.
- `comm_name`: Commercial name.
- `date_from`: Issue date from (YYYY-MM-DD).
- `date_to`: Issue date to (YYYY-MM-DD).
- `eco_class`: Ecological class — '5' or name; auto-resolved to reference id.
- `engine`: ICE engine model.
- `fuel`: Engine fuel type, one of: 'бензин', 'дизель', 'газ', 'электро', 'водород'.
- `issuer`: Testing lab name — auto-resolved to id (or pass numeric id).
- `motor`: Electric motor model.
- `motor_power`: Motor power (kW).
- `number`: ЗОЕТС number.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `powertrain`: Powertrain type: 'ice' (combustion), 'hybrid', 'electric'.
- `type`: Type.
- `vin`: VIN (10-17 chars).
- `wheel_formula`: Wheel formula (e.g. '4x2'); auto-resolved to reference id.
- `year`: Manufacture year.

Output parameters:

- `result` (string)

### `search_sout` (~73 tokens)

Search СУТ (vehicle type notification — small dataset, only basic fields).

Input parameters:

- `brand`: Brand.
- `number`: СУТ number.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `type`: Type.

Output parameters:

- `result` (string)

### `search_by_vin` (~129 tokens)

Aggregated search by VIN across all car-kinds (ОТТС/ОТШ/ЗОТТС/ЗОТШ/
    СБКТС/ЗОЕТС). Open for any active API key — no subscription required.

    Returns documents whose VIN field contains the given fragment, newest
    first. For exact full-VIN search within a single registry use the
    per-kind tool (search_otts/search_sbkts/…) with its `vin` parameter.

Input parameters:

- `vin` (string, required): VIN substring or full code (5-17 chars).

Output parameters:

- `result` (string)

### `fulltext_search` (~196 tokens)

Full-text search inside type-approval document bodies (PDF text).

    Covers ОТТС / ОТШ / ЗОТТС / ЗОТШ. Other document kinds (СБКТС / ЗОЕТС /
    СУТ / cert / decl) are not covered by full-text search.

    **Premium feature** — requires a plan that includes full-text search
    (see https://hpt.su/pricing/) with a subscription covering at least
    one type-approval kind.

Input parameters:

- `kind`: Filter by registry kind. One of: otts, otch, zotts, zotch. Default: search across all 4 type-approval kinds.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `query` (string, required): Free-text query (Russian, tsquery-syntax allowed).

Output parameters:

- `result` (string)

### `list_document_files` (~148 tokens)

List the files attached to a document.

    Returns `[{file_uid, file_name, kind, pages_count, published_at}]` —
    each entry's `file_uid` can be passed to `download_document_file`.

    A document often has several PDFs (e.g. cleaned + original); use this
    tool to enumerate them and pick the right one before download.

Input parameters:

- `document_slug` (string, required): Document slug (from search.slug field).
- `kind` (string, required): One of: otts, otch, zotts, zotch, sbkts, zoets, sout, cert, decl. Slug isn't globally unique between kinds, so kind is required.

Output parameters:

- `result` (string)

### `download_document_file` (~166 tokens)

Get links for a document file: page URL for everyone, direct
    download URL when the plan allows it.

    Always returns `document_page_url` — the document's page on hpt.su
    where the user can download the file manually under their account.
    Share this link with the user.

    When the plan includes direct downloads, the response also contains
    `download_url` — a personal link to the PDF (works only when signed
    in to hpt.su under the same account that owns the API key; the
    download quota is charged at actual download time). Otherwise
    `download_url` is null and `download_note` explains why.

Input parameters:

- `file_uid` (string, required): DocumentFile UID (from list_document_files).

Output parameters:

- `result` (string)

### `list_brands` (~70 tokens)

Resolve a vehicle brand name to its canonical record (used to filter
    type approvals).

Input parameters:

- `name`: Brand name substring (e.g. 'KAMAZ').
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).

Output parameters:

- `result` (string)

### `list_vehicle_models` (~76 tokens)

Resolve a vehicle model name (within a brand) to canonical record.

Input parameters:

- `brand`: Brand name (auto-resolved to id) or numeric brand id.
- `name`: Model name substring.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).

Output parameters:

- `result` (string)

### `list_test_labs` (~66 tokens)

Lookup accredited testing laboratories (issuers of СБКТС/ЗОЕТС).

Input parameters:

- `name`: Lab name, full or partial.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).

Output parameters:

- `result` (string)

### `list_certification_bodies` (~62 tokens)

Lookup accredited certification bodies (issuers of сертификатов/деклараций).

Input parameters:

- `name`: Body name substring.
- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).

Output parameters:

- `result` (string)

### `list_tnved_codes` (~101 tokens)

TN VED EAEU classifier lookup.

    Note: TN VED codes are linked **only** to certificates and declarations —
    not to vehicle type approvals or safety reports.

Input parameters:

- `page` (integer): 1-based page index.
- `page_size` (integer): Rows per page (max 50).
- `prefix`: TN VED code prefix (e.g. '8704').
- `query`: Free-text description search.

Output parameters:

- `result` (string)

### `list_registry_kinds` (~26 tokens)

Return the catalogue of registry kinds exposed by the hpt.su public API.

Output parameters:

- `result` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/su-hpt-hptsu-mcp/mcp#diagnostics

## Score history

- 2026-08-04: 63
- 2026-08-03: 62
- 2026-08-02: 61
- 2026-08-01: 61
- 2026-07-31: 61
- 2026-07-30: 58
- 2026-07-29: 58
- 2026-07-28: 57
- 2026-07-27: 56
- 2026-07-26: 56

## Links

- Remote endpoint: https://mcp.hpt.su/mcp
- Authorisation metadata: https://mcp.hpt.su/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/hpt-su/hptsu-mcp
- Website: https://hpt.su/
- Changelog RSS feed: https://verifymcp.io/servers/su-hpt-hptsu-mcp/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/su-hpt-hptsu-mcp/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/su-hpt-hptsu-mcp/mcp
