Ir a la documentación
DocumentaciónArchivos por SFTP

Archivos por SFTP

Deja que un agente liste, lea, escriba y mueva archivos en tu servidor mientras Sallyport guarda la clave privada.

En esta página

Cada host SSH que conectas es también un servidor de archivos para tus agentes. Sallyport entra con tu clave, hace la operación con el archivo y devuelve el resultado. El agente nunca ve la clave, y cada operación queda en el registro.

Configuración

No hay nada más que añadir. Conecta el host SSH una vez: la misma conexión, la misma clave y la misma clave de host sirven para sus comandos y sus archivos. El servidor necesita su subsistema SFTP, que OpenSSH activa por defecto.

Elige qué operaciones te esperan

OperaciónClase
list, stat, readLectura. Leer una clave privada, .env, un archivo de contraseñas o una ruta con .. cuenta como escritura.
write, mkdir, renameEscritura
overwrite, delete, rmdirDestructiva

Por defecto, las operaciones con archivos se ejecutan sin preguntar. Ajusta cada clase en la página del agente en Agentes, como para los comandos. La tarjeta de aprobación muestra el host, la operación y la ruta, y en una escritura el texto que entra en el archivo. Los bytes que no son texto se muestran con su tamaño y su SHA-256.

Úsalo desde un agente

list_access nombra las dos herramientas de archivos del host. _sftp_read solo acepta lecturas, así que un cliente puede permitirla una vez. _sftp_write acepta todas las operaciones.

ArgumentoSignificado
oplist, stat, read, write, overwrite, mkdir, rename, delete o rmdir. Obligatorio.
pathEl archivo o directorio: ruta absoluta o relativa al directorio de inicio de sesión. Obligatorio.
torename: la ruta nueva. Un cambio de nombre nunca reemplaza un archivo que ya existe.
offset, lengthread: la parte del archivo que se lee.
content, content_base64write, overwrite: el archivo como texto o sus bytes en base64. write crea un archivo nuevo y nunca reemplaza uno que ya existe; overwrite reemplaza el archivo entero, con una sola tarjeta para aprobar.
intentUna frase sobre el motivo, visible para quien aprueba.
call_idContinúa una llamada que espera aprobación.
max_inline_bytesCuánto llega en la respuesta. 24 KiB por defecto; fetch_body lee el resto.
Argumentos de una llamada a _sftp_write
{
  "op": "write",
  "path": "upload/ledger.csv",
  "content": "id,amount\n1,100.50\n",
  "intent": "Send the September ledger to the bank"
}

Archivos grandes por HTTP

Un archivo demasiado grande para una llamada MCP pasa por el proxy HTTP con el token del agente. La ruta tras el id de la conexión es la ruta absoluta del archivo, y el método es la operación. Una descarga fluye a medida que el servidor la envía, y una subida admite hasta 32 MiB.

SolicitudOperación
GET /p/{id}/srv/report.csvread. Añade ?offset= y &length= para una parte.
GET /p/{id}/srv/reports/list: una barra al final.
HEAD /p/{id}/srv/report.csvstat
PUT /p/{id}/upload/ledger.csvwrite; con ?op=overwrite, overwrite. El cuerpo es el archivo.
POST /p/{id}/upload/2026?op=mkdirmkdir
POST /p/{id}/inbox/a.xml?op=rename&to=/archive/a.xmlrename
DELETE /p/{id}/inbox/a.xmldelete. Con una barra al final, rmdir.
Shell · sube un archivo y luego descárgalo
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"

Lee el resultado

  • Una lectura responde con content si el archivo es texto y con content_base64 si no lo es, además de file_size.
  • Un listado responde con entries: nombre, tipo, tamaño, permisos y hora de cambio. stat responde con una entry.
  • Un rechazo del servidor es la respuesta, y no se hizo nada más: no_such_file, permission_denied, already_exists, is_a_directory o failure, con el mensaje del servidor. En /p/ llega como 404, 403 o 409.
  • Abre la llamada en Actividad para ver Resultado de la operación con archivos: el destino, la ruta y los bytes movidos. El registro guarda la operación y la ruta, nunca el contenido del archivo.