Skip to main content
All connectors
qbash Connectors / SFTP

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

  1. Connect SFTP on the qbash Connectors page.
  2. Create an MCP server and add the SFTP tools you want to share.
  3. 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.

main.py
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
See every SFTP method in the SDK Reference

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.

AnthropicOpenAIGeminixAI

Run Tasks on a schedule or from your team's tools

OpenAIAnthropicGrokGmailSlackGitHub+ more
  • 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.

Build a SFTP task

Write it in Python with AI steps, and qbash hosts it with versions and run logs.

Build a task

Build a SFTP MCP server

Pick the SFTP tools to share and connect ChatGPT, Claude or Grok Bot.

Build an MCP server