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
| Transport | Fields | Use it for |
|---|---|---|
stdio | command, args, env | Local server processes such as npx, uvx, Python tools, or workspace scripts. |
sse | url, headers | Hosted MCP servers that expose SSE. |
streamableHttp | url, headers | HTTP MCP servers using the streamable HTTP transport. |
Runtime lifecycle
| Action | What happens |
|---|---|
| Add | Facio validates config, writes mcp.json, connects if enabled, and registers tools. |
| Edit | Config is updated; connected servers are reconnected. |
| Disable | Server is disconnected and tools are unregistered, but config remains. |
| Remove | Server is disconnected and removed from mcp.json. |
| Restart | Server 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
| Page | Use it for |
|---|---|
| Add servers | UI/API/agent-managed MCP setup. |
| Credentials | Password fields, placeholders, env injection, and secret boundaries. |
| Listings | Places to discover MCP servers and what to check before installing one. |