How to use the Stream Vessel MCP server with Claude, ChatGPT, Cursor and VS Code

Updated · 12 min read · For AWS S3, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, MinIO, IDrive e2 and any S3-compatible storage

The Stream Vessel MCP server lets an AI assistant work with your S3 and S3-compatible storage. It can find files, read them, upload, copy, move and clean up, and it never sees your access keys. This guide covers connecting Claude, Claude Code, ChatGPT, Cursor or VS Code, choosing how much access to give, and keeping the agent safe and useful.

The short answer
  • Server URL: https://mcp.streamvessel.com (remote MCP server over HTTP).
  • Two ways to sign in: approve the app in your browser (OAuth), or paste a personal token that starts with svmcp_.
  • Three access levels: READ, WRITE and FULL. Only FULL can move or delete.
  • Limits you set: an expiry of up to a year, and optionally only the connections, buckets and folders you choose.
  • What the AI gets: 27 tools, 3 ready-made prompts, and an activity log of every call. Free on Stream Vessel Cloud.

1. Before you start

You need three things:

  1. A Stream Vessel Cloud account. Sign up free at app.streamvessel.com with Google, GitHub or an email address.
  2. At least one storage connection on that account. AWS S3, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, MinIO, IDrive e2 or any other S3-compatible endpoint. The endpoint must be reachable from the internet, because tool calls run on Stream Vessel’s servers, not on your computer.
  3. An MCP client that can connect to a remote server over HTTP, such as Claude, Claude Code, ChatGPT, Cursor or VS Code.

Connections that you keep only on your device, in the Chrome extension without an account, are deliberately out of MCP’s reach: their keys never leave your browser. Connections shared with you by someone else are included.

2. OAuth or a token: which to choose

Both give the AI the same tools under the same rules. They differ in how the client proves who it is.

OAuth (approve in the browser) Personal token
Setup Paste the server URL, then click Approve on Stream Vessel. Create a token, then paste a command or click an install button.
Secret to keep safe None you handle. The client stores and refreshes its own access. The token, shown once. Treat it like a password.
Best for Claude and ChatGPT in the browser or desktop app, and anyone who prefers not to copy secrets. Claude Code, Cursor and VS Code, scripts, CI jobs and clients without OAuth support.
Listed under Connected apps MCP tokens

Either way you choose the access level, the expiry and where it works, and you can revoke it at any time.

3. Connect with OAuth

  1. Add the server to your client as a remote MCP server with the URL https://mcp.streamvessel.com. You do not need a token.
    • Claude (claude.ai and the desktop app): open Settings → Connectors, choose Add custom connector and paste the URL.
    • ChatGPT: add it as a custom connector (MCP server) by its URL, where your ChatGPT plan and workspace allow custom connectors.
    • Claude Code: run the command below, then type /mcp in Claude Code, choose streamvessel and authenticate.
    • Cursor and VS Code: add a remote (HTTP) MCP server with the URL in the editor’s MCP settings; in VS Code, the MCP: Add Server command does this.
    • An agent or client of your own: add the URL the same way. The first time it signs in, Stream Vessel shows the https address it asked to send you back to; if you set the client up yourself, type its host to trust that address for your account, and the sign-in carries on. You get an email, and you can remove the address under Trusted app addresses on the MCP page, which disconnects the client. Why it works this way.
  2. Sign in to Stream Vessel when your browser opens, if you are not signed in already.
  3. Check the consent screen. It names the app, says where approving sends you back to, and shows the account you are approving as. Pick the access level, the expiry and where it works, then click Approve.
  4. Return to your client. The tools appear there, ready to use.
claude mcp add --transport http streamvessel https://mcp.streamvessel.com
Stream Vessel consent screen for an AI app named Claude: access level READ, WRITE or FULL, expiry 90 days, Where it works set to All connections, and Deny or Approve buttons
The consent screen. Every connection asks for it again, so nothing is approved silently.

The app name on the consent screen is chosen by the app itself, and Stream Vessel has not checked it. Approve only a connection you just started yourself. If a link you did not expect opens this screen, click Deny. For a program on your own computer, such as Claude Code, the screen adds a warning that access goes to a local program; that is expected when you started the connection there.

After you approve, the app appears under Connected apps on the MCP access page, with its access level, where it works, when it was last used and when it expires. The access ends on that date; after that, connect the app again.

