---
title: "Εργαλεία MCP για την ιστοσελίδα — HyperCRM"
description: "Τα δέκα εργαλεία MCP για τη δημόσια ιστοσελίδα του ιατρείου: σελίδες, modules, FAQ και το ιστολόγιο, μαζί με αυτό που τη δημοσιεύει στο διαδίκτυο."
canonical: "https://hypercrm.app/el/docs/mcp/site"
lang: "el"
updated: "2026-07-26"
---

_Αναφορά MCP / Ιστοσελίδα_

# Εργαλεία ιστοσελίδας

Δέκα εργαλεία για τη δημόσια ιστοσελίδα και το ιστολόγιό της. Οι εγγραφές αφορούν προσχέδιο· η δημοσίευση είναι το μόνο εργαλείο που αλλάζει ό,τι βλέπει το κοινό, και ισχύει αμέσως.

[Ξεκινήστε δωρεάν δοκιμή](/dashboard) · [Και τα 60 εργαλεία](/el/docs/mcp/tools)

## Πώς διαβάζεται

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

Το `practiceId` δεν είναι ποτέ παράμετρος. Προέρχεται από το token σας, και οι διαδρομές εγγραφής το αφαιρούν αν το στείλει ο client.

Κάθε παράδειγμα είναι πλήρες αίτημα `tools/call` με συμπληρωμένες τις υποχρεωτικές παραμέτρους. Τα σφάλματα επιστρέφονται μέσα σε απόκριση `200` με `isError` — δείτε την [επισκόπηση MCP](/el/docs/mcp) και τον [πλήρη κατάλογο](/el/docs/mcp/tools).

Η δημόσια ιστοσελίδα του ιατρείου. Οι εγγραφές αφορούν προσχέδιο μέχρι τη δημοσίευση· η δημοσίευση είναι το μόνο εργαλείο εδώ που αλλάζει ό,τι βλέπει το κοινό.

### get_site

_Μόνο ανάγνωση, Κάθε μέλος_

Ανάγνωση της ιστοσελίδας με σελίδες, modules και FAQ. Επιστρέφει null αν δεν έχει δημιουργηθεί.

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_site",
    "arguments": {}
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the requested records" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### list_site_page_modules

_Μόνο ανάγνωση, Κάθε μέλος_

Ανάγνωση των modules και FAQ μιας σελίδας.

**Παράμετροι**

| Εργαλείο | Τύπος | Υποχρεωτικό; |
| --- | --- | --- |
| `pageId` | `string` | Υποχρεωτικό |

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_site_page_modules",
    "arguments": {
      "pageId": "0f1c7a2e-...."
    }
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the requested records" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `validation_failed` | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| `not_found` | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### check_site_slug_available

_Μόνο ανάγνωση, Μόνο ιδιοκτήτης_

Έλεγχος αν ένα slug είναι έγκυρο και ελεύθερο. Επιστρέφει διαθεσιμότητα και αιτία όταν δεν είναι.

**Παράμετροι**

| Εργαλείο | Τύπος | Υποχρεωτικό; |
| --- | --- | --- |
| `slug` | `string` | Υποχρεωτικό |

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "check_site_slug_available",
    "arguments": {
      "slug": "smile-dental"
    }
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the requested records" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `validation_failed` | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| `forbidden` | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### write_site

_Γράφει, Μπορεί να διαγράψει, Βγαίνει προς τα έξω, Μόνο ιδιοκτήτης_

action=create δημιουργεί την ιστοσελίδα· update αλλάζει ρυθμίσεις· publish ΔΗΜΟΣΙΕΥΕΙ ΤΟ ΤΡΕΧΟΝ ΠΡΟΣΧΕΔΙΟ στο διαδίκτυο, ορατό αμέσως σε οποιονδήποτε.

**Παράμετροι**

