Reasonix already speaks the Model Context Protocol. Adding an MCP server means one more [[plugins]] entry under ~/.reasonix/config.toml (or reasonix.toml per-project). Three transports are supported, and MCP prompts automatically become slash commands.



The configuration
Two files: TOML for non-secret configuration, .env for key values. Resolution order is flag > ./reasonix.toml > ~/.reasonix/config.toml > built-in defaults.
# ~/.reasonix/config.toml
# stdio (subprocess) — most common
[[plugins]]
name = "github"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_TOKEN = "ghp_***" }
call_timeout_seconds = 600
# stdio with built-in positional args
[[plugins]]
name = "filesystem"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/srv/code"]
# Streamable HTTP (2025-03 spec) — for remote MCPs
[[plugins]]
name = "stripe"
type = "http"
url = "https://mcp.stripe.com"
headers = { Authorization = "Bearer ${STRIPE_KEY}" }
# Plain HTTPS — treated as HTTP+SSE for back-compat
[[plugins]]
name = "remote-legacy"
type = "sse"
url = "https://internal.example.com/mcp/sse"
# per-tool timeout for slow generators
[[plugins]]
name = "edge"
command = "edge-mcp-server"
tool_timeout_seconds = { generate_video = 1800 }Notes that are easy to miss
reasonix.tomlat the project root overrides the user-level config. Put project-only servers in the project file so they do not leak to other repos.envvalues can reference${VAR}and Reasonix will resolve from the user.env. Provider keys are NOT injected here — those go inapi_key_envon the provider entry.- Newly installed MCP servers do not need a per-tool allow list; tools declared
readOnlyHintare auto-available to planner and read-only sub-agent registries. - MCP prompts become slash commands of the form
/mcp__server__prompt. MCP resources can be referenced with@server:uri. - Set
call_timeout_secondsper server for slow networks;tool_timeout_secondsfor one specific tool (e.g., long-running media generation).
Common failure modes
- Plain
url = "https://..."is interpreted as SSE. Usetype = "http"for the 2025-03 Streamable HTTP transport. - Provider secrets are filtered out of every MCP child-process environment. Do not try to pass
DEEPSEEK_API_KEYthroughenv = { ... }; the agent will not see it and the MCP server should not need it. - MCP servers that fork long-running subprocesses consume RAM proportional to the number of sessions. Drop the server from the project
reasonix.tomlif you only need it for one task. /mcpopens the live + marketplace hub. If a server does not show up, run/doctorand check whether the stdio process exited immediately (missing binary, wrong args, network problem).
Comments