MCP access page listing three personal tokens, a Connected apps table with Claude at WRITE access on all connections, and the Activity log switch turned on
Personal tokens and connected apps sit side by side, each with its own revoke button.

4. Connect with a personal token

1. Open MCP access

In Stream Vessel Cloud, open the menu and choose Account → MCP access, or go straight to app.streamvessel.com/mcp.

MCP access page: a table of MCP tokens with name, token prefix, scope, reach, created, last used, expiry and status; the Activity log switch; and Connect your agent expanded with the server URL https://mcp.streamvessel.com and the Claude Code command
The MCP access page: your tokens, the activity log setting, and setup instructions for your agent.

2. Create a token

Click New token and fill in four fields:

  • Name. Say where the token will live, such as laptop-claude-code or ci-reports-readonly. You will thank yourself when it is time to revoke one.
  • Scope. READ, WRITE or FULL. Start with READ; see access levels.
  • Expires. 30 days, 90 days, 1 year or a custom date. Tokens always expire, after at most a year.
  • Where it works. All connections, or Only these to pick a connection, a bucket and a folder.
New MCP token dialog: name nightly-export, scope WRITE, expires in 30 days, Where it works set to Only these with the connection Acme Production, bucket acme-prod-assets and folder exports/
A WRITE token that works only in one folder of one bucket, for 30 days.

3. Copy the token

Click Create token. The token is shown once: copy it now. Stream Vessel stores only a SHA-256 hash of it, so it cannot show the token again. If you lose it, create a new one and revoke the old one.

Token created panel: the new svmcp_ token with a Copy button and the warning that it is never shown again, its expiry date, and Connect your agent with the server URL, Claude Code and .mcp.json tabs, and Add to Cursor and Add to VS Code buttons
The new token, with setup for your agent beside it. The command and buttons already contain the token.

4. Add it to your client

Claude Code. Copy the command from the Claude Code tab and run it in a terminal. It looks like this:

claude mcp add --transport http streamvessel https://mcp.streamvessel.com \
  --header "Authorization: Bearer <YOUR_TOKEN>"

Cursor or VS Code. Click Add to Cursor or Add to VS Code next to the new token. The editor opens and offers to install the server, token included.

A project file. The .mcp.json tab gives a configuration that Claude Code reads from the root of a project. It reads the token from an environment variable, so the file is safe to commit:

{
  "mcpServers": {
    "streamvessel": {
      "type": "http",
      "url": "https://mcp.streamvessel.com",
      "headers": {
        "Authorization": "Bearer ${STREAMVESSEL_MCP_TOKEN}"
      }
    }
  }
}
export STREAMVESSEL_MCP_TOKEN="svmcp_…"

Any other client. Configure a remote MCP server over HTTP with the URL https://mcp.streamvessel.com and the header Authorization: Bearer <your token>.

5. Choose the access level and where it works

Access levels

Each token or app has one level, and each level includes everything below it.

Level The AI can Typical use
READ List, search, read, measure, check exposure and create download links. Questions, summaries, reports, audits.
WRITE Also write and upload files, copy objects and folders, edit metadata and manage multipart uploads. Generating files, publishing reports, backups into a new folder.
FULL Also move and delete objects and whole folders. Reorganising and cleaning up, with you watching.

Where it works

All connections covers every connection on your account, including ones shared with you and ones you add later. Only these limits the token or app to the places you list, up to 50 of them:

  • a whole connection (leave the bucket empty),
  • one bucket on it (leave the folder empty), or
  • one folder in that bucket, such as reports/.

Anything not listed looks to the AI as if it does not exist. A connection outside the list does not even appear in list_connections. On a connection shared with you, the AI gets the lower of its own level and the level you were given: a FULL token on a connection shared with you at READ can only read there.

6. Your first conversation

Start by asking what the AI can see. It will call list_connections, which every other tool depends on:

  • “List my Stream Vessel connections and the buckets on each.”

Then try requests like these:

  • Find: “Find every CSV under exports/2026/ in acme-prod-assets and summarise their headers.”
  • Read: “Show me the last 50 lines of logs/app.log.”
  • Measure: “How much space does backups/ take, and what is the newest file in it?”
  • Edit: “Read config/app-settings.json, bump the version and write it back.”
  • Organise: “Copy last month’s reports into archive/2026-09/.”
  • Share: “Give me a download link for the newest backup that expires in 30 minutes.”
  • Secure: “Is the acme-media-archive bucket readable by the public?”
  • Save money: “Find multipart uploads older than 7 days and show them to me before cancelling them.”