| Εργαλείο | Τύπος | Υποχρεωτικό; |
| --- | --- | --- |
| `action` | `create` \\| `update` \\| `publish` | Υποχρεωτικό |
| `slug` | `string` | Προαιρετικό |
| `locale` | `en` \\| `el` | Προαιρετικό |
| `templateId` | `string` | Προαιρετικό |
| `brandColor` | `string` | Προαιρετικό |
| `fontPairing` | `string` | Προαιρετικό |
| `logoFileId` | `string` | Προαιρετικό |
| `heroFileId` | `string` | Προαιρετικό |
| `metaTitle` | `string` | Προαιρετικό |
| `metaDescription` | `string` | Προαιρετικό |
| `showServicePrices` | `boolean` | Προαιρετικό |

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_site",
    "arguments": {
      "action": "create"
    }
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the written record" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `validation_failed` | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| `not_found` | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| `forbidden` | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### update_site_page

_Γράφει, Μόνο ιδιοκτήτης_

Επεξεργασία μεταδεδομένων μιας σελίδας — τίτλος, slug, SEO.

**Παράμετροι**

| Εργαλείο | Τύπος | Υποχρεωτικό; |
| --- | --- | --- |
| `pageId` | `string` | Υποχρεωτικό |
| `enabled` | `boolean` | Προαιρετικό |
| `navLabel` | `string` | Προαιρετικό |
| `navOrder` | `integer` | Προαιρετικό |
| `metaTitle` | `string` | Προαιρετικό |
| `metaDescription` | `string` | Προαιρετικό |

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_site_page",
    "arguments": {
      "pageId": "0f1c7a2e-...."
    }
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the written record" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `validation_failed` | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| `not_found` | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| `forbidden` | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### write_site_module

_Γράφει, Μπορεί να διαγράψει, Μόνο ιδιοκτήτης_

action=create προσθέτει module σε σελίδα (απαιτεί pageId)· update και delete απαιτούν moduleId. Οι αλλαγές αφορούν το προσχέδιο μέχρι τη δημοσίευση.

**Παράμετροι**

| Εργαλείο | Τύπος | Υποχρεωτικό; |
| --- | --- | --- |
| `action` | `create` \\| `update` \\| `delete` | Υποχρεωτικό |
| `pageId` | `string` | Προαιρετικό |
| `moduleId` | `string` | Προαιρετικό |
| `type` | `hero` \\| `intro` \\| `services_teaser` \\| `team_teaser` \\| `why_us` \\| `testimonials` \\| `hours_map` \\| `cta` \\| `faq` \\| `service_grid` \\| `insurance_payment` \\| `story` \\| `team_grid` \\| `credentials` \\| `gallery` \\| `address_map` \\| `hours` \\| `contact_form` \\| `access_parking` \\| `booking_widget` \\| `service_detail` | Προαιρετικό |
| `position` | `integer` | Προαιρετικό |
| `enabled` | `boolean` | Προαιρετικό |
| `content` | `object` | Προαιρετικό |

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_site_module",
    "arguments": {
      "action": "create"
    }
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the written record" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `validation_failed` | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| `not_found` | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| `forbidden` | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### write_site_faq

_Γράφει, Μπορεί να διαγράψει, Μόνο ιδιοκτήτης_

action=create προσθέτει FAQ σε σελίδα (απαιτεί pageId)· update και delete απαιτούν faqId.

**Παράμετροι**

| Εργαλείο | Τύπος | Υποχρεωτικό; |
| --- | --- | --- |
| `action` | `create` \\| `update` \\| `delete` | Υποχρεωτικό |
| `pageId` | `string` | Προαιρετικό |
| `faqId` | `string` | Προαιρετικό |
| `question` | `string` | Προαιρετικό |
| `answer` | `string` | Προαιρετικό |
| `position` | `integer` | Προαιρετικό |

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_site_faq",
    "arguments": {
      "action": "create"
    }
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the written record" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `validation_failed` | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| `not_found` | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| `forbidden` | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### list_blog_posts

_Μόνο ανάγνωση, Κάθε μέλος_

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

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_blog_posts",
    "arguments": {}
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the requested records" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### list_blog_categories

