Skip to main content
Glama
ielts-speaking-coach MCP Server

ielts-speaking-coach MCP Server

by lindsey-labs

IELTS Speaking Coach

English | 简体中文

A GitHub-ready IELTS Speaking desktop app, Codex plugin, and local MCP workflow:

  • launch ChatGPT Voice from a Windows or macOS desktop dashboard;

  • send the saved IELTS examiner prompt and capture visible conversation text;

  • import an IELTS question bank;

  • choose Part 1, Part 2, Part 3, or a full mock;

  • create a 7-day, 14-day, or 30-day plan;

  • generate the same structured review after every session;

  • freely continue the last question, move to the next question, or select any historical session;

  • save recommended targets and retrain one selected target through transfer;

  • automatically ask for a delimited structured review and save it locally;

  • review history, recurring issues, vocabulary, optional targets, and progress in the dashboard.

Privacy and question-bank content

Learner transcripts, recordings, reports, and login state stay on the local computer and are excluded from this repository. The repository ships only a small original sample question bank so the app can run after cloning. Bring your own licensed IELTS question bank through the import workflow; third-party or OCR-extracted commercial question banks are intentionally not included.

IELTS is a trademark of its respective owners. This independent project is not endorsed by or affiliated with the IELTS test partners. ChatGPT is a trademark of OpenAI; this project is not an official OpenAI product.

Related MCP server: MCP Study Agent

Desktop app

Run locally:

npm install
npm run desktop

The dashboard opens as a desktop window. Click 打开ChatGPT once and sign in yourself. The login is kept in an Electron persistent browser partition. Then select an IELTS question and click 保存并一键启动Voice. End Voice in ChatGPT when the practice is complete. The desktop bridge automatically generates and caches the review; click 同步复盘报告 to save it into the local learning record. If automatic generation does not start, click 补生成复盘报告 and then synchronize it.

After a requested review is saved, the desktop bridge immediately refreshes the latest report, practice history, issue archive, vocabulary archive, and optional retraining target without reloading the whole dashboard.

If the report already exists in the currently open ChatGPT conversation, click 同步复盘报告. The desktop bridge reads that conversation directly and falls back to the clipboard only when necessary. Slightly malformed JSON is repaired when possible before validation and synchronization. The synchronization button never generates a new report; 补生成复盘报告 is the explicit recovery action.

The desktop bridge attempts to locate ChatGPT's current web controls. If ChatGPT changes its interface, the prompt remains available and the learner may need to click Voice manually until selectors are updated.

Build a Windows installer:

npm run package:win

Build the macOS installers on a Mac:

npm run package:mac

The macOS build produces separate DMG and ZIP artifacts for Intel (x64) and Apple silicon (arm64) Macs. A Windows .exe cannot run on macOS, and the macOS artifacts must be built and tested on macOS. Public distribution also requires Apple Developer ID signing and notarization; unsigned local builds may be blocked by Gatekeeper.

Upgrade page

The dashboard includes a highlighted 功能升级 entry below the training navigation. Set the personal-site destination in mcp/upgrade-page.json:

{
  "websiteUrl": "https://your-domain.example/ielts-speaking-coach"
}

Only HTTPS destinations are accepted. In the packaged desktop app, the page opens in the learner's default browser so product copy, checkout, and delivery can be updated without changing the local dashboard workflow.

The plugin now includes a local STDIO MCP server. It stores selections, reports, history, and retraining targets on the learner's computer without a hosted backend.

Local MCP

Install dependencies once:

npm install

Run the automated MCP smoke test:

npm run test:mcp

The local MCP exposes:

  • initialize_ielts_workspace

  • open_dashboard

  • set_training_selection

  • get_training_context

  • save_session_review

  • list_practice_history

  • get_dashboard_data

By default, learner data is stored under %LOCALAPPDATA%\IELTS Speaking Coach on Windows and Electron's application data directory on macOS. Audio recording is off by default. When the learner explicitly enables it, microphone-only recordings are stored locally under the recordings folder and can be played or deleted from the dashboard.

Button-first practice

Ask Codex to 打开雅思口语仪表盘. The open_dashboard tool opens http://127.0.0.1:43127 in the learner's browser. The learner chooses a route, Part, exact question, length, and optional single goal. In the desktop app, the learner starts and ends the complete workflow with buttons.

Prototype boundary

The Skill and MCP do not add Voice by themselves. The optional desktop bridge controls the visible ChatGPT web interface and therefore depends on the learner's ChatGPT access and the current webpage structure. Audio is never stored unless the learner enables the local recording switch.

