AI Agents & MCP

MCP Config Files for VS Code, Windsurf, Cline, Codex and Other Clients

By SRIFT maintainers · Published

Reviewed by SRIFT maintainers · last reviewed against the SRIFT 4.3.2 source · third-party facts checked 8 October 2026.

Short answer

Every MCP client takes the same two facts about a server: how to start it locally (a command and arguments, run over stdio) or where to reach it remotely (a URL, over Streamable HTTP). What differs is the file, the top-level key and a few field names. For SRIFT the local entry is npx -y srift-transfer mcp (all 15 tools, including file sharing) and the remote one is https://srift.app/mcp (9 session tools, no file access).

The table below lists the config file and format for VS Code, Cursor, Windsurf, Cline, Claude Code, OpenAI Codex, Zed, Gemini CLI and Continue, each checked against the client's own documentation.

Local command
npx -y srift-transfer mcp (Node.js 20+)
Remote URL
https://srift.app/mcp (Streamable HTTP)
Local tools
15, including quick-share and file transfer
Remote tools
9 session and control tools, no filesystem

Config files for clients without a dedicated page. Claude Desktop and Claude Code are covered in send files from Claude with MCP, Cursor in Cursor file transfer via MCP, and what the server offers in the SRIFT MCP server overview.

First decide: local or remote

A local entry makes the client start srift mcp as a child process on your machine. It can read files, so it offers all 15 tools: srift_quick_share turns a path into a download link, and the session tools can send and receive files. Use it in desktop apps, IDEs and terminal agents that run where your files are.

A remote entry points the client at https://srift.app/mcp. Nothing is installed and there is no API key, but the hosted server has no filesystem, so it offers only the 9 tools that work without one: start, join, inspect and close sessions, approve, reject and kick participants, list transfers and diagnose the network. Use it for cloud-hosted agents that cannot start local processes. The trade-offs are covered in local vs remote MCP servers.

The examples below use npx, which needs Node.js 20 or later and downloads the package on first use. If you installed the CLI (npm install -g srift-transfer, pip install srift or the standalone binary), replace npx -y srift-transfer mcp with srift mcp. To pin a version, write [email protected] instead of the bare package name.

Config files and formats at a glance

