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."
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
- API homepages: ua.vitalinguist.com (human checker), ukr.vitalinguist.com (AI-friendly reference), xcit.in (UMI diagnostic — Ukrainian as a foreign language A1–C2).
- Methodology: https://ukr.vitalinguist.com/sources.html
- Coverage gaps (downloadable as CSV/JSONL): https://ukr.vitalinguist.com/gaps/
- MCP repo: https://github.com/vitalinguist/ukr-vitalinguist-mcp
Suggest a correction on any sense page — every /sense/ URL has a "Suggest
a correction" link that opens a prefilled email.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ukr_vitalinguist_mcp-0.2.0.tar.gz.
File metadata
- Download URL: ukr_vitalinguist_mcp-0.2.0.tar.gz
- Upload date:
- Size: 11.3 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fc29f4ef7518255b9ff7adcb10ccc2d7e15e45273c048fe940c8fb530201af7
|
|
| MD5 |
2a764f7354aacc960d0e644074967bab
|
|
| BLAKE2b-256 |
44119de40a4ee1bc18627b63d7826124e4e7f50d7b8f02513fba76ef361f23ca
|
File details
Details for the file ukr_vitalinguist_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ukr_vitalinguist_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.6 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b5665090e008308f1f53a25864c0e4524e3c2049b6077dff4d8bce414ec4fb2
|
|
| MD5 |
42e79d96546c2d3d4d435b16302f426a
|
|
| BLAKE2b-256 |
9b32ba4f8682035e4d2727151b7fbef0623ede2788a22baef7bc857359466469
|