dokumendiregister MCP
An MCP server that connects AI assistants to Estonian public-authority document registers. It enables cross-register search, full-text extraction from attached files, and retrieval of documents linked to specific companies by registry code, all without requiring an API key.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://dokumendiregister.ee/api/dokreg-mcp/mcpWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search all Estonian public authority registers with a single query
- Retrieve documents mentioning a specific company by registry code
- Extract and search full text from PDF and ASiC-E attachments
- Find recent documents from specific authorities like the Financial Intelligence Unit
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- dokumendiregister 0.1.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 6 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
search — Search Estonian public-authority documents
Full-text search across the document registers (dokumendiregistrid) of Estonian public authorities — ministries, agencies, inspectorates and municipalities — aggregated by dokumendiregister.ee. Searches document titles, reference numbers, counterparties and the extracted text of attached files. Returns matches each with a stable `id` (pass to `fetch`) and a canonical dokumendiregister.ee URL.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Max results (default 10)."
},
"query": {
"type": "string",
"description": "Free text: a subject, a company or person name, or a document reference number."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"total",
"results"
],
"properties": {
"total": {
"type": "number",
"description": "Total matching documents."
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"url"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"title": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}fetch — Fetch a document by id
Retrieve the full metadata, attached-file list and extracted text of a document by the `id` returned from `search` (e.g. 'doc:22112'). Returns it as Markdown with its linked companies and canonical dokumendiregister.ee URL.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Document id from search, e.g. 'doc:22112'."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"title",
"text",
"url",
"metadata"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"text": {
"type": "string",
"description": "The full document rendered as Markdown."
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"additionalProperties": {}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}search_documents — Search documents with filters
Document search with optional filters: authority (slug), document type, access restriction (Avalik = public, AK = restricted; restricted documents expose metadata only, never file text) and a registration-date range. Returns a page of documents with a total count. Use `list_authorities` to discover authority slugs.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"query": {
"type": "string",
"description": "Free text; omit to browse by filters alone."
},
"offset": {
"type": "integer",
"minimum": 0
},
"date_to": {
"type": "string",
"description": "YYYY-MM-DD upper bound (registration date)."
},
"doc_type": {
"type": "string",
"description": "Exact document type, e.g. 'Kiri'."
},
"authority": {
"type": "string",
"description": "Authority slug from `list_authorities`, e.g. 'rab'."
},
"date_from": {
"type": "string",
"description": "YYYY-MM-DD lower bound (registration date)."
},
"restriction": {
"enum": [
"Avalik",
"AK"
],
"type": "string",
"description": "Access restriction."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"total",
"documents"
],
"properties": {
"total": {
"type": "number"
},
"documents": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"reference",
"authority",
"docType",
"date",
"restriction",
"counterparty",
"companies",
"fileCount",
"url"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"date": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"docType": {
"type": [
"string",
"null"
]
},
"authority": {
"type": "string"
},
"companies": {
"type": "array",
"items": {
"type": "string"
}
},
"fileCount": {
"type": "number"
},
"reference": {
"type": [
"string",
"null"
]
},
"restriction": {
"type": [
"string",
"null"
]
},
"counterparty": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}documents_by_company — Public-authority documents involving a company
Given an 8-digit Estonian registry code (registrikood), return every public-authority document that names that company — across ALL registers at once, with the authority, document type, date and the company's role. Each authority publishes its own register with no shared search, so this cross-register company join is unique to dokumendiregister.ee. Find a registry code via nimistu.ee or the nimistu MCP.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"reg_code"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"offset": {
"type": "integer",
"minimum": 0
},
"reg_code": {
"type": "string",
"description": "8-digit Estonian company registry code, e.g. '16887028'."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"company",
"total",
"documents"
],
"properties": {
"total": {
"type": "number"
},
"company": {
"anyOf": [
{
"type": "object",
"required": [
"regCode",
"name"
],
"properties": {
"name": {
"type": "string"
},
"regCode": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"documents": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"reference",
"authority",
"docType",
"date",
"restriction",
"role",
"url"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"date": {
"type": [
"string",
"null"
]
},
"role": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"docType": {
"type": [
"string",
"null"
]
},
"authority": {
"type": "string"
},
"reference": {
"type": [
"string",
"null"
]
},
"restriction": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}list_authorities — List public authorities
All Estonian public authorities whose document register is indexed, each with its slug and document count. Use a slug as the `authority` filter in `search_documents`.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"authorities"
],
"properties": {
"authorities": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"name",
"count"
],
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"count": {
"type": "number"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}recent_documents — Most recently registered documents
The newest documents by registration date, across all authorities — optionally narrowed to one authority.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"authority": {
"type": "string",
"description": "Authority slug from `list_authorities`."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documents"
],
"properties": {
"documents": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"title",
"authority",
"docType",
"date",
"url"
],
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"date": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"docType": {
"type": [
"string",
"null"
]
},
"authority": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 830 ms
- 95th percentile latency
- 830 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 830 ms · metadata changed · 6 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http dokumendiregister-mcp https://dokumendiregister.ee/api/dokreg-mcp/mcpCodex
codex mcp add dokumendiregister-mcp --url https://dokumendiregister.ee/api/dokreg-mcp/mcpCursor
{
"mcpServers": {
"dokumendiregister-mcp": {
"url": "https://dokumendiregister.ee/api/dokreg-mcp/mcp"
}
}
}Cline
{
"mcpServers": {
"dokumendiregister-mcp": {
"type": "streamableHttp",
"url": "https://dokumendiregister.ee/api/dokreg-mcp/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"dokumendiregister-mcp": {
"type": "http",
"url": "https://dokumendiregister.ee/api/dokreg-mcp/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http dokumendiregister-mcp https://dokumendiregister.ee/api/dokreg-mcp/mcpClaude Desktop
https://dokumendiregister.ee/api/dokreg-mcp/mcpWindsurf
{
"mcpServers": {
"dokumendiregister-mcp": {
"serverUrl": "https://dokumendiregister.ee/api/dokreg-mcp/mcp"
}
}
}Let your agent find its tools
Find servers like dokumendiregister MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.