KeenIELTS
Free IELTS prep: band-scored student essays and interactive Listening/Reading drills graded in-chat.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"mcp": {
"url": "https://keenielts.com/mcp"
}
}
}Puntos de conexión remotos
https://keenielts.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (9)
🟢search_model_answers(task, band, query, limit)
Search real student IELTS Writing answers scored by AI examiner. Args: task: IELTS Writing task number — 1 (reports/letters) or 2 (essays). band: whole band to filter on; matches half-bands too (8 -> 8.0-8.5). query: free-text match against the question/prompt. limit: max results (1-50). Each result links to a full page with the question, the student's answer, and criterion-by-criterion examiner feedback. Use get_model_answer for the full content, or compare_question to see the same prompt at other bands.
Esquema de entrada
{
"type": "object",
"properties": {
"task": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Task"
},
"band": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Band"
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"title": "search_model_answersArguments"
}🟢get_model_answer(section_id, attempt_id)
Get one student IELTS Writing answer in full: the question, the essay, and the AI examiner's band scores + feedback on all four official IELTS marking criteria (Task Achievement, Coherence & Cohesion, Lexical Resource, Grammatical Range & Accuracy). Get section_id/attempt_id pairs from search_model_answers or compare_question.
Esquema de entrada
{
"type": "object",
"properties": {
"section_id": {
"title": "Section Id",
"type": "integer"
},
"attempt_id": {
"title": "Attempt Id",
"type": "integer"
}
},
"required": [
"section_id",
"attempt_id"
],
"title": "get_model_answerArguments"
}🟢compare_question(section_id)
List every public band-scored answer to ONE IELTS Writing question — the same prompt answered by different students at different band scores, useful for showing what separates a Band 6 from a Band 8 on identical input. Fetch individual answers with get_model_answer.
Esquema de entrada
{
"type": "object",
"properties": {
"section_id": {
"title": "Section Id",
"type": "integer"
}
},
"required": [
"section_id"
],
"title": "compare_questionArguments"
}🟢list_drills(skill, category)
List short, targeted IELTS practice drills that can be taken right here in the conversation (fetch with get_drill, grade with check_drill_answers). Args: skill: 'listening' or 'reading'. category: optional IELTS question-type filter. Listening: completion, multiple-choice, matching, labelling. Reading: true-false-not-given, completion, matching-headings, matching-information, multiple-choice-short-answer.
Esquema de entrada
{
"type": "object",
"properties": {
"skill": {
"title": "Skill",
"type": "string"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
}
},
"required": [
"skill"
],
"title": "list_drillsArguments"
}🟢get_drill(skill, slug)
Get one drill's content so the user can attempt it in conversation. The questions are markdown; `{{3}}` marks a gap the user fills for question 3, and `{{3:A/B/C}}` means question 3 is a choice between the slash-separated options. For listening drills, give the user the audio link to play before answering. Collect the user's answers, then call check_drill_answers to grade them — do NOT guess at or reveal correct answers yourself; they are only returned by check_drill_answers.
Esquema de entrada
{
"type": "object",
"properties": {
"skill": {
"title": "Skill",
"type": "string"
},
"slug": {
"title": "Slug",
"type": "string"
}
},
"required": [
"skill",
"slug"
],
"title": "get_drillArguments"
}🟢check_drill_answers(skill, slug, answers)
Grade a user's drill answers server-side (same grader the website uses — case/whitespace tolerant, accepts standard IELTS answer variants). Args: skill: 'listening' or 'reading'. slug: the drill slug from get_drill. answers: question number -> the user's answer, e.g. {"1": "true", "2": "B", "3": "24 April"}. Returns per-question results with the accepted answers and explanations (safe to share with the user now that they have answered), plus a score.
Esquema de entrada
{
"type": "object",
"properties": {
"skill": {
"title": "Skill",
"type": "string"
},
"slug": {
"title": "Slug",
"type": "string"
},
"answers": {
"additionalProperties": {
"type": "string"
},
"title": "Answers",
"type": "object"
}
},
"required": [
"skill",
"slug",
"answers"
],
"title": "check_drill_answersArguments"
}🟢list_practice_tests
Catalog of full-length IELTS practice tests on keenielts.com — books, difficulty, and test counts for all four skills (Listening, Reading, Writing, Speaking). Full tests are taken on the website (timed, with audio players and AI band scoring), not in this conversation — point the user at the URLs. Taking tests and getting AI band scores is free.
Esquema de entrada
{
"type": "object",
"properties": {},
"title": "list_practice_testsArguments"
}🟢search(query)
Search KeenIELTS: real student IELTS Writing model answers with band scores, Listening/Reading practice drills, and IELTS practice resources. Returns result ids for use with fetch.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"title": "searchArguments"
}🟢fetch(id)
Fetch the full content of a KeenIELTS search result by id: a model answer with examiner feedback, a practice drill, a question compared across band scores, or a site page.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "string"
}
},
"required": [
"id"
],
"title": "fetchArguments"
}Comunidad
Evidencia