Installing Apps
Apps in NimbleBrain are MCP server bundles. Each bundle provides tools that the agent can use. You can install bundles from the mpak registry, from a remote URL, or from a local directory.
Three ways to install
Section titled “Three ways to install”From the mpak registry
Section titled “From the mpak registry”-
Search for a bundle:
Terminal window nb bundle search granolaSearching mpak registry for "granola"...Run: mpak search "granola" -
Add it to your config:
Terminal window nb bundle add @nimblebraininc/granolaAdded "@nimblebraininc/granola" to config. Run nb reload to activate. -
Reload to activate:
Terminal window nb reloadReload signal sent. Running runtime will pick up changes.
From a remote URL
Section titled “From a remote URL”nb bundle add --url https://mcp.example.com/mcp --name my-serverAdded remote "my-server" (https://mcp.example.com/mcp) to config. Run nb reload to activate.For authenticated remote servers:
nb bundle add --url https://mcp.example.com/mcp --name my-server --auth bearer --token sk-abc123In the web UI, the agent can install bundles for you. Ask it directly:
“Install the Granola bundle from mpak”
The agent uses nb__manage_bundle to install the bundle, which:
- Downloads it from mpak
- Reads the manifest
- Starts the MCP server process
- Records the trust score
- Writes the config entry atomically
Edit nimblebrain.json directly. Each entry needs one of name, path, or url:
{ "bundles": [ { "name": "@nimblebraininc/granola" }, { "path": "../mcp-servers/hello" }, { "url": "https://mcp.example.com/mcp", "serverName": "my-server", "transport": { "auth": { "type": "bearer", "token": "sk-abc123" } } } ]}After editing, run nb reload or restart the server.
Bundle types
Section titled “Bundle types”| Type | Config field | How it resolves |
|---|---|---|
| Named (mpak) | name | Downloads via mpak install, cached at ~/.mpak/cache/ |
| Local | path | Reads manifest.json from the directory. Path resolved relative to the config file. |
| Remote | url | Connects directly via HTTP transport (streamable-http or SSE). No download. |
The agent can self-install
Section titled “The agent can self-install”The agent has access to nb__discover_bundles and nb__manage_bundle. This means you can ask it to find and install what it needs:
“I need to search through meeting notes. Find a bundle for that and install it.”
The agent will:
- Call
nb__discover_bundlesto search mpak - Present options to you
- Call
nb__manage_bundlewithaction: "install"to install your choice
Setting bundle credentials
Section titled “Setting bundle credentials”Many bundles need API keys or other credentials. Use nb config set:
nb config set @nimblebraininc/granola api_key=grn_abc123Saved api_key for @nimblebraininc/granolaView configured values (masked):
nb config get @nimblebraininc/granolaapi_key: gr****Remove a value:
nb config clear @nimblebraininc/granola api_keyCleared api_key for @nimblebraininc/granolaCredentials are stored in ~/.mpak/config.json with 0600 permissions (owner read/write only). They are mapped to environment variables via the bundle manifest’s ${user_config.<field>} references and passed to the bundle process at startup.
Passing environment variables
Section titled “Passing environment variables”You can also pass environment variables directly in the config:
{ "bundles": [ { "name": "@nimblebraininc/postgres", "env": { "DATABASE_URL": "postgres://localhost:5432/mydb" } } ]}Environment variables in env are merged with the bundle’s own mcp_config.env and the process environment. The env field takes precedence.
Verify the install
Section titled “Verify the install”After installing, check that the bundle is running:
nb statusBundles: 3 configured @nimblebraininc/bash @nimblebraininc/granola @nimblebraininc/postgres
Skills: 2 loaded
Bundle health: bash: running (uptime: 3600s, restarts: 0) granola: running (uptime: 120s, restarts: 0) postgres: running (uptime: 120s, restarts: 0)What’s next
Section titled “What’s next”- Managing Apps — start, stop, and monitor installed bundles
- Chat — start using your newly installed apps
- Configuration: Bundles — full config reference for bundle entries