shebang!

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.

Next

Content types and limits.