Uploading
store_upload_file vs. store_upload_content — a local path against stdio, and bytes directly against hosted MCP.
Uploading
There are two upload tools, and which one is available depends on how you're connecting.
store_upload_file (stdio only)
Reads a file straight off local disk and uploads it:
store_upload_file({ path: "./screenshot.png", access: "public" })
This only makes sense over a stdio MCP connection — one running on
your own machine, where path names a file it can actually see.
store_upload_content (hosted MCP)
The hosted MCP server, at https://api.shebang.pro/mcp, runs inside
shebang's own infrastructure — a path argument there would name a file
on shebang's servers, not yours, so there's no local filesystem to read
from at all. store_upload_content uploads by supplying the bytes
directly instead:
store_upload_content({
slug: "screenshot",
contentBase64: "<base64 bytes>",
contentType: "image/png",
access: "public",
})
Supply exactly one of contentBase64 (base64-encoded bytes) or text
(plain-text content) — never both, and never a path to read from. The
hosted server registers store_upload_content in place of
store_upload_file; every other tool is identical between the two
servers. See hosted MCP for how to
connect to it in the first place.
path is optional on store_upload_content — it's only ever used as a
filename hint for the object's default title, never for filesystem
access.