Install MCP servers from the public Model Context Protocol registry. Frona caches the registry index on disk for 24 hours so search is fast and works offline. The result is a sandboxed process tied to your user, with its tools surfaced to your agents.
Install flow
- Open Settings → MCP.
- Click Install and search by name or registry ID (e.g.,
io.github.modelcontextprotocol/servers/github). - Pick the entry. The dialog populates everything from the registry.
- Set credential bindings and any extra environment variables.
- (Optional) Adjust the sandbox policy.
- Click Install.
Runtimes
Frona supports three runtime types out of the box:
| Runtime | Package manager | Notes |
|---|---|---|
npm | npm + npx | First start runs npx --yes <name>@<version> to warm the cache |
pypi | uv | First start runs uv tool install <name>==<version> |
binary | (none) | The name field is an absolute path to an executable. Useful for vendored servers. |
The cache is shared across servers (configured by mcp.cache_path), so installing the same npm package twice doesn't re-download.
Display name and slug
When you install a server, Frona derives a slug (immutable) and a display name (editable). The slug is used in URLs, log paths, and tool IDs (mcp__<slug>__<tool> if you're not using bridge mode). Changing it would orphan the IDs stored in agent configs, so it's frozen at install time.
You can rename the display name and edit the description from the server detail page. The description is injected into the agent's system prompt so the LLM knows when to call the server's tools.
Environment variables
Two ways to set env vars:
- Bound to vault items. Recommended for secrets. The value is pulled from your vault on every start.
- Plain values. Stored in the database next to the server config. Use for non-sensitive flags (
LOG_LEVEL=debug).
Variables can be grouped by section, and bound variables show a vault badge.
Updating
To upgrade a server, install the new version on top of the old one. Frona detects the existing record by slug and updates it in place. Tool caches and credential bindings are preserved; the package is re-warmed.
To change credentials, use the Edit button on the server detail page. Saving rebinds and restarts the server.
To delete a server, click Uninstall on the detail page. The process is stopped, the workspace is removed, and the database row is deleted.
Limits
| Limit | Default | Config |
|---|---|---|
| Servers per user | 32 | mcp.max_servers_per_user |
| Startup timeout | 30s | mcp.startup_timeout_secs |
| Health check interval | 10s | mcp.health_check_interval_secs |
| Restart attempts before Failed | 3 | mcp.max_restart_attempts |
See the config file for the full list.
Tips
- Pin versions. Don't install with a floating tag if you want reproducible behavior. The cache helps but doesn't promise pinning.
- Use vault bindings for every secret. Pasting a value into the env editor is safe-but-leaky if you later export the server config.
- Read the registry entry's description and tool list before installing. What the server claims it does is what shows up in your agents' prompts.
- Tighten the sandbox immediately. Out of the box, a new server has only the platform's managed network access. Add explicit
permit/forbidfor any other path or destination it needs.
Next steps
- MCP. The big picture.
- Transports. Pick stdio or HTTP for your server.
- Managing Secrets & API Keys. Vault bindings.