DEV Community

J Now
J Now

Posted on

When one translation isn't enough: building a language coach as an MCP server

I wanted to tell my girlfriend 'I missed you today' in Farsi and have it land naturally, not like I'd copy-pasted it from Google Translate. Every tool I tried gave me one answer, no register, no sense of whether it was formal or intimate or accidentally weird. For a language you're still learning, that single flat translation teaches you nothing — it just gets you through the moment.

So I built konid: a language coach that returns three options for anything you want to say, ordered casual to formal, each one with the register explained and the nuances between them compared. It also plays audio pronunciation directly through your speakers using node-edge-tts, no external API key needed.

The interesting design constraint was the MCP server architecture. I wanted the same tool available everywhere I'm already working — not a separate app to switch to. One install, four clients:

claude mcp add konid-ai -- npx -y konid-ai
Enter fullscreen mode Exit fullscreen mode

That gets you konid inside Claude Code and Claude Cowork. The same server runs in Cursor, VS Code Copilot, Windsurf, Zed, and JetBrains via their respective MCP config blocks. For ChatGPT, it also works as a Developer mode app pointing at https://konid.fly.dev/mcp — same logic, no extra code.

The write-once-run-anywhere part matters because context switching is what kills language learning in a workflow. If I'm translating a work email in Cursor and want to know whether 'I look forward to hearing from you' should be formal or whether there's a warmer register that's still professional in Japanese, I want the answer inline, not in another tab.

A query against konid in any of those clients returns three ranked options with the cultural context and register difference explained. For 'I missed you today' in Farsi, those three options are genuinely different sentences — not rewording of the same translation — because the intimate/casual/formal split in Farsi operates at the verb level, not just politeness particles.

konid supports 13+ languages including Mandarin, Japanese, Korean, Spanish, French, German, Portuguese, Italian, Russian, Arabic, and Hindi.

MIT licensed.

https://github.com/robertnowell/konid-language-learning

Top comments (0)