interactive-game-mcp
by ozcansayid
README.md
# Eğiteknoloji Etkileşimli İçerik Player Kabuğu & MCP Sunucusu
Bu proje; **Eğiteknoloji** kurumsal marka kimliği ve renk paletine tam uyumlu, 16:9 oranını koruyarak tüm cihazlarda (akıllı tahta, tablet, mobil, masaüstü) milimetrik olarak ölçeklenen, SCORM 1.2 uyumlu ve yapay zeka ajanlarının doğrudan içerik üretebilmesi için tasarlanmış bir **Etkileşimli İçerik Player Kabuğu ve MCP (Model Context Protocol) Sunucusudur**.
---
## 🎨 1. Tasarım & Mimari Standartları
### Kurumsal Renk Paleti (Eğiteknoloji Standartları)
* **Ana Kurumsal (Primary):** `#052249` (Derin Okyanus Laciverti - Üst/alt çerçeve, kurumsal güven)
* **Ana Vurgu (Accent / CTA):** `#6cb22f` (Zümrüt Yeşili - Doğru cevaplar, onay, başarı butonları)
* **Destekleyici Mavi:** `#086cd9` (İlerleme çubukları, kart seçimi, hiperlinkler)
* **Açık Buz Mavisi:** `#8fc3ff` (Hover fonları, rozet zeminleri)
* **Açık Bölüm Fonu:** `#eaf4ff` (İçerik kartı zeminleri, bilgi kutuları)
* **Nötr Tuval Zemin:** `#f8f8f9` (Temiz ve sade açık arka plan)
* **Yüksek Kontrastlı Metin:** `#080808`
### 16:9 Otomatik Responsive Ölçekleme (Viewport Scaler)
* **Referans Çözünürlük:** `1280 x 720` px.
* `#stage-container` içerisindeki `#app-viewport`, ekran en-boy oranına göre `transform: scale(...)` ile bozulmadan, taşmadan ve bulanıklaşmadan ortalanır (letterbox / pillarbox).
### Modüler ve Opsiyonel UI Kontrolleri (`features`)
Her içerikte tüm butonların olması zorunlu değildir. İhtiyaca göre konfigürasyondan `true/false` olarak yönetilir:
```javascript
features: {
audio: true, // Ses açma/kapatma butonu & efektler
navigation: true, // İleri / Geri butonları
playButton: false, // Başlangıç kapak ekranı ve "Başla" butonu
score: true, // Skor / Puan rozeti
timer: true, // Süre sayacı
lives: true, // Can sistemi (❤️❤️❤️)
fullscreen: true, // Tam ekran butonu
progressBar: true // İlerleme çubuğu
},
initialLives: 3, // Başlangıç can sayısı (1-5)
timerMode: "stopwatch", // "stopwatch" (kronometre) veya "countdown" (geri sayım)
timerDuration: 60 // Geri sayım saniyesi
```
### 🧠 Arka Plan Durum (State) & Telemetri API'si
Geliştiriciler veya AI ajanları içerik içinde doğrudan şu metodları çağırabilir:
* `shell.addScore(points)`: Puan ekler.
* `shell.subtractScore(points)`: Puan düşürür.
* `shell.loseLife(1)`: Bir can eksiltir. Canlar tükenince otomatik başarısızlık modalı açılır.
* `shell.gainLife(1)`: Ekstra can verir.
* `shell.startTimer("stopwatch" | "countdown", duration)`: Süreyi başlatır. Geri sayımda süre bitince "Süre Doldu" ekranı açılır.
* `shell.getTelemetryData()`: `{ score, elapsedSeconds, formattedTime, livesRemaining, isCompleted }` nesnesini döndürür. SCORM veya harici LMS raporlama için hazırdır.
### Dahili Ses Sentezleyici (Procedural Web Audio API)
Harici `.mp3` dosyalarına ihtiyaç duymadan, tarayıcının yerel Web Audio API'si ile doğru, yanlış, buton tıklama ve bölüm sonu zafer fanfarı çalar.
### SCORM 1.2 Desteği
* `imsmanifest.xml` paketi hazırdır.
* `core/scorm-api.js` aracılığıyla LMS mevcutsa `cmi.core.score.raw`, `cmi.core.lesson_status` verilerini otomatik iletir; LMS yoksa bağımsız (mock) modda sessizce çalışmaya devam eder.
---
## 🚀 2. MCP (Model Context Protocol) Kurulumu ve Entegrasyonu
Bu MCP sunucusu; **Antigravity IDE**, **Claude Desktop**, **Cursor** veya herhangi bir MCP istemcisine bağlanabilir.
### `mcp_config.json` veya `claude_desktop_config.json` Tanımı:
```json
{
"mcpServers": {
"egiteknoloji-interactive": {
"command": "node",
"args": [
"d:\\wamp64\\www\\mcp\\etkilesimli-icerik\\mcp-server\\server.js"
]
}
}
}
```
---
## 🛠️ 3. MCP Sunucusunun Sunduğu Yetenekler (Tools)
| Tool Adı | Açıklama |
| :--- | :--- |
| `get_framework_specs` | 16:9 boyut kurallarını, Eğiteknoloji renk kodlarını, SCORM ve ses API'sini döndürür. |
| `list_activity_templates` | Desteklenen etkinlik türlerini (`matching`, `quiz`) ve beklenen JSON veri şemalarını listeler. |
| `scaffold_interactive_activity` | Yapay zeka ajanının ürettiği sorular/kavramlar ile sıfırdan çalışan, paketlenmiş 16:9 SCORM projesi oluşturur. |
---
## 💡 4. Yapay Zeka Ajanına Verilebilecek Örnek İstemler
MCP bağlandıktan sonra ajana şu şekilde komut verebilirsiniz:
> *"Bana 4. sınıf Fen Bilgisi 'Besinlerimiz ve Görevleri' konusu için 4 çiftli bir Eğiteknoloji eşleştirme oyunu hazırla. Ses olsun, süre sayacı olmasın, skor aktif olsun."*
Ajan arka planda:
1. `get_framework_specs` ile renk ve kuralları inceler.
2. `scaffold_interactive_activity` tool'unu çağırarak içeriği tek seferde üretir.
3. Çıktı olarak WAMP veya yerel klasörde doğrudan LMS'e yüklenebilecek SCORM hazır bir paket teslim eder.
---
## 📂 5. Klasör Hiyerarşisi
```
etkilesimli-icerik/
├── index.html # Canlı demo & etkinlik değiştirici (Eşleştirme + Quiz)
├── imsmanifest.xml # SCORM 1.2 manifest dosyası
├── logo_colorful_with_white_text.png
├── logo_icon_colorful.png
├── core/
│ ├── shell.css # Eğiteknoloji tasarım sistemi & 16:9 ölçekleyici stilleri
│ ├── shell.js # Shell yönetimi, timer, skor, navigasyon, responsive ölçekleyici
│ ├── audio-synth.js # Dahili Web Audio API ses motoru
│ └── scorm-api.js # SCORM 1.2 LMS wrapper & mock
├── activities/
│ ├── matching/ # 1. Örnek: Tıkla-Eşleştir (Click to Pair) Oyunu
│ │ ├── matching.css
│ │ └── matching.js
│ └── quiz/ # 2. Örnek: Çoktan Seçmeli Test Motoru
│ ├── quiz.css
│ └── quiz.js
└── mcp-server/ # MCP Sunucusu (Antigravity & AI Ajan Entegrasyonu)
├── package.json
└── server.js
```
---
## 🖥️ 6. Canlı Önizleme
Tarayıcınızda doğrudan `d:\wamp64\www\mcp\etkilesimli-icerik\index.html` dosyasını açabilir veya WAMP sunucunuz aktifse `http://localhost/mcp/etkilesimli-icerik/` adresinden test edebilirsiniz.
TDQS
A3.8/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a distinct responsibility: fetching framework specs, listing available templates, and scaffolding a new activity. There is no meaningful overlap between them.
Naming Consistency5/5
All tool names follow a consistent verb_noun snake_case pattern: get_, list_, scaffold_. The verbs clearly indicate the action and the nouns identify the resource.
Tool Count5/5
Three tools is a focused, well-scoped set for a scaffolding-oriented MCP server. Each tool earns its place and none feels redundant.
Completeness5/5
The tool surface fully covers the core workflow: retrieve standards, inspect available templates, and generate a new interactive activity. There are no obvious dead ends for the server's stated purpose.
Maintenance
ActivityMaintained
ResponsivenessNo issues