About SudnoKontrol
SudnoKontrol is an MCP server for Ukraine's national vessel registries, for users and agents querying public vessel records. It searches by number, name, or owner and provides full records and aggregate statistics without an API key.
Key features
- 01Search across both national registries
- 02Look up normalized registration numbers
- 03Retrieve full registry records
- 04Query vessel count statistics
- 05Get dataset sources and field details
Use cases
- 01Verify whether a vessel is registered
- 02Find vessels by name or owner
- 03Review vessel counts and dataset context
MCP support
The MCP server exposes public, read-only data from Ukraine's State Ship Registry and Ship Book through tools for search, record lookup, statistics, and dataset metadata. The hosted endpoint uses Streamable HTTP and requires no authentication.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://api.sk.ukrfish.org/mcpclaude mcp add --transport http org-ukrfish-sk-sudnokontrol https://api.sk.ukrfish.org/mcp{"mcpServers":{"org-ukrfish-sk-sudnokontrol":{"type":"http","url":"https://api.sk.ukrfish.org/mcp"}}}Open in Cursor{"servers":{"org-ukrfish-sk-sudnokontrol":{"type":"http","url":"https://api.sk.ukrfish.org/mcp"}}}Open in VS Code{"mcpServers":{"org-ukrfish-sk-sudnokontrol":{"type":"http","url":"https://api.sk.ukrfish.org/mcp"}}}{"mcpServers":{"org-ukrfish-sk-sudnokontrol":{"serverUrl":"https://api.sk.ukrfish.org/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
4| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | Registration number, vessel name, or owner name. Accepts Latin or Cyrillic. |
| limit | integer | No | Page size. |
| offset | integer | No | Pagination offset. |
| source | enum | No | Dataset to search.registry | book | both |
| home_port | string | No | Partial match on home port. |
| vessel_type | string | No | Partial match on vessel type (e.g. земснаряд). |
| build_year_max | integer | No | Inclusive maximum build year. |
| build_year_min | integer | No | Inclusive minimum build year. |
Details
From the project READMESudnoKontrol MCP
Model Context Protocol server for the Ukrainian national vessel registry — search vessels by registration number, name or owner, look up full registry records, and query aggregate statistics. Exposes the public data of the Державний судновий реєстр України (State Ship Registry) and the Суднова книга України (Ship Book).
Data is read-only and public — no API key required.
- Hosted endpoint (recommended):
https://api.sk.ukrfish.org/mcp(Streamable HTTP) - Project docs:
https://sk.ukrfish.org/api-docsandhttps://sk.ukrfish.org/info/ai-agents - Discovery:
https://sk.ukrfish.org/llms.txt
Tools
| Tool | Description |
|---|---|
search_vessel_registries | Free-text + structured search across both national registries. Deterministic ordering: exact registration-number matches first. Supports Cyrillic/Latin and separator-insensitive numbers (УПС-0129 ≡ УПС 0129 ≡ UPS-0129). |
lookup_vessel | Exact vessel lookup by normalized registration number. Returns full registry record. |
get_registry_stats | Aggregate public vessel counts ("how many vessels..."). |
get_dataset_metadata | Dataset context: sources, import dates, record counts, fields. |
Every search/lookup result includes a web_url → https://sk.ukrfish.org/registry?vessel=<reg> pointing to the public vessel information page.
Quick start — hosted server
Claude Code / Claude Desktop
claude mcp add --transport http sudnokontrol https://api.sk.ukrfish.org/mcp
Cursor
Settings → MCP → Add new MCP server → Name sudnokontrol, Type HTTP, URL https://api.sk.ukrfish.org/mcp.
Windsurf
Windsurf → MCP → Add server → https://api.sk.ukrfish.org/mcp.
Any MCP client (streamable HTTP)
URL: https://api.sk.ukrfish.org/mcp
Auth: none (public, IP rate-limited)
Run it yourself
The server proxies the public API and needs no credentials.
# stdio (for Claude Desktop "command" servers)
npx sudnokontrol-mcp
# HTTP (streamable)
npx sudnokontrol-mcp http
# or: PORT=9000 HOST=127.0.0.1 npx sudnokontrol-mcp http
Install from this repo directly:
npm install -g github:ailubes/sudnokontrol-mcp
To point at a different base (e.g. your own deployment):
SUDNOKONTROL_API=https://api.sk.ukrfish.org/api/ai npx sudnokontrol-mcp
From source:
npm install
npm run build
node dist/index.js # stdio
node dist/index.js http # HTTP on :8958/mcp
Connect to your local instance
claude mcp add --transport http local-sudnokontrol http://127.0.0.1:8958/mcp
API (underlying REST, no MCP needed)
| Endpoint | Purpose |
|---|---|
GET https://api.sk.ukrfish.org/api/ai/openapi.json | OpenAPI 3.1 spec |
GET https://api.sk.ukrfish.org/api/ai/tools | Function-calling tool definitions (JSON Schema) |
GET https://api.sk.ukrfish.org/api/ai/meta | Dataset context |
GET https://api.sk.ukrfish.org/api/ai/registry/search?q= | Search |
GET https://api.sk.ukrfish.org/api/ai/registry/lookup/{reg} | Lookup |
GET https://api.sk.ukrfish.org/api/ai/stats | Aggregates |
Rate limit: 300 requests / 15 min / IP on /api/ai/*. Search/meta/stats responses cached 60s.
Example
User: Is the vessel УПС-4249 registered?
Agent calls: lookup_vessel {"registration_number": "УПС-4249"}
Response: { registration_number: "УПС-4249", name: "ua 5614 KV", owner_name: "ТОВ Соціальні ініціативи Запоріжжя", source: "registry", web_url: "https://sk.ukrfish.org/registry?vessel=УПС-4249", ... }
License
MIT
Disclaimer
This is an open-source MCP adapter for the public data of the Ukrainian vessel registries operated by SudnoKontrol. It is not an official government service.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.