Ärikratt

Estonian companies, EMTAK, grants and tenders from public registers.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
83%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,796Tokens (tool definitions)
~2.3 KBTypical response size
Significant attention impact (2.97% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "arikratt": {
      "url": "https://arikratt.ee/mcp"
    }
  }
}

Remote endpoints

https://arikratt.ee/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_companies(query, county, emtak, include_inactive, cursor, ...)

Search active legal entities by current or former name or registry code. Use include_inactive for non-active statuses. County aliases accepted; unknown county errors. Opaque cursor pagination. Use this for a short list when you have a name or a code. Use get_company for one code's full card, and find_companies to filter by county, EMTAK, revenue, or employees.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Company name or 8-digit registry code",
      "title": "Query",
      "type": "string"
    },
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "County name or alias (Harju, Harjumaa, Harju maakond). Valid: Ida-Viru maakond, Lääne-Viru maakond, Harju maakond, Hiiu maakond, Jõgeva maakond, Järva maakond, Lääne maakond, Põlva maakond, Pärnu maakond, Rapla maakond, Saare maakond, Tartu maakond, Valga maakond, Viljandi maakond, Võru maakond, Maakond puudu.",
      "title": "County"
    },
    "emtak": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "EMTAK code or prefix",
      "title": "Emtak"
    },
    "include_inactive": {
      "default": false,
      "description": "Include liquidated, bankrupt, and deleted companies. Default false.",
      "title": "Include Inactive",
      "type": "boolean"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Opaque cursor from a previous next_cursor for the next page",
      "title": "Cursor"
    },
    "limit": {
      "default": 10,
      "description": "At most 25 companies",
      "maximum": 25,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_companiesArguments"
}
🟢get_company(registry_code, sections)

Company profile, latest accounts (or all years via sections), last 8 EMTA quarters, current tax debt, aid, licences, announcements, legal-entity owners, and similar companies. Optional sections add permits, EMTAK activities, EU grants, register history, state contracts, tax-debt history, distress trend, de minimis ceilings, undirected successions, peer percentiles, and procurement wins. Use company_procurement for the paginated award list. Use check_counterparty when the question is only status, tax debt, a missing report, or insolvency. Use search_companies when you only have a name. Use watch_companies for typed changes across many codes.

Input Schema

{
  "type": "object",
  "properties": {
    "registry_code": {
      "description": "8-digit commercial register code",
      "title": "Registry Code",
      "type": "string"
    },
    "sections": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional extras: permits, activities, grants (EU projects), history (company events), state_contracts, financials (all years), tax_debt_history, distress_trend, de_minimis, successions (undirected legal links), peers (percentiles), procurement_wins (single-winner totals, shared lots, top buyers, flags). Default omits these and returns latest financials only.",
      "title": "Sections"
    }
  },
  "required": [
    "registry_code"
  ],
  "title": "get_companyArguments"
}
🟢check_counterparty(registry_code)

Status, tax debt, last filed report, overdue days, insolvency or liquidation notices, and distress for one registry code. Use this before invoicing. Use get_company for the wider financial card, and risk_signals to scan many companies for one signal.

Input Schema

{
  "type": "object",
  "properties": {
    "registry_code": {
      "description": "8-digit commercial register code",
      "title": "Registry Code",
      "type": "string"
    }
  },
  "required": [
    "registry_code"
  ],
  "title": "check_counterpartyArguments"
}
🟢compare_companies(registry_codes, year)

Compare up to four companies for one year: accounts, tax debt, distress, and revenue percentile. Use find_companies to discover codes first, and sector_stats for the industry median rather than named peers.

Input Schema

{
  "type": "object",
  "properties": {
    "registry_codes": {
      "description": "One to four 8-digit registry codes",
      "items": {
        "type": "string"
      },
      "maxItems": 4,
      "minItems": 1,
      "title": "Registry Codes",
      "type": "array"
    },
    "year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Financial year. Defaults to the snapshot year.",
      "title": "Year"
    }
  },
  "required": [
    "registry_codes"
  ],
  "title": "compare_companiesArguments"
}
🟢find_companies(county, emtak, min_revenue, max_revenue, min_employees, ...)

