← All posts
8fs Blog

How to deliver files and manage client portals from Claude Code using the 8fs MCP server

If you use Claude Code to build things for clients, you already know the gap: you finish the work, then you switch out of the terminal to upload files somewhere

If you use Claude Code to build things for clients, you already know the gap: you finish the work, then you switch out of the terminal to upload files somewhere, copy a link, paste it into an email. Three tools. Six context switches. None of it is the part anyone hired you for.

The 8fs MCP server closes that gap. Once connected, you can upload files, create client portals, shorten URLs, and send secure notes directly from any Claude Code conversation — without leaving the terminal.


What the 8fs MCP server does

MCP (Model Context Protocol) lets AI agents call external tools during a conversation. The 8fs MCP server exposes your 8fs account as 12 tools that Claude Code can call directly:


Setup: two steps

Step 1: Get an API key

Sign into your 8fs dashboard at app.8fs.io, go to Settings, scroll to "API Keys & MCP", and click "Create API key". Copy the key — you only see it once.

Step 2: Add to Claude Code

claude mcp add --transport http https://mcp.8fs.io \
  --header "Authorization: Bearer 8fs_YOUR_KEY_HERE"

That's it. The next time you start a Claude Code session, the 8fs tools are available.


What this looks like in practice

Delivering a completed project:

You've finished a landing page redesign. The assets are in /output/. You tell Claude Code:

"Upload the files in /output/ to my 8fs account, create a portal called 'Acme Redesign — Final Deliverables', add all the files to it, and give me the portal URL."

Claude Code reads the files, base64-encodes them, uploads each one, creates the portal, adds the files, and returns 8fs.io/p/acme-redesign-final. You paste that link into your handoff email. The client opens a branded page with every deliverable, views them inline, and clicks Approve per file. You get an email notification.

Total time: the 30 seconds it takes Claude Code to run the tools.

Sending credentials after a handoff:

The client needs WordPress admin credentials. You tell Claude Code:

"Create a secure note with these credentials and send it to client@acme.com"

Claude Code calls create_secure_note, encrypts the text client-side, and returns a one-time URL. The client opens it once; the note self-destructs. No credentials in email history.

Checking approval status before closing a project:

"Check the status of my Acme portal. Have they approved everything?"

Claude Code calls get_portal_status, returns which files are approved, which need changes, and what the client's notes said. You know where you stand before sending the invoice.


Using it with Cursor

The same MCP server works with Cursor. Add it in Cursor's MCP settings:

{
  "mcpServers": {
    "8fs": {
      "url": "https://mcp.8fs.io",
      "headers": {
        "Authorization": "Bearer 8fs_YOUR_KEY_HERE"
      }
    }
  }
}

Any Cursor Agent conversation can then call 8fs tools the same way.


Claude Desktop

For Claude Desktop, add to your claude_desktop_config.json:

{
  "mcpServers": {
    "8fs": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.8fs.io"],
      "env": {
        "HEADER_Authorization": "Bearer 8fs_YOUR_KEY_HERE"
      }
    }
  }
}

What it does not do

The MCP server cannot:


The workflow this enables

The pattern that works well for freelancers using AI tools:

  1. Build with Claude Code or Cursor
  2. Deliver via 8fs MCP tools — no browser tab required
  3. Track approval status from the terminal
  4. Close the project when every file is approved

The 8fs MCP server is free to use on any paid plan. API keys are created and managed in Settings at app.8fs.io.

Client delivery, built for freelancers.

Permanent portals. Client approval. No expiring links. $12/month.

Try 8fs free →