sipeed/picoclaw · error
MCP integration is disabled
Error message
MCP integration is disabled
What it means
The requested MCP server is configured and enabled, but cfg.Tools.IsToolEnabled("mcp") is false: the MCP integration itself is globally disabled, so no MCP runtime exists and per-server tool listing is refused. This is a top-level kill switch checked after per-server validation.
Source
Thrown at pkg/agent/agent_command.go:207
}
resolvedName := ""
var serverCfg config.MCPServerConfig
for name, candidate := range cfg.Tools.MCP.Servers {
if strings.EqualFold(name, serverName) {
resolvedName = name
serverCfg = candidate
break
}
}
if resolvedName == "" {
return nil, fmt.Errorf("MCP server '%s' is not configured", serverName)
}
if !serverCfg.Enabled {
return nil, fmt.Errorf("MCP server '%s' is configured but disabled", resolvedName)
}
if !cfg.Tools.IsToolEnabled("mcp") {
return nil, fmt.Errorf("MCP integration is disabled")
}
if err := al.ensureMCPInitialized(ctx); err != nil {
logger.WarnCF("agent", "Failed to initialize MCP runtime for command",
map[string]any{
"server": resolvedName,
"error": err.Error(),
})
}
manager := al.mcp.getManager()
if manager == nil {
return nil, fmt.Errorf("MCP server '%s' is configured but not connected", resolvedName)
}
conn, ok := manager.GetServer(resolvedName)
if !ok {
return nil, fmt.Errorf("MCP server '%s' is configured but not connected", resolvedName)View on GitHub (pinned to 49183d7e8d)
Solutions
- Enable the MCP tool gate in config (tools.mcp.enabled: true / include mcp in enabled tools) and reload
- Search config for where mcp is disabled: grep -n 'mcp' on the active config file
- After re-enabling, verify with /mcp list before listing tools
Example fix
# before
tools:
mcp:
enabled: false
# after
tools:
mcp:
enabled: true Defensive patterns
Strategy: validation
Validate before calling
if !cfg.Tools.IsToolEnabled("mcp") {
return fmt.Errorf("MCP is globally disabled; set tools.mcp.enabled=true")
} Type guard
func mcpEnabled(cfg *config.Config) bool { return cfg.Tools.IsToolEnabled("mcp") } Prevention
- Gate MCP-related UI/commands on the global MCP flag
- Centralize the IsToolEnabled("mcp") check in one preflight helper
- Surface the flag in startup diagnostics
When it happens
Trigger: tools.mcp.enabled (or the equivalent tool gate) set to false in config, or MCP excluded from the enabled tools list; listing tools for any server in that state.
Common situations: User disabled MCP to troubleshoot or for air-gapped setups; deployment templates that turn off non-core tools; stale config after an upgrade that renamed the toggle.
Related errors
- command unavailable: config not loaded
- MCP server '%s' is not configured
- MCP server '%s' is configured but disabled
- ${label} must be a JSON object.
- ${label}.${key} must be a string.
AI-assisted analysis of sipeed/picoclaw@49183d7e8d (2026-08-15).
Data as JSON: /api/errors/89f8fa4066954dd6.
Report an issue: GitHub.