# nimistu — Estonian Business Register (remote · nimistu.ee)

Estonian Business Register: companies, people, beneficial owners, trademarks. Free, no API key.

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

## Components

- remote · `nimistu.ee`: 76/100 (this document), [markdown](https://verifymcp.io/servers/nimistu-nimistu-mcp/api-mcp.md), [page](https://verifymcp.io/servers/nimistu-nimistu-mcp/api-mcp)
- remote · `nimistu.ee`: 26/100, [markdown](https://verifymcp.io/servers/nimistu-nimistu-mcp/api-sse.md), [page](https://verifymcp.io/servers/nimistu-nimistu-mcp/api-sse)

## Channel facts

- Endpoint: `https://nimistu.ee/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## 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-03.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1441 tokens (~144/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 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 nimistu-nimistu-mcp https://nimistu.ee/api/mcp
```

### Codex

```toml
[mcp_servers.nimistu-nimistu-mcp]
url = "https://nimistu.ee/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nimistu-nimistu-mcp": {
      "type": "remote",
      "url": "https://nimistu.ee/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add nimistu-nimistu-mcp --url https://nimistu.ee/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  nimistu-nimistu-mcp:
    url: "https://nimistu.ee/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "nimistu-nimistu-mcp": {
      "type": "http",
      "url": "https://nimistu.ee/api/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-02 (score 76, +1)

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

### 2026-07-31 (score 75, +4)

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

### 2026-07-30 (score 71, +1)

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

### 2026-07-28 (score 70, 0)

- [functional regression] Schema quality: 1273 → 1441

### 2026-07-27 (score 70, 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 70)

First indexed and scored.

## MCP tools (10)

### `search` (~118 tokens)

Search Estonian companies, people and trademarks

Full-text search across the nimistu register of Estonian companies, people and trademarks. Returns matches each with a stable `id` (pass to `fetch`, `get_company` or `get_person`) and a canonical nimistu.ee URL. Use this first to locate an entity by name or registry code.

Input parameters:

- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.
- `query` (string, required): A company name, person name, 8-digit registry code, or trademark text.

Output parameters:

- `results` (array): Matched companies, people and trademarks; pass `id` to fetch/get_company/get_person.

### `fetch` (~112 tokens)

Fetch a nimistu record by id

Retrieve the full content of a record by the `id` returned from `search` (e.g. 'company:10000018', 'person:18345', 'trademark:123', 'emtak:47811'). Returns the record text, its canonical nimistu.ee URL and metadata.

Input parameters:

- `id` (string, required): Record id from search, formatted '<type>:<value>'.
- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.

Output parameters:

- `id` (string)
- `metadata` (object): Type-specific metadata, e.g. { type, regCode }.
- `text` (string): The full record rendered as Markdown.
- `title` (string)
- `url` (string): Canonical nimistu.ee URL for the record.

### `get_company` (~106 tokens)

Get full company profile

Full profile of an Estonian company by its registry code: status, address, activity (EMTAK), VAT, employees, financials, tax debt, sanctions, board members, shareholders, supervisory board, foreign parent, subsidiaries and trademarks.

Input parameters:

- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.
- `reg_code` (string, required): 8-digit Estonian registry code (e.g. '10000018').

Output parameters:

- `activity`
- `address`
- `board` (array): Current board members.
- `council` (array): Supervisory board.
- `county`
- `deregisteredAt`
- `email`
- `employeeCount`
- `emtakCode`
- `foreignParent`: { name, country, regCode } or null.
- `founders` (array)
- `lastProfitEur`
- `lastReportYear`
- `lastRevenueEur`
- `legalForm`
- `lei`
- `name` (string)
- `phone`
- `regCode` (string)
- `registeredAt`
- `sanctionCount`
- `shareCapitalEur`
- `shareholders` (array)
- `status`
- `subsidiaryCount` (number)
- `taxDebtEur`
- `trademarkCount` (number)
- `url` (string)
- `vatNumber`
- `website`

### `get_person` (~126 tokens)

Get a person and their company connections

Profile of a person in the Estonian business register: birth year, sanctions, and all companies they are connected to (board member, shareholder, etc.), current and past. Look the person up with `search` first to get their id.

Input parameters:

- `id` (integer): Internal person id (from a search result, e.g. 18345).
- `isikukood` (string): Estonian personal identification code (11 digits), if known.
- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.

Output parameters:

- `birthYear`
- `connectionCount` (number)
- `connections` (array): Companies the person is/was connected to, each with its roles.
- `country`
- `id`
- `name` (string)
- `sanctionCount`
- `url` (string)

### `lookup_emtak` (~128 tokens)

Look up or search EMTAK activity codes

EMTAK is the Estonian classification of economic activities. Pass `code` for details + stats on one activity, or `query` to search activities by Estonian name. Returns the code, ET/EN name and the count of active companies.

Input parameters:

- `code` (string): Exact EMTAK code, e.g. '47811'.
- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.
- `query` (string): Search activities by Estonian keyword, e.g. 'jaemüük'.

Output parameters:

- `activeCompanies`
- `code` (string)
- `counties` (array)
- `nameEn`
- `nameEt`
- `query` (string)
- `results` (array)
- `stats`
- `url` (string)

### `companies_by_emtak` (~124 tokens)

List companies by EMTAK activity

List active Estonian companies whose primary activity is a given EMTAK code, optionally filtered by county. Use `lookup_emtak` to find the code first.

Input parameters:

- `code` (string, required): Exact EMTAK code, e.g. '47811'.
- `county` (string): Optional county filter, e.g. 'Harju maakond'.
- `limit` (integer): Max companies to return (default 25).
- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.

Output parameters:

- `code` (string)
- `rows` (array): Companies with name, reg_code and city.
- `total`: Total active companies matching (number).
- `url` (string)

### `whats_new_today` (~77 tokens)

What happened today in the Estonian business register

A summary of recent activity: a daily narrative of notable changes plus counts of newly registered companies (last few working days), broken down by legal form, county and activity, with a sample of the newest companies.

Input parameters:

- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.

Output parameters:

- `counties` (array): New registrations by county.
- `emtak` (array): New registrations by activity.
- `forms` (array): New registrations by legal form.
- `newest` (array): Sample of the newest companies.
- `summary`: Daily narrative summary text, or null.
- `summaryDate`
- `totals`: { total, today } new-registration counts.

### `search_trademarks` (~98 tokens)

Search trademarks

Search Estonian-linked trademarks (EUIPO + Estonian Patent Office) by their verbal element. Returns each mark with its status and the owning company.

Input parameters:

- `limit` (integer): Max results (default 10).
- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.
- `query` (string, required): Trademark text to search for, e.g. 'BOLT'.

Output parameters:

- `query` (string)
- `results` (array): Matched trademarks, each with status and owning company.

### `annual_reports` (~168 tokens)

Annual reports (majandusaasta aruanded) for an Estonian company

Every filed annual report for one company, newest first: revenue, profit, employees, equity, assets, liabilities and labour cost, plus ratios computed from them (net margin, revenue and profit per employee, year-over-year revenue change, equity ratio, current ratio, labour share) and where the latest year sits against the company's EMTAK sector median. Use `get_company` for the profile; use this when the question is about financial history or performance.

Input parameters:

- `limit` (integer): How many years to return, newest first. Default 10.
- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.
- `reg_code` (string, required): 8-digit Estonian registry code (e.g. '10000018').

Output parameters:

- `name` (string)
- `ratios`: Computed from the latest report: { netMarginPct, revenuePerEmployee, profitPerEmployee, revenueGrowthPct, equityRatioPct, currentRatio, labourSharePct }. Null when nothing has been filed.
- `regCode` (string)
- `reports` (array): One entry per filed year: { year, revenueEur, profitEur, employees, equityEur, totalAssetsEur, liabilitiesEur, labourCostsEur, isAudited }.
- `sector`: Peer comparison for the latest year: { key, level, companies, medianRevenueEur, medianMarginPct, medianRevPerEmployee, medianGrowthPct }, or null when the sector has too few filers.
- `url` (string)

### `rankings` (~154 tokens)

Top lists / rankings of Estonian companies and people

Curated leaderboards from the nimistu data: top taxpayers, revenue, profit, employers, tax debtors, grant recipients, procurement winners, people holding the most board seats, audit firms, recipients of state payments, VAT groups, top corporate shareholders, and members of Parliament (Riigikogu) or the Cabinet active in business.

Input parameters:

- `limit` (integer): How many rows (default 20).
- `list` (string, required): Which leaderboard to return.
- `locale` (string): Response language for labels and URLs. 'et' (Estonian, default) or 'en'.
- `year` (integer): Year for financial lists (taxpayers/revenue/profit/employers). Defaults to the latest available.

Output parameters:

- `list` (string)
- `rows` (array): Ranked entries for the requested leaderboard.
- `year`: Year used for financial lists, or null.

## Diagnostics

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

## Score history

- 2026-08-03: 76
- 2026-08-02: 76
- 2026-08-01: 75
- 2026-07-31: 75
- 2026-07-30: 71
- 2026-07-29: 70
- 2026-07-28: 70
- 2026-07-27: 70
- 2026-07-26: 70

## Links

- Remote endpoint: https://nimistu.ee/api/mcp
- Repository: https://github.com/Nimistu/nimistu-mcp
- Website: https://nimistu.ee/
- Changelog RSS feed: https://verifymcp.io/servers/nimistu-nimistu-mcp/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/nimistu-nimistu-mcp/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/nimistu-nimistu-mcp/api-mcp