7. All 27 tools

Your client lists them under the name you gave the server. Each tool is marked as read-only or as one that changes data, and clients use those marks to decide when to ask you before running it. The AI only ever sees the tools; which ones succeed depends on the access level.

Tool What it does Level
list_connections Lists the storage connections the token can use, with the bucket path and permission of each. READ
list_buckets Lists the buckets on one connection. READ
list_objects Lists files and folders under a prefix, one level or recursively, a page at a time. READ
find_objects Finds objects by name at any depth with a glob (*.csv) or a regular expression. READ
stat_prefix Counts the objects and bytes under a folder, and names the newest and largest. READ
measure_bucket Totals the size of a bucket in bounded chunks. READ
get_object_metadata Size, content type and user metadata of one object, without reading it. READ
read_object Reads a text file; can return the first or last lines or a byte range of a large one. READ
create_download_link A short-lived pre-signed download URL. READ
create_download_links Short-lived pre-signed download URLs for up to 20 objects in one bucket per call. READ
list_multipart_uploads Finds unfinished multipart uploads, optionally only those older than N days. READ
check_bucket_exposure Checks whether an anonymous stranger can list or read a bucket. Only on connections you own. READ
write_object Writes a text file. Refuses to replace an existing one unless told to overwrite. WRITE
create_upload_link A short-lived pre-signed upload URL, for binary or large files. WRITE
set_object_metadata Adds, changes or removes user metadata entries, leaving the rest alone. WRITE
copy_object Copies one object within or between buckets. WRITE
copy_prefix Copies a whole folder to another folder. WRITE
start_multipart_upload Starts an upload in parts, for files over 5 GiB. WRITE
presign_upload_parts Pre-signed URLs for the parts of a multipart upload. WRITE
complete_multipart_upload Assembles the uploaded parts into the final object. WRITE
abort_multipart_upload Discards one unfinished upload and its billed parts. WRITE
abort_unfinished_uploads Discards a list of unfinished uploads at once. WRITE
move_object Moves or renames one object. FULL
move_prefix Moves a whole folder. FULL
delete_object Permanently deletes one object. FULL
delete_objects Permanently deletes up to 1,000 named objects in one call. FULL
delete_prefix Permanently deletes everything under a folder. FULL

8. Prompts and resources

Besides tools, the server offers three prompts: ready-made plans that the AI carries out with the tools. Clients show them in their own way; in Claude Code they are slash commands such as /mcp__streamvessel__safe_cleanup.

  • audit_prefix: measures and describes what sits under a folder, changing nothing.
  • summarise_bucket: describes what a bucket holds and how its storage is spread, changing nothing.
  • safe_cleanup: shows you what a folder holds and asks for your confirmation before deleting any of it. Use this instead of asking for a delete directly.

Each object is also available as a resource at s3://{connection}/{bucket}/{key}, with the key percent-encoded, for clients that let you attach a file from an MCP server.

9. Tips for working safely

  • Give the least access that does the job. Use READ for questions and reports, WRITE when the AI must create files, and FULL only for a clean-up you are supervising.
  • Use one token per agent or machine. Then revoking one does not break the others, and Last used tells you which one is active.
  • Limit it to a folder. An agent that writes reports needs reports/, not your whole account.
  • Remember there is no undo. Deletes and overwrites are permanent unless your provider keeps object versions. Tools that could overwrite refuse to unless the AI passes overwrite on purpose.
  • Measure before you delete. Ask the AI to run stat_prefix and show you the result first, or use the safe_cleanup prompt.
  • Mind the trailing slash. logs/ is the folder; logs also matches logs-archive/. Folder tools ask for the slash.
  • Ask for a search, not a crawl. “Find files named *invoice*” uses find_objects, which is much faster than browsing folder by folder.
  • Keep tokens out of git. Use the environment variable in .mcp.json rather than pasting the token into the file.
  • Clean up abandoned uploads. Parts of an unfinished multipart upload are billed until removed. Ask the AI to list uploads older than a few days and cancel them; uploads started in the last 24 hours are protected unless you insist.

10. Limits worth knowing

The server keeps each answer small, because an AI rereads every tool result on every later turn of a conversation. Current limits:

