SFTP MCP serverand Python AI tasks
qbash hosts a SFTP MCP server you can use in Claude, ChatGPT, Codex, Cursor, Grok Bot and Muse.
Developers use qbash Tasks to write cloud-hosted Python functions that pair SFTP with models such as Claude and GPT.
MCP server
Build a SFTP MCP server
Give ChatGPT, Claude and your other AI tools access to SFTP through one server. You pick which SFTP tools it shares, and you can add other connectors, memory folders and Tasks to the same server.
How to set it up
- Connect SFTP on the qbash Connectors page.
- Create an MCP server and add the SFTP tools you want to share.
- Paste the server URL into your client. It connects with OAuth or an access token.
Python AI task
Write a SFTP task in Python
A qbash Task is a hosted Python function that calls SFTP and AI models.
Check the incoming delivery directory
List the incoming directory, then ask an inline prompt to report which CSV files arrived with their sizes and modification times.
listing = qbash.integrations.sftp.list_files(
path="/incoming", timeoutSeconds=30, retryAttempts=1,
)
entries = listing.get("entries", [])
if entries:
check = qbash.ai.run_prompt(
slug="sftp-delivery-check",
variables={"entries": json.dumps(entries)},
)
qbash.output(check)
else:
qbash.output("The incoming directory is empty.")
Sample list_files response
{
"path": "/incoming",
"entries": [
{
"name": "orders.csv",
"type": "file",
"size": 18342,
"mtime": "2026-09-30T08:00:00Z"
},
{
"name": "archive",
"type": "dir",
"size": null,
"mtime": null
}
]
}
What the SFTP connector can do
- List directory entries on the SFTP/FTP server: name, type (file, dir, symlink, other), size in bytes and last-modified time. To explore a server, start at / and descend into any entry of type dir by passing its full path; a symlink is followed by listing its own path. On plain FTP, mtime is the server's local clock with no timezone offset and can be hours off
- Return the byte size of a remote file
- Count data rows in a remote CSV file
- Read a bounded slice of rows from a remote CSV file
- Download a remote file and return it as a QBash file-reference object
- Read raw text lines from a remote file: CSV, TSV, fixed-width, plain text or any line-delimited format, to inspect contents, check headers or validate a layout. Reading stops at lineCount lines or 64 KB, whichever comes first, and the result carries the total file size
qbash Tasks: AI applications in Python
A Task is a Python function that calls SFTP, your other connectors and models such as Claude, GPT, Gemini and Grok. qbash hosts and runs it.
Run Tasks on a schedule or from your team's tools
- Deterministic where it counts Write the logic in Python and call a model only for the steps that need judgement, so the rest runs the same way every time.
- Version controlled Every save is a revision you can compare and roll back.
- Logged Each run records its inputs, output, errors and what started it.
- Shared credentials Connections belong to your organization, so a Task keeps working when its author is away.
SFTP MCP questions
What can the SFTP MCP server do in chat?
It lists directory entries. Row counts, CSV reads, line reads and downloads run from Python tasks through qbash.integrations.sftp.
Does it support plain FTP?
Yes. Choose FTP or SFTP as the protocol on the connection. FTP sends the password in clear text, and its listings report times in the server’s local clock.
Can it upload or delete files?
No. All six methods read, so the connection cannot change anything on the server.
Related data connectors
Build a SFTP task
Write it in Python with AI steps, and qbash hosts it with versions and run logs.
Build a SFTP MCP server
Pick the SFTP tools to share and connect ChatGPT, Claude or Grok Bot.