MCP Gateway for AI Tools

What is the MCP Gateway?

The MCP Gateway exposes all the operations from any storage you have authenticated as tools you can call from your AI client.

User
MCP GATEWAY
NFS
SMB
S3
MCP
...

Just like the SFTP Gateway, the MCP Gateway translates MCP calls from your AI client into operations on any downstream storage supported by Filestash, such as S3, SFTP, FTP, SMB, NFS, and many others.

Note: all the screenshots in this page were made using our test instance: https://demo.filestash.app/sse and via a readonly webdav storage at https://webdav.filestash.app

Configuration

Assuming you have already followed the general configuration guide, you just need to enable the feature from the /admin/settings under Features:

Example using ChatGPT

Up until ChatGPT opens up the app registration process for everyone, you need to manually register the app in developer mode. This process looks like this:

Example using Claude Code

To add the mcp connector to claude code:

~/$ claude mcp add filestash npx mcp-remote https://demo.filestash.app/sse
Added stdio MCP server filestash with command: npx mcp-remote https://demo.filestash.app/sse to local config

Next time you open up claude, it will open up a browser window to the authentication page and you should see something like this:

mcp screenshot

> /mcp
╭───────────────────────────────────────────────────────────╮
│ Manage MCP servers                                        │
│                                                           │
│ ❯ 1. filestash ✔ connected · Enter to view details        │
╰───────────────────────────────────────────────────────────╯
     Esc to exit

> can you list the files at the root of the remote storage?
● I'll help you list the files at the root of the remote
storage. Let me use the MCP filestash tool to do this.

filestash:ls (MCP)(path: "/")
⎿  [DIR] Pictures
    [DIR] Music
    [DIR] Videos
    … +2 lines (ctrl+r to expand)

● The root directory contains:
  - Pictures/ (directory)
  - Music/ (directory)
  - Videos/ (directory)
  - README.org (file)
  - Documents/ (directory)

Example using Mistral lechat

To configure the extension, it looks like this:

Using the MCP Inspector

~/$ npx @modelcontextprotocol/inspector@latest
Starting MCP inspector...
⚙️ Proxy server listening on localhost:6277
🔑 Session token: fa66c0b5eaa4a1d57bec5cf471ecd4e179ead952d3211440919622e89d3b9d2e
   Use this token to authenticate requests or set DANGEROUSLY_OMIT_AUTH=true to disable auth

🚀 MCP Inspector is up and running at:
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=fa66c0b5eaa4a1d57bec5cf471ecd4e179ead952d3211440919622e89d3b9d2e

🌐 Opening browser...

Conclusion

For practical purpose, you might want to use chroot in your storage alongside authorisation fields to restrict the actions available to the LLM so it can’t go haywire and start accessing things it should not or start removing things.

Also, we are aiming at making our MCP plugin compatible with 100% of tools in the market. If you have issue with some other tools, please contact us and create a bug request so we can increase coverage.