Model Context Protocol (MCP)

3 λεπτά ανάγνωσης

Model Context Protocol (MCP)

Το PgArachne υποστηρίζει εγγενώς το Model Context Protocol (MCP), ένα ανοιχτό πρότυπο που επιτρέπει σε μοντέλα AI (όπως το Claude ή το Cursor) να έχουν ασφαλή πρόσβαση στα δεδομένα και τις συναρτήσεις σας ως «εργαλεία» (tools).

Πώς Λειτουργεί;

Το PgArachne λειτουργεί απευθείας ως MCP Server. Αντί να γράφετε έναν προσαρμοσμένο HTTP server για κάθε έργο, απλώς εκτελέστε το PgArachne πάνω από τη βάση δεδομένων σας. Το PgArachne αναλύει αυτόματα τις επιτρεπόμενες SQL συναρτήσεις σας και τις εκθέτει σε AI clients μέσω HTTP(S).

🛠️ SQL Συναρτήσεις ως Εργαλεία

Κάθε SQL συνάρτηση προσβάσιμη μέσω του JSON-RPC 2.0 endpoint του PgArachne γίνεται αυτόματα ένα «εργαλείο» διαθέσιμο στο AI. Η προεπιλεγμένη συμπεριφορά (κλήση της pgarachne.allowed_schemas()) εκθέτει τις συναρτήσεις που είναι αποθηκευμένες στο schema api στις οποίες ο αυθεντικοποιημένος χρήστης έχει πρόσβαση (μέσω GRANT EXECUTE). Το LLM βλέπει το όνομα της συνάρτησης, τις παραμέτρους και την περιγραφή από τα σχόλια SQL.

Οδηγός Σύνδεσης

1α. Αυθεντικοποίηση — API Token (Συνιστάται για Παραγωγή)

Για μόνιμη σύνδεση με AI, χρησιμοποιήστε ένα μακροχρόνιο API token. Το token πρέπει να δημιουργηθεί από έναν διαχειριστή (μέλος του ρόλου pgarachne_admin):

-- Switch to the administrator role
SET ROLE pgarachne_admin;

-- Generate a new token for the target role (e.g., 'app_user')
SELECT pgarachne.add_api_token('Claude Desktop', 'app_user');

Αποθηκεύστε τη συμβολοσειρά που επιστρέφεται. Χρησιμοποιήστε την ως Authorization: Bearer YOUR_API_TOKEN στη ρύθμιση του AI client.

1β. Αυθεντικοποίηση — Απευθείας Διαπιστευτήρια (Ανάπτυξη & Απλές Ρυθμίσεις)

Εναλλακτικά, στείλτε το όνομα χρήστη και τον κωδικό πρόσβασης του PostgreSQL απευθείας χρησιμοποιώντας HTTP Basic Authentication. Δεν απαιτείται διαχείριση API token, ούτε GRANT … TO pgarachne — το PgArachne συνδέεται απευθείας ως ο συγκεκριμένος χρήστης.

Authorization: Basic <base64(username:password)>

Χρησιμοποιήστε αυτή την προσέγγιση για τοπικές δοκιμές ή εσωτερικά εργαλεία όπου τα διαπιστευτήρια διαχειρίζονται ήδη με ασφάλεια. Για ενσωματώσεις AI παραγωγής με cloud clients, τα API tokens είναι προτιμότερα.

2. Claude Desktop

Προσθέστε το PgArachne στη ρύθμιση του Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "pgarachne": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-http",
        "--url",
        "https://your-api.com/db/my_database/mcp"
      ],
      "env": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Σημείωση: Απαιτείται HTTP(S) για τη σύνδεση. Το παράδειγμα χρησιμοποιεί τη γέφυρα npx server-http από την Anthropic, η οποία λειτουργεί ως ενδιάμεσος μεταξύ του τυπικού MCP (stdio) και του PgArachne (HTTP).

3. Cursor

Στις ρυθμίσεις του Cursor (Settings > MCP), προσθέστε έναν νέο server που επικοινωνεί απευθείας μέσω HTTP (ή χρησιμοποιώντας τη γέφυρα που αναφέρθηκε παραπάνω αν η έκδοση του Cursor σας δεν υποστηρίζει εγγενείς HTTP MCP servers):

  • Type: command (με γέφυρα npx) ή http
  • Name: PgArachne
  • URL: https://your-api.com/db/my_database/mcp
  • Auth Header: Authorization: Bearer YOUR_API_TOKEN

🌐 Δημόσια Προσβασιμότητα (Ngrok)

Εάν δοκιμάζετε το PgArachne τοπικά και θέλετε να το συνδέσετε με έναν AI client που βασίζεται στο cloud (εκτός τοπικών εγκαταστάσεων), ο server σας πρέπει να είναι δημόσια προσβάσιμος μέσω μιας HTTP(S) URL.

# Run ngrok for the HTTP PgArachne port (e.g., 8080)
ngrok http 8080

Στη συνέχεια χρησιμοποιήστε τη διεύθυνση HTTPS που δημιουργήθηκε από το Ngrok στη ρύθμιση του AI.

Ασφάλεια

Το MCP endpoint σέβεται πλήρως το σύστημα δικαιωμάτων του PostgreSQL:

  • Αυθεντικοποίηση: Κάθε αίτημα απαιτεί ένα έγκυρο API token, JWT, ή διαπιστευτήρια HTTP Basic· τα μη αυθεντικοποιημένα αιτήματα απορρίπτονται αμέσως.
  • Εξουσιοδότηση: Το AI μπορεί να δει και να καλέσει μόνο τις συναρτήσεις στα επιτρεπόμενα schemas για τις οποίες ο αυθεντικοποιημένος ρόλος έχει GRANT EXECUTE.
  • RLS: Η Row-Level Security είναι πλήρως ενεργή — το AI βλέπει μόνο τις γραμμές στις οποίες έχει πρόσβαση ο συγκεκριμένος ρόλος.

Δείτε Ασφάλεια & Αυθεντικοποίηση για μια πλήρη σύγκριση όλων των υποστηριζόμενων μεθόδων αυθεντικοποίησης.