Pronunciation Practice MCP
A small, offline MCP server that turns a sentence and optional existing feedback into a timed rehearsal plan. Pick one, three or five minutes; receive four concrete steps and an empty comparison log. Useful when an assistant needs a repeatable practice routine rather than another open-ended explanation.
This server plans practice. It does not listen to audio, score pronunciation, infer a learner's weaknesses, contact a model or service, or access an account. Input stays in process memory. There are no API keys, third-party dependencies, HTTP endpoints or background jobs.
Run locally
Install Node.js 18 or newer. Download this repository, review server.mjs, and run:
node server.mjs
The process waits for an MCP client on stdin. It is not an interactive command-line questionnaire. Close stdin to stop it. To run the included subprocess tests:
node --test test.mjs
For a client that accepts the common mcpServers configuration format, substitute your actual Node executable and the absolute path to your downloaded file:
{
"mcpServers": {
"pronunciation-practice": {
"command": "node",
"args": ["/absolute/path/to/pronunciation-practice-mcp/server.mjs"]
}
}
}
Client configuration formats differ. This project has been tested through an actual local stdio subprocess; it has not been certified against every desktop client.
Tool: create_practice_loop
| Argument | Accepted value |
|---|---|
sentence |
Required nonblank string, at most 240 JavaScript string units |
feedback |
Optional existing feedback text, at most 480 string units |
minutes |
Optional integer: 1, 3 or 5; default 3 |
Unexpected arguments are rejected. Sentence and feedback are quoted user data, never instructions to execute. A host assistant should preserve that boundary when interpreting tool output.
Example arguments:
{"sentence":"Could you say that again?","feedback":"Practise saying the whole question smoothly.","minutes":3}
The three-minute plan allocates 30 seconds to a first attempt, 45 to choosing one supplied cue, 60 to repeating the phrase and sentence, and 45 to comparing attempts. It returns these steps, the original text, totalSeconds: 180, and a blank log with chosenCue, firstAttempt, lastAttempt and nextStep. No improvement or score is fabricated. An external recorder is optional and remains outside this tool.
Without feedback, the plan asks the learner to choose one word or phrase. It does not invent a diagnosis. One-minute steps are 10/15/20/15 seconds; five-minute steps are 50/75/100/75 seconds.
Protocol scope and limits
- MCP 2025-06-18 edition over newline-delimited UTF-8 stdio JSON-RPC. This is the explicitly supported edition, not a claim to implement the latest specification.
- Implements initialization/version negotiation, initialized notification, ping, tools/list and tools/call. One fixed tool; no pagination or list-change notifications.
- Unsupported requested versions receive the supported version; an incompatible client should disconnect.
- stdout contains protocol messages only. No unsolicited logging, network requests, file writes, resource subscriptions, sampling, prompts or authentication.
- A 16 KiB message limit bounds partial as well as complete lines. Invalid JSON and invalid requests/arguments receive JSON-RPC errors. Notifications receive no response. An unterminated final line is rejected.
- Run this small local process only with a trusted local client. It is not a multi-user network service. The host should apply its normal request/time limits and treat all supplied text as untrusted data.
Tests cover the real subprocess lifecycle, tool discovery, all three durations and exact time totals, inert feedback, invalid inputs, version negotiation, malformed messages, line bounds and EOF. They do not establish cross-client certification or an audio-quality result.
About
Maintained by the team behind Pronunciation Coach, a separate browser pronunciation practice product. This independent planning utility does not connect to that product, require a subscription or share its private source code. Its timing approach also appears in our standalone practice-loop planner.
Protocol references: Lifecycle, stdio transport, Tools.
MIT license. Original implementation and documentation; no third-party recordings, learning corpus or proprietary product code are included.