sauce mcp serves the SDK’s tools and agent skills over the Model Context Protocol. Use sauce mcp setup to add the server to coding agents’ project configuration.
Synopsis
Description
The server
A coding agent startssauce mcp itself, from its MCP configuration, and talks to it over stdio. Every server, over stdio or HTTP, has these tools and resources:
- the command’s building tools:
sauce_chains,sauce_globals,sauce_price,sauce_pools,sauce_compile,sauce_actions,sauce_tx,sauce_signed_cook,sauce_pot,sauce_reclaim,sauce_simulate,sauce_inspectandsauce_verify; sauce_send, which broadcasts transactions the caller signed;- the agent skills as tools (
sauce_skills,sauce_skill,sauce_dev,sauce_install_skills) and as resources atsauce://skills/<path>; - one prompt,
sauce_write_program.
- Wallet tools for the wallet directory (
--wallets, default~/.sauce/wallets, the onesauce walletuses).sauce_wallet_listandsauce_wallet_addressneed no password.sauce_wallet_create,sauce_wallet_import,sauce_wallet_sendandsauce_signwork once the wallets are enabled. A password source given on the command line enables them at start; without one, the agent enables them withsauce_wallet_enable, naming where the password comes from and never the password itself.sauce_wallet_sendsimulates what it is given and holds it to the wallet’s policy before it sends, andsauce_signsigns a cook for another account to send (sauce sign). MCP wallets covers them. - Store tools: every Pot that a tool’s transaction deploys (
sauce_send,sauce_wallet_send) is recorded in the Pot store (--pots, default~/.sauce/pots), whichsauce_pot_listandsauce_pot_importread and write, assauce pot listandsauce pot importdo.--no-storeskeeps no store, the wallet directory included, and so serves no wallet tool. Local server storage covers them.
--http, the server serves Streamable HTTP at /mcp, stateless, on 127.0.0.1 unless --host says otherwise, and answers only a loopback Host or an --allowed-host one. It authenticates no one, so off loopback it needs --allowed-host and belongs behind your own authentication. The HTTP server has no signing, wallet or Pot store tools, and refuses --wallets and the password flags. Self-hosting covers running it for a team.
A tool reads a chain through the caller’s rpcUrl, else the --config entry for the chain, else a built-in public endpoint. Over HTTP the server reads no environment variable. Over stdio it reads the one --password-env names, and any one an agent names through sauce_wallet_enable’s env, using its value only as the wallets’ password (Agents, wallets and keys). It never shows a URL from the config file. --offline reaches no network of its own: no built-in endpoint, and no install of its packages; a tool then reads a chain only through a caller’s rpcUrl.
The server’s packages, the MCP SDK and zod, are optional peer dependencies of the package. The server uses your own copies at the pinned versions, else this version’s runtime folder, which its first start installs (sauce runtime).
sauce mcp setup
setup adds the server to a project, for each agent, in the file its vendor documents:
The entry launches
npx -y @eco-incorp/sauce@<version> mcp, where <version> is the exact version of the sauce that ran setup. A project file is shared, so it names no command a machine must have installed, and it runs the version whose skills the project installed. --config <file> adds --config <file> to the entry’s arguments. The entry starts the server with no wallet flags: it serves the wallet directory ~/.sauce/wallets, with no password source.
Existing files are handled as follows:
- Everything else in a file is kept.
- An entry that is already there is reported
unchanged. - A
sauceentry that differs is kept, unless you pass--force. - A JSON file that is not plain JSON, such as one with a comment, is refused, and
setupexits2with the entry to add by hand. It stops there: the files for the agents before it are already written, and those after it are not. For every agent, an unparseable.cursor/mcp.jsonleaves.mcp.jsonand.codex/config.tomlwritten, and no.vscode/mcp.jsonor.gemini/settings.json(example).
setup prints the one for Codex: Codex reads .codex/config.toml only in a project it trusts. setup also installs the runtime folder, so an agent’s first start of the server does not wait for it.
To add the server to your user configuration instead of the project’s, use the agent’s own command:
claude_desktop_config.json) and Cursor (.cursor/mcp.json) take the entry "sauce": { "command": "sauce", "args": ["mcp"] } under mcpServers; VS Code (.vscode/mcp.json) takes it under servers. sauce is a Node.js script that starts with #!/usr/bin/env node, so a desktop client that does not have your shell’s PATH needs both: the absolute path which node prints as command, and the path which sauce prints, then mcp, as args. MCP overview covers each agent.
Options
Output
Over stdio the server writes only the protocol to stdout; its messages go to stderr. A message larger than--max-body closes the connection. With --http it prints the URL it serves on stderr. The server prints no update notice: when the update cache names a newer release, the first tool result of the server’s life carries one note about it.
setup prints one line per file with its state (wrote, unchanged, kept, overwrote) and the agent it is for.
An invalid combination of flags exits 2 before the server starts:
Examples
Add the server to a project for every agent
setup reports each file unchanged and writes nothing.
Replace an entry that differs
When.mcp.json already names a sauce server with other arguments, setup keeps it:
--force replaces the sauce entry and keeps the file’s other servers:
npx -y @eco-incorp/sauce@latest mcp setup --force.
A file setup cannot edit
When.cursor/mcp.json holds something other than plain JSON, setup refuses it and stops:
2. .mcp.json and .codex/config.toml were written before it; .vscode/mcp.json and .gemini/settings.json were not. Add the entry to .cursor/mcp.json by hand, then run sauce mcp setup --dir setupproj --agent copilot,gemini for the agents after it.
Set up two agents with your own endpoints
.mcp.json
