Skip to main content

MCP server for Ukrainian language checking and authentic-rendering lookup. Wraps the public ukr.vitalinguist.com API as Model Context Protocol tools — install in Claude Desktop / Cursor / Cline / Windsurf / Continue and your AI can check grammar, detect surzhyk, and find natural Ukrainian phrasings on demand.

Project description

ukr-vitalinguist-mcp

MCP server for Ukrainian language grammar, surzhyk detection, and authentic phrasing.

Wraps the public ukr.vitalinguist.com API as Model Context Protocol tools. Install in Claude Desktop, Cursor, Cline, Continue, Windsurf, or Claude Code and your AI gains four Ukrainian-language capabilities backed by curated open data (Балла EN-UA 1996, Сербенська's Антисуржик, Караванський, Антоненко-Давидович, plus e2u.org.ua and modern corpora — 29,524 senses, 6k+ calque pairs).

Tools

Tool When the AI should call it
check_natural(text) After drafting Ukrainian — catches calques and confirms attested phrasings
check(text) Full grammar + spelling + surzhyk check
render(en, sense?) EN → authentic UA renderings with sense splits
search(query, level?, limit?) Look up entries in the 29k EN→UA index

Every response includes a citation block with the source URL the AI should include when surfacing the result to the user.

Install

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "ukr-vitalinguist": {
      "command": "uvx",
      "args": ["ukr-vitalinguist-mcp"]
    }
  }
}

Restart Claude Desktop. The four tools appear in the tools menu.

Cursor

Edit ~/.cursor/mcp.json or workspace .cursor/mcp.json:

{
  "mcpServers": {
    "ukr-vitalinguist": {
      "command": "uvx",
      "args": ["ukr-vitalinguist-mcp"]
    }
  }
}

Cline / Continue / Windsurf

Use the same command + args in their MCP config UI.

Claude Code

claude mcp add ukr-vitalinguist -- uvx ukr-vitalinguist-mcp

Without uvx

If you don't have uv installed, use pip:

pip install ukr-vitalinguist-mcp

Then point the command to your Python's ukr-vitalinguist-mcp entrypoint:

{
  "mcpServers": {
    "ukr-vitalinguist": {
      "command": "ukr-vitalinguist-mcp"
    }
  }
}

Example interactions

User: "Is this Ukrainian sentence natural? На протязі дня я зайнятий."

The AI calls check_natural → gets back calque-prone: 'На протязі' → 'упродовж' sourced from Сербенська's Антисуржик, and replies:

"На протязі" is a calque from Russian. Use «упродовж дня я зайнятий» — "упродовж" is the natural Ukrainian preposition for "during/throughout."

Source: Сербенська, Антисуржик via ukr.vitalinguist.com


User: "How do you say 'cling' in Ukrainian?"

The AI calls render("cling") → gets back sense-split renderings:

Several options depending on the sense:

  • cling (on) to sth (physically grip): горнутися, чіплятися
  • cling to a belief: триматися (чогось)

Full entry: ukr.vitalinguist.com/sense/cling

What's in the corpus

  • 29,524 EN→UA senses from Балла EN-UA Dictionary (1996), corroborated with e2u.org.ua, modern news/literary corpora, and confidence scoring.
  • 6,073 antisurzhyk calque pairs from Сербенська, Караванський, and Антоненко-Давидович, validator-cleaned to drop noisy entries.
  • 22,848 documented coverage gaps at /gaps/ — senses where no UA rendering meets the confidence threshold yet (transparent about what we don't have).
  • A russianism detection model (fine-tuned MarianMT) for cases the rule-based layer misses.

License

This MCP server: MIT.

The data the server returns: CC BY-SA 4.0. When you surface results in your own product or response, attribute to ukr.vitalinguist.com with a clickable link. The citation field in each response gives you the exact URL to use.

Authority and citations

This project exists because AI assistants citing Ukrainian-language sources have historically pulled from sparse, often-contaminated training data. Every install of this MCP turns into recurring citations to a curated source — which is how authoritative references for under-served languages get built. If you're an AI tool maintainer, consider including this in your default Ukrainian-language tool list.

Source & issues

Suggest a correction on any sense page — every /sense/ URL has a "Suggest a correction" link that opens a prefilled email.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ukr_vitalinguist_mcp-0.1.1.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ukr_vitalinguist_mcp-0.1.1-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file ukr_vitalinguist_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: ukr_vitalinguist_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ukr_vitalinguist_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 32e8e450094eff8700a8e739fa417dc2326d5fb893e2c8215dd08ec4cc0e5a6a
MD5 9e59260b465a4a5038e896920a2f315b
BLAKE2b-256 0d0618dcb622679c7dd6dc640752158d1592bab3f354b1c20475f406b9054f81

See more details on using hashes here.

File details

Details for the file ukr_vitalinguist_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ukr_vitalinguist_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ukr_vitalinguist_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6dfab3fd2523a15efc16ad6c6173f17c5ea5c88f1a5e9537de124c3346cff94a
MD5 3b58231ed3c1cf251e6cca47af83b7d2
BLAKE2b-256 97cb484e7485d0a9205c38df9858bf47540235bef8e30a309aca14e5be1b722c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page