_Μόνο ανάγνωση, Κάθε μέλος_

Εμφανίζει τις κατηγορίες στις οποίες μπορεί να καταχωρηθεί ένα άρθρο. Καλέστε το πριν γράψετε άρθρο αν θέλετε να ορίσετε κατηγορία: το id πρέπει να ανήκει σε αυτόν τον ιστότοπο.

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_blog_categories",
    "arguments": {}
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the requested records" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

### write_blog_post

_Γράφει, Μπορεί να διαγράψει, Μόνο ιδιοκτήτης_

Δημιουργεί, επεξεργάζεται ή διαγράφει άρθρο. Το create χρειάζεται τίτλο, διεύθυνση και κείμενο· τα update και delete χρειάζονται postId. Το άρθρο δημιουργείται ως ΠΡΟΧΕΙΡΟ, και η αλλαγή μόνο της κατάστασής του δεν το βγάζει στον ζωντανό ιστότοπο — πρέπει να δημοσιευτεί ο ίδιος ο ιστότοπος.

**Παράμετροι**

| Εργαλείο | Τύπος | Υποχρεωτικό; |
| --- | --- | --- |
| `action` | `create` \\| `update` \\| `delete` | Υποχρεωτικό |
| `postId` | `string` | Προαιρετικό |
| `title` | `string` | Προαιρετικό |
| `slug` | `string` | Προαιρετικό |
| `excerpt` | `string` | Προαιρετικό |
| `body` | `string` | Προαιρετικό |
| `categoryId` | `string` | Προαιρετικό |
| `authorMembershipId` | `string` | Προαιρετικό |
| `status` | `draft` \\| `published` | Προαιρετικό |
| `metaTitle` | `string` | Προαιρετικό |
| `metaDescription` | `string` | Προαιρετικό |

**Παράδειγμα κλήσης**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "write_blog_post",
    "arguments": {
      "action": "create"
    }
  }
}
```

**Αποτέλεσμα**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "status": 200,
      "ok": true,
      "data": { "...": "the written record" }
    }
  }
}
```

**Σφάλματα**

| Κωδικός | Κατάσταση | Πότε |
| --- | --- | --- |
| `validation_failed` | 400 | Λείπει παράμετρος, έχει λάθος τύπο, ή είναι εκτός των επιτρεπτών τιμών. |
| `not_found` | 404 | Το id δεν υπάρχει στο ιατρείο σας. Ένα κακοσχηματισμένο id φαίνεται ίδιο. |
| `forbidden` | 403 | Ο καλών δεν είναι ιδιοκτήτης του ιατρείου. |
| `unauthorized` | 401 | Το bearer token λείπει, είναι άκυρο ή έχει λήξει. |

## Συχνές ερωτήσεις

### Πώς προστατεύονται τα δεδομένα των ασθενών;

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

### Μπορώ να εξάγω τα δεδομένα μου;

Ναι. Κάθε λίστα στο HyperCRM εξάγεται σε CSV μέσα από την εφαρμογή και τα αρχεία σας μπορούν να κατέβουν οποιαδήποτε στιγμή. Τα δεδομένα του ιατρείου σας ανήκουν σε εσάς, χωρίς χρέωση ή καθυστέρηση εξαγωγής — και στα δύο πακέτα, στη δοκιμή, αλλά και μετά την ακύρωση.

### Πόσο κοστίζει το HyperCRM;

Το HyperCRM είναι λογισμικό επί πληρωμή. Κάθε ιατρείο ξεκινά με δωρεάν δοκιμή 30 ημερών στο πλήρες πακέτο Complete, χωρίς κάρτα. Στη συνέχεια τα πακέτα ξεκινούν από 19 € και 29 € τον μήνα χωρίς ΦΠΑ, σε κλιμάκια ανάλογα με το πόσους επαγγελματίες υγείας απασχολείτε. Κάθε τιμή δημοσιεύεται στη σελίδα τιμών, ποτέ σε τηλεφωνική πώληση.