TOEIC Speaking MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TOEIC Speaking MCP ServerLet's start TOEIC speaking practice."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π― TOEIC Speaking MCP Server
ν μ΅ μ€νΌνΉ λ§λ₯λ¬Έμ₯ μκΈ° ν μ€νΈλ₯Ό μν MCP μλ²μ λλ€. Claude Desktop μ±κ³Ό μ°λνμ¬ μμ±μΌλ‘ ν μ΅ μ€νΌνΉ λ¬Έμ₯μ νμ΅νκ³ μ¦μ νΌλλ°±μ λ°μ μ μμ΅λλ€.
μΆμ²: μ νλΈ μκ³ν λΌμ λμ€
π λͺ©μ°¨
Related MCP server: mcp-server-pronunciation
β¨ μ£Όμ νΉμ§
π€ μμ± νμ΅: Claude Desktop μμ± μΈμμΌλ‘ μμ°μ€λ¬μ΄ νμ΅
π§ μ μν μΆμ : mastery_score κΈ°λ° μ·¨μ½ λ¬Έμ₯ μ°μ μΆμ
β‘ μ¦μ νΌλλ°±: ν€μλ λ§€μΉ λΆμμΌλ‘ μ€μκ° νμ΅ ν¨κ³Ό νμΈ
π μλ μ μ κ΄λ¦¬: λ΅λ³ μ νλμ λ°λ₯Έ μλ μ μ μ λ°μ΄νΈ (0-100)
π νμ μμ μ±: TypeScript strict λͺ¨λ + Zod μ€ν€λ§ κ²μ¦
ποΈ κΈ°μ μ€ν
Framework: NestJS 11 + TypeScript 5 (strict mode)
Protocol: Model Context Protocol (MCP) SDK
Database: Supabase PostgreSQL
Validation: Zod schema validation
Architecture: Domain-driven layered architecture
π μ€μΉ λ° μ€μ
1. μμ‘΄μ± μ€μΉ
npm install2. νκ²½ λ³μ μ€μ
.env νμΌ νμΈ:
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key3. λ°μ΄ν°λ² μ΄μ€ λ§μ΄κ·Έλ μ΄μ
Supabase SQL Editorμμ migrate.sql μ€ν:
-- mastery_score, last_reviewed_at, review_count μ»¬λΌ μΆκ°
-- μΈλ±μ€ μμ±4. μν λ°μ΄ν° μ½μ (μ ν μ¬ν)
node seed.js5. λΉλ
npm run build6. Claude Desktop μ€μ
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"toeic-speaking": {
"command": "node",
"args": ["/μ λ/κ²½λ‘/dist/main.js"],
"env": {
"SUPABASE_URL": "your_url",
"SUPABASE_ANON_KEY": "your_key"
}
}
}
}β οΈ κ²½λ‘λ₯Ό μ€μ νλ‘μ νΈ κ²½λ‘λ‘ μμ ν Claude Desktop μ¬μμ
π οΈ MCP λꡬ
1. get_quiz_sentence - λ¬Έμ μΆμ
νλΌλ―Έν°:
mode(μ ν):'weak_first'|'random'(κΈ°λ³Έ:'weak_first')part(μ ν): ννΈ λ²νΈ νν°
μλ΅:
{
"id": "uuid",
"sentence_ko": "μ΄ μ¬μ§μ 곡μμμ μ°ν μ¬μ§μ
λλ€.",
"part": 2,
"current_mastery": 0
}2. verify_answer - λ΅λ³ κ²μ¦
νλΌλ―Έν° (νμ):
sentence_id: λ¬Έμ₯ IDuser_answer: μ¬μ©μ λ΅λ³ (μμ΄ λ¬Έμ₯)
μλ΅:
{
"success": true,
"original_sentence": "This is a picture taken at a park.",
"matched_keywords": ["picture", "taken", "park"],
"missing_keywords": [],
"match_rate": "100.0%",
"score_change": 10,
"feedback": "Perfect! All keywords matched. Score increased by 10 points."
}μ μ κ·μΉ:
λ§€μΉλ₯ | μ μ λ³ν |
100% | +10 |
70-99% | +5 |
50-69% | 0 |
0-49% | -5 |
π¬ μ¬μ© μμ
π€ "ν μ΅ μ€νΌνΉ μ°μ΅ μμν κ²μ"
π€ [get_quiz_sentence νΈμΆ]
λ¬Έμ : "μ΄ μ¬μ§μ 곡μμμ μ°ν μ¬μ§μ
λλ€."
(νμ¬ μλ ¨λ: 0μ )
π€ [μμ±] "This is a picture taken at a park"
π€ [verify_answer νΈμΆ]
β
μλ²½ν©λλ€!
- ν¬ν¨λ ν€μλ: picture, taken, park (3/3)
- λ§€μΉλ₯ : 100.0%
- μ μ λ³ν: +10μ π νλ‘μ νΈ κ΅¬μ‘°
src/
βββ main.ts # MCP μλ² μνΈλ¦¬ν¬μΈνΈ
βββ app.module.ts # λ£¨νΈ λͺ¨λ
βββ config/
β βββ supabase.config.ts # Supabase DI Provider
βββ types/
β βββ sentence.interface.ts # TypeScript μΈν°νμ΄μ€
βββ mcp/
β βββ mcp.module.ts
β βββ mcp.service.ts # MCP λꡬ μ μ + Zod κ²μ¦
βββ quiz/ # Quiz λλ©μΈ
β βββ quiz.module.ts
β βββ quiz.service.ts # λ¬Έμ μΆμ λ‘μ§
β βββ quiz.repository.ts # DB 쿼리
βββ answer/ # Answer λλ©μΈ
βββ answer.module.ts
βββ answer.service.ts # ν€μλ λ§€μΉ μκ³ λ¦¬μ¦
βββ answer.repository.ts # μ μ μ
λ°μ΄νΈμν€ν μ²:
Claude Desktop (stdio)
β
MCP Layer (Zod κ²μ¦)
β
Domain Layer (Quiz/Answer)
β
Supabase PostgreSQLποΈ λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§
μ»¬λΌ | νμ | μ€λͺ |
| uuid | PK |
| integer | TOEIC ννΈ λ²νΈ |
| text | μμ΄ μλ¬Έ (μ λ΅) |
| text | νκ΅μ΄ λ²μ (λ¬Έμ ) |
| text[] | ν΅μ¬ ν€μλ λ°°μ΄ |
| integer | νμ΅ μλ ¨λ (0-100) |
| timestamptz | λ§μ§λ§ λ³΅μ΅ μκ° |
| integer | μ΄ λ³΅μ΅ νμ |
μΈλ±μ€:
idx_mastery_score: mastery_scoreidx_part_mastery: (part, mastery_score)
π§ νΈλ¬λΈμν
MCP μλ²κ° 보μ΄μ§ μλ κ²½μ°
λΉλ νμΈ:
npm run buildνμΌ νμΈ:
ls dist/main.jsμλ μ€ν:
node dist/main.jsClaude Desktop λ‘κ·Έ νμΈ:
View > Toggle Developer Tools > ConsoleClaude Desktop μμ ν μ¬μμ
λ°μ΄ν°λ² μ΄μ€ μ°κ²° μ€λ₯
claude_desktop_config.jsonμenvμΉμ νμΈstdio νκ²½μμλ
.envνμΌ λμ μ€μ νμΌμ νκ²½ λ³μ νμSupabase νλ‘μ νΈ νμ± μν νμΈ
migrate.sqlμ€ν νμΈ
νμ μλ¬
rm -rf node_modules package-lock.json
npm install
npm run buildπ οΈ κ°λ° λͺ λ Ήμ΄
# λΉλ
npm run build
# κ°λ° λͺ¨λ
npm run start:dev
# μ€ν
npm start
# μν λ°μ΄ν°
node seed.js
# νμ
체ν¬
npx tsc --noEmitπ νμ΅ ν
λ§€μΌ 10-15λΆ κΎΈμ€ν μ°μ΅
weak_first λͺ¨λ νμ©μΌλ‘ μ·¨μ½ λ¬Έμ₯ μ§μ€ 곡λ΅
ν€μλ μ€μ¬ νμ΅ (μ 체 λ¬Έμ₯λ³΄λ€ ν΅μ¬ ν€μλ λ¨Όμ μκΈ°)
μμ± μ λ ₯ μ¬μ©μΌλ‘ λ°μ μ°μ΅ λ³ν
μ μ 80μ μ΄μ λλ©΄ μλμΌλ‘ λ€λ₯Έ λ¬Έμ₯ μΆμ
π ν₯ν κ³ν
187κ° μ 체 λ¬Έμ₯ λ°μ΄ν° μΆκ°
Part 3, 4, 5 μ§μ
νμ΅ ν΅κ³ λμ보λ
μ¬μ©μλ³ νμ΅ κΈ°λ‘
λ°μ νκ° API μ°λ
π μ°Έκ³ μλ£
π λΌμ΄μ μ€
ISC
Version: 1.0.0 | Last Updated: 2026-03-15
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA professional 1-on-1 English tutoring server that enables AI assistants to provide oral practice, grammar correction, and vocabulary recommendations. It features specialized tools for generating conversation topics, tracking progress, and creating immersive role-play scenarios.MIT
- AlicenseAqualityCmaintenanceLocal MCP voice coach that provides English pronunciation, grammar, and fluency feedback from microphone recordings. It supports free-form voice conversation, focused practice drills, phoneme-level feedback, prosody hints, and learner-profile guidance.82MIT
- Flicense-qualityDmaintenanceEnables speech-to-text transcription and summarization of lecture audio using Naver CLOVA APIs. Provides MCP tools for short and long audio processing with summarization.
- Alicense-qualityBmaintenanceServes daily language lessons from a structured curriculum, enabling natural practice through conversation with AI tutors that track progress.131Apache 2.0
Related MCP Connectors
Voice-led, FSRS-scheduled flashcards from YouTube, PDFs, web, or text. Auto-graded quizzes.
20 MCP tools + 17 widgets for SAT/ISEE/SSAT/GRE/GMAT/LSAT prep. Flashcards, quizzes & games. Hosted.
Turn AI chats into vocabulary: capture words and grammar into spaced-repetition flashcards.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/doy00/mcp-toeic-speaking-sentences'
If you have feedback or need assistance with the MCP directory API, please join our Discord server