Capped company list sorted by revenue descending, filtered by county, EMTAK, revenue, employees, or no current tax debt. County aliases accepted. No personal emails or phone numbers. Use search_companies for a name lookup, and get_company on a code from this list.

Input Schema

{
  "type": "object",
  "properties": {
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "County name or alias. Valid: Ida-Viru maakond, Lääne-Viru maakond, Harju maakond, Hiiu maakond, Jõgeva maakond, Järva maakond, Lääne maakond, Põlva maakond, Pärnu maakond, Rapla maakond, Saare maakond, Tartu maakond, Valga maakond, Viljandi maakond, Võru maakond, Maakond puudu.",
      "title": "County"
    },
    "emtak": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "EMTAK code or prefix",
      "title": "Emtak"
    },
    "min_revenue": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum annual revenue, EUR",
      "title": "Min Revenue"
    },
    "max_revenue": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum annual revenue, EUR",
      "title": "Max Revenue"
    },
    "min_employees": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Minimum average employees",
      "title": "Min Employees"
    },
    "max_employees": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum average employees",
      "title": "Max Employees"
    },
    "no_tax_debt": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Keep only companies with no current tax debt",
      "title": "No Tax Debt"
    },
    "year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Financial year",
      "title": "Year"
    },
    "limit": {
      "default": 25,
      "description": "At most 50 companies",
      "maximum": 50,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "find_companiesArguments"
}
🟢sector_stats(emtak, county, year)

Sector medians, percentiles, and company counts for one EMTAK 2025 code. Old EMTAK 2008 codes are resolved through the snapshot crosswalk and the result carries a note. Use region_stats when the question is a county rather than an industry, and compare_companies for named firms.

Input Schema

{
  "type": "object",
  "properties": {
    "emtak": {
      "description": "EMTAK 2025 code or division. EMTAK 2008 codes are resolved via the snapshot crosswalk.",
      "title": "Emtak",
      "type": "string"
    },
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "County name or alias, optional. Valid: Ida-Viru maakond, Lääne-Viru maakond, Harju maakond, Hiiu maakond, Jõgeva maakond, Järva maakond, Lääne maakond, Põlva maakond, Pärnu maakond, Rapla maakond, Saare maakond, Tartu maakond, Valga maakond, Viljandi maakond, Võru maakond, Maakond puudu.",
      "title": "County"
    },
    "year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Year",
      "title": "Year"
    }
  },
  "required": [
    "emtak"
  ],
  "title": "sector_statsArguments"
}
🟢region_stats(county, year)

County figures, or every county when county is omitted: medians, employment, and aid. Use sector_stats when the question is an EMTAK rather than a place.

Input Schema

{
  "type": "object",
  "properties": {
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "County name or alias. Omit for every county. Valid: Ida-Viru maakond, Lääne-Viru maakond, Harju maakond, Hiiu maakond, Jõgeva maakond, Järva maakond, Lääne maakond, Põlva maakond, Pärnu maakond, Rapla maakond, Saare maakond, Tartu maakond, Valga maakond, Viljandi maakond, Võru maakond, Maakond puudu.",
      "title": "County"
    },
    "year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Year",
      "title": "Year"
    }
  },
  "title": "region_statsArguments"
}
🟢open_calls(emtak, county, provider, deadline_within_days)

Open funding calls from EIS, PRIA, and KIK. Use procurement_notices for public tenders. This tool does not draft an application.

Input Schema

{
  "type": "object",
  "properties": {
    "emtak": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "EMTAK code. Matched on the division when the call has rules.",
      "title": "Emtak"
    },
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "County name or alias. Valid: Ida-Viru maakond, Lääne-Viru maakond, Harju maakond, Hiiu maakond, Jõgeva maakond, Järva maakond, Lääne maakond, Põlva maakond, Pärnu maakond, Rapla maakond, Saare maakond, Tartu maakond, Valga maakond, Viljandi maakond, Võru maakond, Maakond puudu.",
      "title": "County"
    },
    "provider": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Funder, for example EIS",
      "title": "Provider"
    },
    "deadline_within_days": {
      "anyOf": [
        {
          "maximum": 3650,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Keep calls whose deadline is within this many days",
      "title": "Deadline Within Days"
    }
  },
  "title": "open_callsArguments"
}
🟢procurement_notices(query, cpv, buyer, days, cursor, ...)

