Skip to content

Feature Flags

Feature flags control which system capabilities are available. All flags default to true. Setting a flag to false removes the capability entirely — the tool is not registered, not visible to the LLM, and returns 403 via the HTTP API or an error via MCP.

Add a features object to your nimblebrain.json:

nimblebrain.json
{
"features": {
"bundleManagement": true,
"skillManagement": true,
"delegation": true,
"toolDiscovery": true,
"bundleDiscovery": true,
"mcpServer": true,
"fileContext": true,
"userManagement": true,
"workspaceManagement": true
}
}

Omitted flags default to true. You only need to include flags you want to disable.

FlagDefaultControlsTool(s) affected
bundleManagementtrueInstall, uninstall, and configure bundlesnb__manage_app
skillManagementtrueCreate, edit, and delete user skillsnb__manage_skill
delegationtrueMulti-agent sub-task delegationnb__delegate
toolDiscoverytrueSearch installed tools by keywordnb__search (scope: "tools")
bundleDiscoverytrueSearch the mpak registry for bundlesnb__search (scope: "registry")
mcpServertrueExpose the platform as an MCP server/mcp endpoint
fileContexttrueFile upload and context extractionFile processing pipeline
userManagementtrueCreate and delete usersnb__manage_users
workspaceManagementtrueCRUD workspaces and manage membersnb__manage_workspaces, nb__manage_members

Read-only tools are never gated by feature flags:

  • nb__status — platform status; use scope: "bundles" for per-app health, scope: "skills" for loaded skills, scope: "config" for runtime configuration
  • nb__list_apps — list installed apps
  • nb__get_config — get runtime configuration

Feature flags are enforced at three layers:

  1. Tool registry — disabled tools are excluded at startup and never visible to the LLM
  2. HTTP APIPOST /v1/tools/call returns 403 for disabled tools
  3. MCP serverListTools filters out disabled tools, CallTool rejects them