Try the dashboard

Open demo/dashboard.html in a browser. It contains sample data and demonstrates:

  1. choosing a Part and starting a Voice session;

  2. reviewing a standardized report;

  3. entering a one-target retraining session;

  4. browsing history, issue status, and vocabulary records.

Plugin structure

The installable skill is under skills/ielts-speaking-coach/. The plugin manifest is .codex-plugin/plugin.json.

Available Tools

9 tools
get_dashboard_dataGet IELTS dashboard dataA
Read-only

Return the learner's local session and target data for a dashboard or progress summary.

Inputs: no named parameters. Returns: learner, targets, dataRoot, sessions, +2 more

get_training_contextGet IELTS training contextA
Read-only

Read the current selection, recent sessions, and optional saved target before continuing or retraining.

Inputs: no named parameters. Returns: dataRoot, routeChoices, currentSession, recentSessions, +1 more

import_question_bankImport IELTS question bankC

Import normalized IELTS speaking questions from a JSON array and save them to the learner's local question bank.

Inputs: sourceName (required), questionsJson (required), sourceUrl. Returns: total, imported

initialize_ielts_workspaceInitialize IELTS speaking workspaceC

Create the learner's private local data workspace before the first practice session.

Inputs: displayName. Returns: dataRoot, initialized

list_practice_historyList IELTS practice historyA
Read-only

List recent locally saved IELTS speaking sessions for review or optional retraining.

Inputs: limit. Returns: targets, sessions, questions, questionSources

list_question_bankList IELTS question bankA
Read-only

List imported IELTS speaking topics or exact questions, optionally filtered by Part or search text.

Inputs: part, limit, search. Returns: total, sources, questions

open_dashboardOpen IELTS speaking dashboardA

Open the learner's private local dashboard to choose a practice route with buttons.

Inputs: no named parameters. Returns: opened, dashboardUrl

save_session_reviewSave standardized IELTS reviewA

Save the fixed-format Markdown review and its machine-readable JSON record after a practice session.

Inputs: reportJson (required), reportMarkdown (required), sessionId. Returns: saved, jsonPath, sessionId, markdownPath

set_training_selectionSet IELTS training selectionB

Save the learner's freely chosen route and today's practice settings before a Voice session.

Inputs: part (required), route (required), length, planItemId, +4 more. Returns: session

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 9 tools

    Disambiguation4/5

    Most tools are clearly distinct: initialization, selection, dashboard, context, question bank (list/import), session review, history, and data retrieval each serve a unique purpose. The only minor ambiguity is between get_dashboard_data and get_training_context, and between open_dashboard and get_dashboard_data, which both touch dashboard-related concerns but differ in interaction style (UI open vs data fetch).

    Naming Consistency4/5

    Tools follow a consistent verb_noun pattern: initialize/list/import/save/get/set/open prefixes with clear object nouns. The pattern is largely predictable, though mixing first-word verbs (initialize, set, open, get, list, import, save) is fine—the objects (workspace, selection, dashboard, context, question_bank, session_review, history, data) are consistently snake_case nouns.

    Tool Count5/5

    Nine tools is well-scoped for an IELTS speaking coach server. Each tool covers a distinct workflow step (init, configure, view options, retrieve context, browse/import questions, save review, view history, fetch dashboard), and none feel redundant or trivial.

    Completeness4/5

    The tool surface covers the full practice lifecycle: workspace setup, training selection/configuration, question bank management (list/import), session review saving, and history/dashboard retrieval. Minor gaps include no tool to update or delete the question bank (only import), and no tool to directly edit saved reviews, but the core workflow is complete and functional.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A tutorial MCP server for learning the Model Context Protocol by building file and system tools. Provides hands-on experience creating custom tools that enable AI models to interact with files and execute system commands.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables users to interact with local documents for educational purposes through tools for listing and reading files. It features an integrated agent capable of automatically generating document summaries and study flashcards.
      -
    • A
      license
      B
      quality
      D
      maintenance
      An MCP server that locally saves and categorizes user prompts from LLM sessions to facilitate metacognition and track learning progress. It provides tools to review study history, analyze question types, and calculate learning depth scores based on the nature of inquiries.
      5
      6 npm
      1
      ISC
    • F
      license
      Not graded
      quality
      D
      maintenance
      This MCP server provides an AI-driven learning and knowledge management platform that automatically summarizes conversations, manages knowledge graphs, tracks project progress, explores new technologies, and generates study plans through specialized agents.
      -