> For the complete documentation index, see [llms.txt](https://docs.chamilo.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamilo.org/3.x/el/odigos-diaxeirisis/admin-guide/mcp.md).

# MCP

Το Chamilo 3.0 εκθέτει έναν διακομιστή MCP ώστε οι βοηθοί και οι πράκτορες ΤΝ (Claude, σύνδεσμοι ChatGPT ή οποιοσδήποτε πελάτης συμβατός με MCP) να μπορούν να ενεργούν εντός της πλατφόρμας εκ μέρους ενός πιστοποιημένου χρήστη, χρησιμοποιώντας τα δικαιώματα του ίδιου του χρήστη — δεν υπάρχει ξεχωριστός λογαριασμός υπηρεσίας ούτε αυξημένη πρόσβαση.

## Τι προσθέτει το MCP στο Chamilo

Το MCP (Model Context Protocol) είναι ένα ανοιχτό πρότυπο που επιτρέπει σε πελάτες ΤΝ να καλούν ένα καθορισμένο σύνολο «εργαλείων» που εκτίθενται από έναν διακομιστή. Ο διακομιστής MCP του Chamilo είναι προσβάσιμος σε ένα μοναδικό σημείο πρόσβασης, `/mcp`, και εκθέτει ένα επιλεγμένο σύνολο εργαλείων διαχείρισης μαθημάτων προσανατολισμένων στον διδάσκοντα, αντί για ολόκληρη την επιφάνεια του API.

## Διαθέσιμες δυνατότητες

Κάθε κλήση εκτελείται ως ο συνδεδεμένος χρήστης, επομένως ένα εργαλείο βλέπει και τροποποιεί μόνο μαθήματα που διαχειρίζεται αυτός ο χρήστης. Το τρέχον σύνολο εργαλείων:

| Εργαλείο                            | Τι κάνει                                                                                                                           |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Current user                        | Επιστρέφει την ταυτότητα και τους ρόλους του πιστοποιημένου χρήστη                                                                 |
| Teacher courses                     | Παραθέτει τα μαθήματα που διαχειρίζεται ο χρήστης ως διδάσκων                                                                      |
| Course overview                     | Επιστρέφει βασικές πληροφορίες μαθήματος και πλήθος πόρων                                                                          |
| Create course                       | Δημιουργεί νέο μάθημα χρησιμοποιώντας τους κανόνες δημιουργίας μαθημάτων της πλατφόρμας                                            |
| Create course assignment            | Δημιουργεί προσχέδιο ή δημοσιευμένη εργασία με περιγραφή και μέγιστη βαθμολογία                                                    |
| Create course test                  | Δημιουργεί τεστ πολλαπλής επιλογής με υποστήριξη ΤΝ από περιγραφή θέματος ή υπάρχον έγγραφο                                        |
| Get course test response status     | Αναφέρει ποιοι φοιτητές έχουν απαντήσει, βρίσκονται σε εξέλιξη ή εκκρεμούν σε ένα τεστ                                             |
| Get user course test score          | Επιστρέφει τις πιο πρόσφατες και τις καλύτερες ολοκληρωμένες βαθμολογίες ενός φοιτητή σε ένα τεστ                                  |
| Create training satisfaction survey | Δημιουργεί έρευνα ικανοποίησης επτά ερωτήσεων                                                                                      |
| Create course learning path         | Δημιουργεί διαδρομή μάθησης από σελίδες που παρέχει ο πελάτης MCP                                                                  |
| List documents                      | Παραθέτει τα έγγραφα στο εργαλείο Documents ενός μαθήματος                                                                         |
| Read course document                | Επιστρέφει το περιεχόμενο HTML, τον τίτλο και τα μεταδεδομένα ενός επεξεργάσιμου εγγράφου                                          |
| Edit course document                | Αντικαθιστά ολόκληρο το περιεχόμενο HTML ενός υπάρχοντος επεξεργάσιμου εγγράφου                                                    |
| Create course document              | Δημιουργεί έγγραφο HTML με υποστήριξη ΤΝ στον ριζικό φάκελο Documents                                                              |
| Create course illustration          | Δημιουργεί εικονογράφηση ΤΝ για ένα θέμα και την αποθηκεύει ως έγγραφο                                                             |
| Illustrate document paragraph       | Εισάγει υπάρχουσα εικόνα ή βίντεο πριν ή μετά από μια παράγραφο σε ένα έγγραφο                                                     |
| Find recent course forum activity   | Εντοπίζει πρόσφατες, ορατές αναρτήσεις φόρουμ σχετικές με ένα θέμα                                                                 |
| Review course quality               | Αναλύει τις διαδρομές μάθησης, τα έγγραφα, τα τεστ, τις εργασίες και τις έρευνες ενός μαθήματος και επιστρέφει συστάσεις βελτίωσης |

Αυτή η λίστα επιμελείται από την ομάδα πυρήνα του Chamilo και δεν είναι επεκτάσιμη από τον χρήστη εντός της πλατφόρμας — οι διδάσκοντες δεν μπορούν να προσθέσουν δικά τους εργαλεία.

## Πώς συνδέονται οι χρήστες

### Προσωπικό κλειδί API MCP

Κάθε χρήστης δημιουργεί το δικό του κλειδί στην ενότητα **Κοινωνικό δίκτυο** > **Κλειδί API MCP**:

* Κάνοντας κλικ στο **Generate API key** δημιουργείται ένα κλειδί και εμφανίζεται μία φορά — το Chamilo αποθηκεύει στη συνέχεια μόνο μια καλυμμένη έκδοση, επομένως το πλήρες κλειδί πρέπει να αντιγραφεί και να αποθηκευτεί με ασφάλεια αμέσως.
* Η δημιουργία νέου κλειδιού ανακαλεί αμέσως το προηγούμενο.
* Η σελίδα εμφανίζει την κατάσταση του κλειδιού (ενεργό/ανενεργό), το σημείο πρόσβασης MCP προς διαμόρφωση στον πελάτη, καθώς και τις ημερομηνίες δημιουργίας και τελευταίας χρήσης.
* Το πλαίσιο **Remote MCP connection** περιγράφει ακριβώς τι πρέπει να τοποθετηθεί στον πελάτη MCP: τη διεύθυνση URL του σημείου πρόσβασης και μια κεφαλίδα `Authorization: Bearer <your MCP API key>`.

Όπως σημειώνει η ίδια η σελίδα, το κλειδί πιστοποιεί τον πελάτη ως τον λογαριασμό αυτού του χρήστη — δεν χορηγεί κανένα δικαίωμα που ο λογαριασμός δεν διαθέτει ήδη.

### OAuth 2.1 (απομακρυσμένοι πελάτες και σύνδεσμοι)

Για πελάτες MCP που υποστηρίζουν ανακάλυψη OAuth και δυναμική καταχώριση πελάτη (αντί για κλειδί που επικολλάται χειροκίνητα), το Chamilo λειτουργεί επίσης ως διακομιστής εξουσιοδότησης OAuth 2.1: ο πελάτης ανακαλύπτει τα σημεία πρόσβασης του Chamilo, καταχωρίζει τον εαυτό του και ανακατευθύνει τον χρήστη στο `/oauth/authorize` για έγκριση πρόσβασης. Οι εγκεκριμένες εφαρμογές εμφανίζονται στην ενότητα **Κοινωνικό δίκτυο** > **Εξουσιοδοτημένες εφαρμογές**, όπου ο χρήστης μπορεί να ανακαλέσει όσες δεν χρησιμοποιεί πλέον ή δεν αναγνωρίζει.

## Θέματα Ασφαλείας

* **Χωρίς κλιμάκωση προνομίων.** Κάθε κλήση εργαλείου MCP και κάθε εφαρμογή εξουσιοδοτημένη μέσω OAuth εκτελείται με τα ίδια δικαιώματα Chamilo του συνδεδεμένου χρήστη — ένα προσωπικό κλειδί API ή μια εξουσιοδοτημένη εφαρμογή δεν μπορεί ποτέ να κάνει περισσότερα από όσα θα μπορούσε ήδη να κάνει ο χρήστης χειροκίνητα.
* **Μόνο Bearer, με περιορισμό ρυθμού.** Το `/mcp` δέχεται μόνο διαπιστευτήριο Bearer — ένα προσωπικό κλειδί API MCP, ένα διακριτικό πρόσβασης OAuth ή (σε ανάπτυξη) ένα JWT. Οι προσπάθειες αυθεντικοποίησης περιορίζονται ως προς τον ρυθμό ανά διεύθυνση IP ώστε να επιβραδύνεται η εικασία διαπιστευτηρίων.
* **Στενή δημόσια επιφάνεια.** Η μόνη μη αυθεντικοποιημένη κίνηση που δέχεται το `/mcp` είναι το preflight `OPTIONS`· κάθε πραγματική κλήση απαιτεί `ROLE_USER`. Τα endpoints ανακάλυψης OAuth, δυναμικής εγγραφής πελάτη και διακριτικών είναι σκόπιμα δημόσια, όπως απαιτούν οι προδιαγραφές OAuth 2.1 / MCP — αυτό από μόνο του δεν χορηγεί πρόσβαση, απλώς επιτρέπει σε έναν πελάτη να μάθει πώς να ξεκινήσει τη ροή εξουσιοδότησης.
* **Η προστασία από DNS-rebinding είναι σκόπιμα απενεργοποιημένη για το `/mcp`.** Το πακέτο που υλοποιεί το MCP περιορίζει κανονικά το endpoint στο `localhost` εκτός αν έχει ρυθμιστεί στατική λίστα επιτρεπόμενων ονομάτων κεντρικών υπολογιστών — κάτι που ταιριάζει άσχημα σε μια πύλη Chamilo με πολλαπλά URL προσβάσιμη υπό πολλά ονόματα κεντρικών υπολογιστών. Το Chamilo απενεργοποιεί αυτόν τον έλεγχο επειδή είναι πλεονάζων εδώ: κάθε αίτημα `/mcp` απαιτεί ήδη διαπιστευτήριο Bearer ανεξάρτητα από την κεφαλίδα `Host`/`Origin`, και μια επίθεση DNS-rebinding (που βασίζεται σε περιβάλλουσα αυθεντικοποίηση τύπου cookie που συνοδεύει ένα πλαστογραφημένο Host) δεν μπορεί να πλαστογραφήσει ένα διακριτικό bearer που δεν έχει ήδη.

## Ρύθμιση του διακομιστή MCP

Σε αντίθεση με τις περισσότερες ενσωματώσεις σε αυτόν τον οδηγό, το MCP δεν διαθέτει σελίδα ρυθμίσεων στον πίνακα διαχείρισης — ρυθμίζεται σε επίπεδο αρχείου, στο `config/packages/mcp.yaml`, και απαιτεί πρόσβαση κελύφους στον διακομιστή:

| Κλειδί                                               | Σκοπός                                                                                                                        |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `app`, `version`, `description`                      | Ταυτότητα που αναφέρει το Chamilo στους συνδεόμενους πελάτες MCP                                                              |
| `client_transports.stdio` / `client_transports.http` | Ποια μέσα μεταφοράς είναι ενεργά· το Chamilo ενεργοποιεί και τα δύο από προεπιλογή                                            |
| `http.path`                                          | Το HTTP endpoint του MCP (`/mcp` από προεπιλογή)                                                                              |
| `http.allowed_hosts`                                 | Λίστα επιτρεπόμενων κεντρικών υπολογιστών για DNS-rebinding — ορισμένη σε `false` στο Chamilo (βλ. Θέματα Ασφαλείας παραπάνω) |
| `http.session.store`, `.directory`, `.ttl`           | Πού αποθηκεύεται η κατάσταση συνεδρίας MCP και για πόσο χρόνο                                                                 |

Για να απενεργοποιήσετε πλήρως τον διακομιστή MCP, ορίστε `client_transports.http: false` (και `stdio: false` αν πρέπει να απενεργοποιηθεί και το μέσο μεταφοράς CLI) και καθαρίστε την προσωρινή μνήμη:

```bash
php bin/console cache:clear --env=prod
php bin/console cache:warmup --env=prod
```

## Συμβουλές

* Αντιμετωπίστε ένα κλειδί API MCP όπως έναν κωδικό πρόσβασης — όποιος το κατέχει μπορεί να ενεργεί ως αυτός ο χρήστης μέσω οποιουδήποτε πελάτη MCP.
* Ενθαρρύνετε τους χρήστες να ελέγχουν περιοδικά τις **Εξουσιοδοτημένες εφαρμογές** και να ανακαλούν οτιδήποτε δεν αναγνωρίζουν.
* Δείτε τη [Ρύθμιση AI](/3.x/el/odigos-diaxeirisis/admin-guide/integrations/ai-configuration.md) για τους παρόχους AI που υποστηρίζουν τα εργαλεία δημιουργίας περιεχομένου (δημιουργία δοκιμασιών, δημιουργία εγγράφων, εικονογραφήσεις) που αναφέρονται παραπάνω.