Public procurement notices with buyer, deadline, and CPV. Title/buyer text uses contains matching. Opaque cursor pagination. Companies and authorities only. Use company_procurement for awards won by one registry code. Use open_calls for grants and funding calls, not tenders.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Title or buyer text (contains match on folded title/authority)",
      "title": "Query"
    },
    "cpv": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "CPV code prefix",
      "title": "Cpv"
    },
    "buyer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Buyer name",
      "title": "Buyer"
    },
    "days": {
      "anyOf": [
        {
          "maximum": 3650,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Published within this many days",
      "title": "Days"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Opaque cursor from a previous next_cursor for the next page",
      "title": "Cursor"
    },
    "limit": {
      "default": 15,
      "description": "At most 25 notices",
      "maximum": 25,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "procurement_noticesArguments"
}
🟢company_procurement(registry_code, cursor, limit)

Paginated public-procurement awards for one legal-entity winner. Single-winner and shared multi-winner lots are both listed; attributable company totals live on get_company sections procurement_wins. Opaque cursor pagination, trim-aware under the 8 KB envelope. FIE sole traders are withheld. Use procurement_notices for open notices by text or CPV, and get_company for the win summary.

Input Schema

{
  "type": "object",
  "properties": {
    "registry_code": {
      "description": "8-digit commercial register code",
      "title": "Registry Code",
      "type": "string"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Opaque cursor from a previous next_cursor for the next page",
      "title": "Cursor"
    },
    "limit": {
      "default": 15,
      "description": "At most 25 awards",
      "maximum": 25,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "registry_code"
  ],
  "title": "company_procurementArguments"
}
🟢risk_signals(kind, county, emtak, cursor, limit)

Companies that currently match one register signal: tax debt, bankruptcy, liquidation, or distress. Each row is a company, not a person. Opaque cursor pagination. Use check_counterparty for one known registry code.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "tax_debt, bankruptcy, liquidation, distress_high, or distress_moderate",
      "title": "Kind"
    },
    "county": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "County name or alias. Valid: Ida-Viru maakond, Lääne-Viru maakond, Harju maakond, Hiiu maakond, Jõgeva maakond, Järva maakond, Lääne maakond, Põlva maakond, Pärnu maakond, Rapla maakond, Saare maakond, Tartu maakond, Valga maakond, Viljandi maakond, Võru maakond, Maakond puudu.",
      "title": "County"
    },
    "emtak": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "EMTAK code or prefix",
      "title": "Emtak"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Opaque cursor from a previous next_cursor for the next page",
      "title": "Cursor"
    },
    "limit": {
      "default": 15,
      "description": "At most 25 signals",
      "maximum": 25,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "risk_signalsArguments"
}
🟢watch_companies(registry_codes, since, cursor)

Typed change events for a bounded list of registry codes: name, status, capital, succession, tax-debt, and distress moves. Returns an exceptions-oriented watch list with report status and current tax debt. Use check_counterparty for one code, and get_company sections tax_debt_history or distress_trend for deeper history on one company.

Input Schema

{
  "type": "object",
  "properties": {
    "registry_codes": {
      "description": "One to fifty 8-digit registry codes (Büroo change feed)",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "title": "Registry Codes",
      "type": "array"
    },
    "since": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Opaque change cursor (event id) or previous snapshot_id. Omit for the full typed change list in this snapshot.",
      "title": "Since"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Opaque cursor from a previous next_cursor for the next page",
      "title": "Cursor"
    }
  },
  "required": [
    "registry_codes"
  ],
  "title": "watch_companiesArguments"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools