English Test Coach
IELTS writing practice, study plans, lessons and vocabulary with optional account tools.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"english-test-coach": {
"url": "https://englishtestcoach.com/mcp"
}
}
}Remote endpoints
https://englishtestcoach.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢search_practice(query, format, questionType, limit)
Search original IELTS-style writing practice questions (Academic Task 1 and 2, General Training Task 1 and 2). Returns task IDs for get_practice_task. Not official exam questions.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "Words to match in the title, topic or question."
},
"format": {
"type": "string",
"enum": [
"Academic Task 2",
"General Training Task 1",
"Academic Task 1",
"General Task 2"
]
},
"questionType": {
"type": "string",
"enum": [
"opinion",
"discussion",
"balance",
"solutions",
"causesEvaluation",
"twoPart",
"charts",
"maps",
"processes",
"formalLetter",
"semiFormalLetter",
"informalLetter"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10
}
},
"additionalProperties": false
}🟢get_practice_task(taskId)
Get one original practice question by ID, with planning guidance for its question type and links to any annotated sample answers. Academic Task 1 visuals are linked as images; do not invent their figures.
Input Schema
{
"type": "object",
"properties": {
"taskId": {
"type": "string",
"enum": [
"shared-school-sport",
"wildlife-school-visits",
"older-residents-services",
"employment-after-prison",
"museum-admission",
"club-equipment-apology",
"children-learning-advertising",
"coastal-water-cycle",
"museum-weekend-application",
"library-loan-projections",
"live-online-evening-courses",
"evening-class-enrolments",
"remote-work",
"university-skills",
"city-transport",
"technology-children",
"museum-visitors",
"energy-sources",
"library-changes",
"damaged-order",
"community-event",
"friend-visit",
"healthy-food",
"tourism-culture",
"school-finance",
"urban-green-space",
"scientific-research",
"late-delivery",
"course-advice",
"public-hall",
"local-shopping",
"working-age",
"food-waste",
"repair-products",
"assessment-projects",
"compressed-week",
"rural-newcomers",
"evening-classes",
"shift-request",
"missed-celebration",
"commuting-methods",
"recycled-paper",
"automated-feedback",
"urban-noise",
"student-volunteering",
"remote-healthcare",
"public-libraries",
"community-sport",
"later-school-start",
"neighbour-noise",
"thank-host",
"lost-property",
"household-water",
"campus-green-roofs",
"shared-tools",
"moving-help",
"household-spending",
"regional-transport",
"returnable-bottles",
"station-square"
]
}
},
"required": [
"taskId"
],
"additionalProperties": false
}🟢get_sample_answer(sampleId)
Read one original annotated sample answer by ID (from get_practice_task), with paragraph notes and useful vocabulary. Samples show techniques; they are not officially scored scripts.
Input Schema
{
"type": "object",
"properties": {
"sampleId": {
"type": "string",
"enum": [
"school-finance-qualified-agreement",
"city-transport-testing-the-mechanism",
"technology-children-matched-solutions",
"local-shopping-community-solutions",
"tourism-culture-causes-and-judgement",
"evening-classes-answering-two-questions",
"shift-request-professional-tone",
"missed-celebration-personal-apology",
"shared-school-sport-suitable-capacity",
"wildlife-visits-learning-and-responsibility",
"older-residents-services-needs-and-priorities",
"employment-after-prison-matched-support",
"museum-admission-access-and-funding",
"club-equipment-apology-practical-repair",
"children-learning-advertising-access-and-trust",
"museum-application-relevant-experience",
"library-loans-observed-and-projected",
"online-evening-courses-selective-access",
"automated-feedback-human-oversight",
"urban-noise-targeted-controls",
"student-volunteering-access-and-learning",
"remote-healthcare-triage-and-access",
"public-libraries-books-and-services",
"community-sport-lower-the-barriers",
"later-school-start-sleep-and-schedules",
"neighbour-noise-respectful-resolution",
"thank-host-warm-invitation",
"lost-property-precise-description",
"energy-sources-changing-mix",
"community-event-specific-sponsorship",
"urban-green-space-both-needs",
"scientific-research-mixed-accountability",
"late-delivery-documented-remedy",
"course-advice-practical-preparation",
"public-hall-complete-enquiry",
"working-age-flexible-later-careers",
"food-waste-plan-and-portion",
"repair-products-standards-and-cost",
"assessment-projects-combined-evidence",
"compressed-week-job-specific-balance",
"rural-newcomers-managed-growth",
"coastal-water-cycle-return-routes",
"evening-classes-static-comparisons",
"returnable-bottles-loop-and-exit",
"station-square-proposed-changes",
"household-water-purpose-comparisons",
"campus-green-roofs-qualified-requirement",
"shared-tools-managed-benefits",
"moving-help-friendly-specific-request",
"household-spending-share-changes",
"regional-transport-linked-visuals",
"commuting-methods-share-comparisons",
"recycled-paper-sequencing",
"library-changes-locations",
"remote-work-balanced-argument",
"university-theory-and-practice",
"healthy-food-price-and-education",
"damaged-order-formal-complaint",
"friend-visit-informal-letter",
"museum-visitors-comparisons"
]
}
},
"required": [
"sampleId"
],
"additionalProperties": false
}🟢list_lessons(area, lessonId)
List the original writing or speaking lessons, or read one lesson in full by ID. Lesson quizzes are study checks, not IELTS scores.
Input Schema
{
"type": "object",
"properties": {
"area": {
"type": "string",
"enum": [
"writing",
"speaking"
]
},
"lessonId": {
"type": "string",
"maxLength": 80
}
},
"required": [
"area"
],
"additionalProperties": false
}🟢search_vocabulary(query, topic, limit)
Search original IELTS vocabulary entries with meaning, an example sentence and a usage caution. Use words for their meaning, not as a shortcut to a higher band.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 100
},
"topic": {
"type": "string",
"enum": [
"Education & work",
"Environment & cities",
"Health & society",
"Argument & evidence",
"Charts & trends",
"Letters & register"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 8
}
},
"additionalProperties": false
}🟢analyze_writing(text, taskType)
Count words, sentences and paragraphs in a piece of writing and compare the word count with the IELTS minimum for the task. Runs locally: nothing is saved or sent to an AI. These counts are not a band score.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 24000
},
"taskType": {
"type": "string",
"enum": [
"Task 1",
"Task 2"
]
}
},
"required": [
"text"
],
"additionalProperties": false
}🟢calculate_band_score(listening, reading, writing, speaking, writingTask1, ...)
Calculate the overall IELTS band from Listening, Reading, Writing and Speaking bands using the official rounding (averages ending .25 round up to the next half band, .75 to the next whole band). Optionally estimate a Writing band from Task 1 and Task 2 bands (Task 2 counts double; this part is an estimate).
Input Schema
{
"type": "object",
"properties": {
"listening": {
"type": "number",
"minimum": 0,
"maximum": 9,
"multipleOf": 0.5
},
"reading": {
"type": "number",
"minimum": 0,
"maximum": 9,
"multipleOf": 0.5
},
"writing": {
"type": "number",
"minimum": 0,
"maximum": 9,
"multipleOf": 0.5
},
"speaking": {
"type": "number",
"minimum": 0,
"maximum": 9,
"multipleOf": 0.5
},
"writingTask1": {
"type": "number",
"minimum": 0,
"maximum": 9,
"multipleOf": 0.5
},
"writingTask2": {
"type": "number",
"minimum": 0,
"maximum": 9,
"multipleOf": 0.5
}
},
"required": [
"listening",
"reading",
"writing",
"speaking"
],
"additionalProperties": false
}Community
Evidence