Docs
MCP

MCP

Model Context Protocol servers as runtime tools for Facio.

Facio can attach MCP servers while the runtime is running. MCP tools become normal agent tools with names prefixed by the server name, and they go through the same policy and audit surfaces as other tools.

How Facio stores MCP config

MCP servers live in mcp.json inside the agent workspace. Startup config can seed servers from config.json, but mcp.json is the runtime source of truth after operators or the agent add servers.

{
  "servers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${credentials.GITHUB_TOKEN}"
      },
      "enabledTools": ["*"],
      "enabled": true
    }
  }
}

Transports

TransportFieldsUse it for
stdiocommand, args, envLocal server processes such as npx, uvx, Python tools, or workspace scripts.
sseurl, headersHosted MCP servers that expose SSE.
streamableHttpurl, headersHTTP MCP servers using the streamable HTTP transport.

Runtime lifecycle

ActionWhat happens
AddFacio validates config, writes mcp.json, connects if enabled, and registers tools.
EditConfig is updated; connected servers are reconnected.
DisableServer is disconnected and tools are unregistered, but config remains.
RemoveServer is disconnected and removed from mcp.json.
RestartServer is disconnected and connected again.

Policy defaults

manage_mcp and mcp_* tools are in the default always-ask policy list. That means the agent can propose and manage MCP servers, but risky tool use should still pass through explicit operator approval unless your policy says otherwise.

Pages

PageUse it for
Add serversUI/API/agent-managed MCP setup.
CredentialsPassword fields, placeholders, env injection, and secret boundaries.
ListingsPlaces to discover MCP servers and what to check before installing one.

On this page