Where each client stores MCP servers and the fields it expects, from each client's documentation, checked 8 October 2026.
ClientConfig locationTop-level keyLocal entryRemote entry
VS Code.vscode/mcp.json or the user mcp.jsonserverscommand, args"type": "http", url
Cursor.cursor/mcp.json or ~/.cursor/mcp.jsonmcpServers"type": "stdio", command, argsurl
Windsurf (Cascade)mcp_config.json, opened from the MCP settingsmcpServerscommand, argsserverUrl
Clinecline_mcp_settings.json (Configure MCP Servers)mcpServerscommand, args"type": "streamableHttp", url
Claude Codeclaude mcp add; project scope writes .mcp.jsonmcpServers-- npx …--transport http
OpenAI Codex~/.codex/config.toml[mcp_servers.<name>]command, argsurl
Zedsettings file, context_serverscontext_serverscommand, args, envurl
Gemini CLI~/.gemini/settings.json or .gemini/settings.jsonmcpServerscommand, argshttpUrl
Continue.continue/mcpServers/*.yamlmcpServers (YAML list)type: stdio, command, argstype: streamable-http, url

Claude Desktop and Cursor have their own step-by-step SRIFT guides: send files from Claude and Cursor file transfer.

VS Code, Cursor, Windsurf and Cline

VS Code

VS Code reads MCP servers from .vscode/mcp.json in a workspace, or from the user-level file that the MCP: Open User Configuration command opens. Both use a servers key, not mcpServers, which is the most common copy-paste mistake. (VS Code also reads a portable .mcp.json at the project root, which uses mcpServers.)

.vscode/mcp.json
{
  "servers": {
    "srift": { "command": "npx", "args": ["-y", "srift-transfer", "mcp"] },
    "srift-hosted": { "type": "http", "url": "https://srift.app/mcp" }
  }
}

Use one of the two entries, not both, unless you want to compare them.

Cursor

Cursor reads .cursor/mcp.json in a project and ~/.cursor/mcp.json globally. Its field reference marks type as required for local servers.

~/.cursor/mcp.json
{
  "mcpServers": {
    "srift": { "type": "stdio", "command": "npx", "args": ["-y", "srift-transfer", "mcp"] }
  }
}

Windsurf

Windsurf's Cascade agent keeps servers in mcp_config.json. Cognition now publishes these docs under Devin Desktop, which places the file at ~/.config/devin/mcp_config.json on macOS and Linux and %APPDATA%\devin\mcp_config.json on Windows; older Windsurf installs keep it in their own settings folder. The reliable way to find yours is to open the MCP settings in Cascade, which opens the file. Remote servers use serverUrl.

mcp_config.json
{
  "mcpServers": {
    "srift": { "command": "npx", "args": ["-y", "srift-transfer", "mcp"] }
  }
}
mcp_config.json (hosted, 9 tools)
{
  "mcpServers": {
    "srift-hosted": { "serverUrl": "https://srift.app/mcp" }
  }
}

Cline

In Cline, open the MCP Servers panel, choose Configure, then Configure MCP Servers to edit cline_mcp_settings.json. For remote servers, set "type": "streamableHttp" explicitly: Cline's documentation notes that omitting it falls back to the legacy SSE transport.

cline_mcp_settings.json
{
  "mcpServers": {
    "srift": {
      "command": "npx",
      "args": ["-y", "srift-transfer", "mcp"],
      "disabled": false,
      "autoApprove": ["srift_session_status", "srift_list_transfers"]
    }
  }
}

autoApprove skips the confirmation for the listed tools. Keep it to read-only tools such as status and transfer lists; never add srift_quick_share or srift_send_file (see the security note below).

Claude Code, OpenAI Codex, Gemini CLI, Zed and Continue

Claude Code

Claude Code adds servers from the command line. For a local server, everything after -- is the command to run, so flags such as -y reach npx instead of Claude Code. The default scope is local to the current project; --scope user makes it available everywhere, and --scope project writes a shared .mcp.json.

Terminal
claude mcp add --scope user srift -- npx -y srift-transfer mcp
# or the hosted endpoint:
claude mcp add --transport http srift-hosted https://srift.app/mcp
claude mcp list

OpenAI Codex

Codex (CLI and IDE extension) reads ~/.codex/config.toml, with one TOML table per server, and can write it for you with codex mcp add.

Terminal
codex mcp add srift -- npx -y srift-transfer mcp
codex mcp add srift-hosted --url https://srift.app/mcp
codex mcp list
~/.codex/config.toml
[mcp_servers.srift]
command = "npx"
args = ["-y", "srift-transfer", "mcp"]

Gemini CLI

Gemini CLI reads mcpServers from ~/.gemini/settings.json or a project's .gemini/settings.json. Remote Streamable HTTP servers use httpUrl (the url field means SSE there). Its documentation advises against underscores in server names.

Terminal
gemini mcp add -s user srift npx -y srift-transfer mcp
gemini mcp add --transport http srift-hosted https://srift.app/mcp

Leave the trust field at its default, false. Setting it to true skips every confirmation for that server, including file sharing.

Zed

In Zed, open Settings → AI → MCP Servers and choose Add Server, or edit the settings file directly under context_servers. A green dot next to the server means it started.

Zed settings.json
{
  "context_servers": {
    "srift": { "command": "npx", "args": ["-y", "srift-transfer", "mcp"], "env": {} }
  }
}

Continue

Continue reads one YAML block per file from .continue/mcpServers/ in the workspace; its config.json format is marked deprecated. MCP tools are only available in agent mode.

.continue/mcpServers/srift.yaml
name: SRIFT
version: 0.0.1
schema: v1
mcpServers:
  - name: srift
    type: stdio
    command: npx
    args:
      - "-y"
      - "srift-transfer"
      - "mcp"

Check that it works

After saving the configuration, restart or reload the client and look for the server in its MCP list. A working local server reports 15 tools whose names start with srift_; the hosted endpoint reports 9. Then ask the agent something that exercises the server without side effects, such as “check which SRIFT transports work on this machine”, which calls srift_net_diagnose.

When a local server fails to start, the cause is almost always one of these:

  • npx not found. Desktop apps started from a dock or start menu do not always inherit your shell's PATH. Use the absolute path to npx, or install the CLI and use the absolute path to srift; srift install-mcp prints a config with the right path for your install.
  • Node.js older than 20. Check with node --version, or use the standalone binary from curl -fsSL https://srift.app/install.sh | sh, which needs no Node.js.
  • A blocked network or sandbox. The server needs outbound HTTPS and WebSocket on port 443. If the machine cannot run a background daemon, srift mcp runs it inside its own process automatically. srift doctor shows which hop is blocked and how to fix it.
  • Two definitions of the same server. A project-level and a global file can both define srift; remove one.

Approval settings and safety

Most clients ask before running a tool, and most let you turn that off per server or per tool (Cline's autoApprove, Gemini CLI's trust, and similar settings elsewhere). For a file-sharing server that choice matters more than usual.

For sensitive files, ask for an encrypted, single-use link: the tool accepts encrypt, maxDownloads and ttlMs arguments, so a request such as “share build.zip encrypted, one download, expiring in an hour” maps onto them directly. How the resulting link behaves is described in how AI coding agents deliver files.

Frequently asked questions

Why does my VS Code configuration ignore the mcpServers key?

VS Code's .vscode/mcp.json and user mcp.json use a top-level servers key. The mcpServers key is used by Cursor, Claude Desktop, Cline, Gemini CLI and VS Code's portable .mcp.json format.

Can I use the hosted SRIFT endpoint to share files from my computer?

No. The hosted endpoint at https://srift.app/mcp has no access to your filesystem and offers only the 9 session and control tools. File sharing needs the local server, started with npx -y srift-transfer mcp or srift mcp.

Do I need an API key?

No. Neither the local server nor the hosted endpoint uses API keys or accounts. The hosted endpoint is rate-limited per IP address instead.

References

  1. Add and manage MCP servers in VS Code (Microsoft)
  2. Model Context Protocol (MCP) (Cursor)
  3. Cascade MCP integration (Cognition (Windsurf / Devin Desktop))
  4. Configuring MCP servers (Cline)
  5. Connect Claude Code to tools via MCP (Anthropic)
  6. Model Context Protocol in Codex (OpenAI)
  7. Model Context Protocol in Zed (Zed)
  8. MCP servers with Gemini CLI (Google)
  9. How to set up MCP in Continue (Continue)

Give your agent a file-transfer tool

Local MCP over stdio (15 tools) or hosted at https://srift.app/mcp (9 session tools, no file access).

{ "mcpServers": { "srift": { "command": "npx", "args": ["-y", "srift-transfer", "mcp"] } } }