Dateien per SFTP
Lassen Sie einen Agenten Dateien auf Ihrem Server auflisten, lesen, schreiben und verschieben, während Sallyport den privaten Schlüssel verwahrt.
Auf dieser Seite
Jeder SSH-Host, den Sie verbinden, ist auch ein Dateiserver für Ihre Agenten. Sallyport meldet sich mit Ihrem Schlüssel an, führt die Dateioperation aus und gibt das Ergebnis zurück. Der Agent sieht den Schlüssel nie, und jede Operation landet im Journal.
Einrichtung
Es gibt nichts weiter hinzuzufügen. Verbinden Sie den SSH-Host einmal: dieselbe Verbindung, derselbe Schlüssel und derselbe Host-Schlüssel dienen seinen Befehlen und seinen Dateien. Der Server braucht sein SFTP-Subsystem, das OpenSSH standardmäßig einschaltet.
Festlegen, welche Operationen auf Sie warten
| Operation | Klasse |
|---|---|
list, stat, read | Lesen. Das Lesen eines privaten Schlüssels, einer .env, einer Passwortdatei oder eines Pfads mit .. zählt als Schreiben. |
write, mkdir, rename | Schreiben |
overwrite, delete, rmdir | Destruktiv |
Standardmäßig laufen Dateioperationen ohne Rückfrage. Stellen Sie jede Klasse auf der Seite des Agenten unter Agenten ein, wie bei Befehlen. Die Freigabekarte zeigt Host, Operation und Pfad, bei einem Schreibvorgang auch den Text, der in die Datei kommt. Bytes, die kein Text sind, erscheinen mit ihrer Größe und ihrem SHA-256.
Aus einem Agenten nutzen
list_access nennt die zwei Datei-Tools des Hosts. _sftp_read nimmt nur Lesezugriffe an, ein Client kann es also einmal erlauben. _sftp_write nimmt jede Operation an.
| Argument | Bedeutung |
|---|---|
op | list, stat, read, write, overwrite, mkdir, rename, delete oder rmdir. Pflicht. |
path | Die Datei oder das Verzeichnis: absolut oder relativ zum Anmeldeverzeichnis. Pflicht. |
to | rename: der neue Pfad. Umbenennen ersetzt nie eine Datei, die schon da ist. |
offset, length | read: der Teil der Datei, der gelesen wird. |
content, content_base64 | write, overwrite: die Datei als Text oder ihre Bytes in Base64. write legt eine neue Datei an und ersetzt nie eine vorhandene; overwrite ersetzt die ganze Datei, mit einer Karte zur Freigabe. |
intent | Ein Satz zum Grund, den die freigebende Person sieht. |
call_id | Setzt einen Aufruf fort, der auf Freigabe wartet. |
max_inline_bytes | Wie viel in der Antwort kommt. Standardmäßig 24 KiB; fetch_body liest den Rest. |
_sftp_write{
"op": "write",
"path": "upload/ledger.csv",
"content": "id,amount\n1,100.50\n",
"intent": "Send the September ledger to the bank"
}Große Dateien über HTTP
Eine Datei, die für einen MCP-Aufruf zu groß ist, geht mit dem Token des Agenten über den HTTP-Proxy. Der Pfad nach der ID der Verbindung ist der absolute Pfad der Datei, und die Methode ist die Operation. Ein Download kommt als Stream, so wie der Server sendet, und ein Upload nimmt bis zu 32 MiB an.
| Anfrage | Operation |
|---|---|
GET /p/{id}/srv/report.csv | read. Für einen Teil ?offset= und &length= anhängen. |
GET /p/{id}/srv/reports/ | list: ein Schrägstrich am Ende. |
HEAD /p/{id}/srv/report.csv | stat |
PUT /p/{id}/upload/ledger.csv | write; mit ?op=overwrite overwrite. Der Body ist die Datei. |
POST /p/{id}/upload/2026?op=mkdir | mkdir |
POST /p/{id}/inbox/a.xml?op=rename&to=/archive/a.xml | rename |
DELETE /p/{id}/inbox/a.xml | delete. Mit Schrägstrich am Ende rmdir. |
export SP_TOKEN='sp_live_…'
BINDING='<ssh-connection-id>'
curl --fail-with-body -X PUT -H "Authorization: Bearer $SP_TOKEN" \
-H 'X-Sallyport-Intent: Send the September ledger to the bank' \
--data-binary @ledger.csv \
"https://mcp.sallyport.cloud/p/$BINDING/upload/ledger.csv"
curl --fail-with-body -H "Authorization: Bearer $SP_TOKEN" \
-o ledger-copy.csv \
"https://mcp.sallyport.cloud/p/$BINDING/upload/ledger.csv"Das Ergebnis lesen
- Ein Lesezugriff antwortet mit
content, wenn die Datei Text ist, sonst mitcontent_base64, und mitfile_size. - Eine Auflistung antwortet mit
entries: Name, Typ, Größe, Rechte und Änderungszeit.statantwortet mit einementry. - Eine Ablehnung des Servers ist die Antwort, und sonst geschah nichts:
no_such_file,permission_denied,already_exists,is_a_directoryoderfailure, mit der Meldung des Servers. Auf/p/kommt sie als 404, 403 oder 409. - Öffnen Sie den Aufruf unter Aktivität, um „Ergebnis der Dateioperation“ zu sehen: Ziel, Pfad und übertragene Bytes. Das Journal hält Operation und Pfad fest, nie den Inhalt der Datei.