What Limit What happens instead
Reading a file 64 KiB of text per answer Larger or binary files come back as a download link; the AI can also read the first or last lines, or a byte range.
Writing a file 256 KiB of text For larger or binary files the AI creates an upload link.
Listing a folder 500 entries per call The AI pages through the rest.
Download and upload links 15 minutes by default, 60 at most A longer request gets 60 minutes, and the answer says so.
Copying a folder 500 objects per call The AI is told the copy stopped early and continues folder by folder.
Deleting named objects 1,000 keys per call Longer lists are refused rather than half-deleted.
Uploading one file 5 GiB in a single upload Larger files go up in parts with the multipart tools.

Each token and app is also rate-limited, so an agent stuck in a loop cannot hammer your storage. Your provider still charges its usual request and transfer fees for what the AI does.

11. Rotate, revoke and audit

  • Rotate a token without downtime: create the new token, point your agent at it, then revoke the old one. A token that expires within 14 days shows a warning tag in the list.
  • Revoke a token or disconnect an app with the trash icon on the MCP access page. It stops working on its next call. Your storage keys do not change, so nothing else breaks.
  • Activity log. On by default, it records every tool call your tokens and connected apps make: the tool, the connection, bucket and object, and how it ended. Turning it off requires being signed in to Stream Vessel in a browser, so a stolen token cannot switch it off.

12. Troubleshooting

What you see What it means and what to do
The client reports 401 Unauthorized The token is mistyped, expired or revoked. Check its status on the MCP access page, and create a new one if needed. With OAuth, connect the app again.
“This token has READ scope; WRITE is required for this operation.” The level is too low for that tool. Create a token, or approve the app again, with a higher level.
“That is outside the part of the storage this connection reaches.” The AI tried a bucket or folder the token is not limited to. Ask it to call list_connections and stay within the bucket path it reports.
A connection is missing from list_connections It is outside Where it works, saved only on your device, or not an S3 connection. MCP tools work with S3 and S3-compatible storage.
“This connection was shared with the user at a level that does not allow that…” The connection’s owner shared it with you at a lower level, or not that folder. Only the owner can widen the share.
“Storage endpoint could not be reached for this connection.” or “…could not be resolved…” Stream Vessel’s servers cannot reach the endpoint. It must be public: a MinIO server on your home network or behind a VPN is not reachable.
“The stored secret key for this connection could not be read.” Edit the connection in Stream Vessel Cloud and enter its secret key again.
The consent page says “This link can't be used” The sign-in link was incomplete or reused. Start connecting again from your AI app.

Still stuck? Contact us and tell us which client you use and what it reported.

FAQ

MCP server questions

What is the Stream Vessel MCP server URL?
https://mcp.streamvessel.com. Add it to your AI client as a remote (HTTP) MCP server. Clients that support OAuth sign you in through your browser; others send a Stream Vessel token in the Authorization header.
Do I need to give the AI my AWS access keys?
No. Your storage keys stay encrypted on Stream Vessel’s servers. The AI client holds only an OAuth grant or a Stream Vessel token, which you can limit, let expire or revoke without touching the keys.
Which AI clients work with it?
Any MCP client that connects to a remote server over HTTP. Claude, ChatGPT, Claude Code, Cursor and VS Code can sign in with OAuth, and so can a client of your own once you trust its https sign-in address. Claude Code, Cursor and VS Code can also use a token, and Stream Vessel gives you a ready-made command or a one-click install for each.
Can I limit the AI to one bucket or folder?
Yes. When you create a token or approve an app, choose Only these under Where it works and pick a connection, optionally a bucket, and optionally a folder. Anything you do not list looks to the AI as if it does not exist.
How long does access last?
At most a year. You choose 30 days, 90 days, 1 year or a custom date; 90 days is the default. You can revoke a token or disconnect an app at any time on the MCP access page.
Can the AI delete my files?
Only with FULL access. READ can list and read, WRITE adds uploads, copies and metadata changes, and only FULL can move or delete. Deletes are permanent unless your provider keeps versions, so give FULL only when you need it.
Does the MCP server work with connections saved only in the Chrome extension?
No. MCP reaches the storage connections on your Stream Vessel Cloud account. Connections kept only on your device stay out of its reach, because their keys never leave your browser.
Is it free?
Yes. The MCP server is part of Stream Vessel Cloud, which is free. Your storage provider still bills you for the requests and data transfer the AI causes.

Connect your AI to your buckets in two minutes.