Cursor and VS Code
Both editors start stdio MCP servers from a JSON file, and stretto init prints the entry that runs your server behind stretto-proxy, in each editor's format:
stretto init --host cursor --domain notes \
-- npx -y @modelcontextprotocol/server-filesystem /home/me/notesstretto init --host vscode --domain notes \
-- npx -y @modelcontextprotocol/server-filesystem /home/me/notesThe two formats differ in their top-level key, and VS Code's names the transport:
{
"mcpServers": {
"notes": {
"command": "stretto-proxy",
"args": ["--record", "~/.stretto/logs/notes", "--domain", "notes",
"--", "npx", "-y", "@modelcontextprotocol/server-filesystem",
"/home/me/notes"]
}
}
}{
"servers": {
"notes": {
"type": "stdio",
"command": "stretto-proxy",
"args": ["--record", "~/.stretto/logs/notes", "--domain", "notes",
"--", "npx", "-y", "@modelcontextprotocol/server-filesystem",
"/home/me/notes"]
}
}
}- Cursor reads
~/.cursor/mcp.jsonfor every project, and.cursor/mcp.jsonin a project. Merge the entry into either. Cursor's MCP settings show each server's status. - VS Code reads
.vscode/mcp.jsonin a workspace, and your usermcp.json, which the command MCP: Open User Configuration opens. Merge the entry into either; the server's tools are then available to its agent mode. The command MCP: List Servers shows each server and can start, stop and restart it.
--write PATH writes the file instead, such as --write .vscode/mcp.json, and leaves an existing file alone unless you add --force, which replaces it with any other servers in it. After the entry, init lists the next steps, from learning a flow to serving it: the quick start follows them.
Serve a flow
Once you have learned and reviewed a flow, run init again with it, with --host cursor or --host vscode:
stretto init --host vscode --domain notes \
--flow ~/.stretto/notes.flow.json \
-- npx -y @modelcontextprotocol/server-filesystem /home/me/notesIt prints the same entry, with the flow added to the proxy's arguments:
"args": ["--record", "~/.stretto/logs/notes", "--domain", "notes",
"--flow", "/home/me/.stretto/notes.flow.json",
"--flow-decider", "reach",
"--", "npx", "-y", "@modelcontextprotocol/server-filesystem",
"/home/me/notes"]Replace the server's entry with the new one, and restart the server.
- Add
--shadowtoinitto see what the flow would do before it acts (shadow mode). - A flow learned with
--habit-onlyhas no arbiter, soinitserves it withreach, which asks no model and needs no key (deciders).
Notes
- Checked-in configuration. A project's
mcp.jsonis shared with everyone who opens the project. Keep--recordunder each person's home, asinitdoes (~/.stretto/logs/NAME), not in the repository: logs hold whatever the tools read and return. - Finding the program. If the editor cannot start
stretto-proxy, give its full path ascommand, fromwhich stretto-proxy.
Any MCP host has what applies to every host: paths, credentials and the three stages of a deployment.