Manifest Reference
NimbleBrain reads host metadata from the _meta["ai.nimblebrain/host"] key on your server’s catalog entry — the upstream MCP registry ServerDetail record an operator adds to the connectors catalog. ai.nimblebrain/host is one extension with several capabilities. This page gives the shape of each field; the page linked from each row says what the host does with it. The counts your app shows on the workspace overview are not declared here: your server reports them over MCP with the facets extension.
The block has a published JSON Schema at
schemas.nimblebrain.ai/v1/nimblebrain-host.schema.json
— point your editor’s $schema at it for completion and validation while authoring.
Full catalog entry
Section titled “Full catalog entry”servers: - name: com.myorg/my-app title: My App description: My NimbleBrain app version: "1.0.0" remotes: - type: streamable-http url: https://my-app.myorg.com/mcp _meta: ai.nimblebrain/host: host_version: "1.0" placements: - slot: sidebar.apps resourceUri: ui://dashboard priority: 50 label: My App route: my-app - slot: settings resourceUri: ui://settingsHost metadata: _meta["ai.nimblebrain/host"]
Section titled “Host metadata: _meta["ai.nimblebrain/host"]”| Field | Type | Required | Description |
|---|---|---|---|
host_version |
string |
Yes | Contract major version. Write "1.0". It changes only on a breaking change: every field in this table is part of 1.0, and a block is turned on by declaring it, not by the version. The host accepts any 1.x and skips a catalog connector that declares another major. |
placements |
PlacementDeclaration[] |
No | Shell layout placement declarations: sidebar items, main views, and the settings section. Shape below; behavior in Placements & navigation and Settings sections. |
hooks |
HookDeclaration[] |
No | Inbound event streams your server accepts from a vendor over plain HTTPS, one entry per vendor: { vendor, route, register_tool, description?, header_renames? }. Read from a catalog entry only. A route may not be your MCP endpoint’s path or a path under it. See Inbound webhooks. |
notifications |
object |
No | The outbox your server exposes, one resource the host polls for facts nobody asked for: { resource, description? }. See Notifications. |
admin_tools |
string[] |
No | Names of tools on your server that only a workspace admin may call, at most 64. Read from a catalog entry only. See Admin-only tools. |
The block has no name, icon, category or primaryView; a block that still declares them loads, and the host ignores them like any unknown key. A connector’s display name is its catalog entry’s title (or name), and its icon the entry’s icons, the fields the MCP Registry ServerDetail already defines. A sidebar entry’s label is its placement’s own label.
PlacementDeclaration
Section titled “PlacementDeclaration”Each entry in the placements array:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
slot |
string |
Yes | — | Shell slot to fill: "sidebar.apps" (or any "sidebar.<group>"), "sidebar", "sidebar.bottom", "main", or "settings". See Placements. |
resourceUri |
string |
Yes | — | ui:// URI served by this MCP server. |
priority |
number |
No | 100 |
Sort order within the slot. Lower values appear first. |
label |
string |
No | — | Human-readable label for sidebar items. Ignored for "settings". |
icon |
string |
No | — | Lucide icon name (kebab-case), shown on a sidebar.bottom entry. Falls back to CircleDot if unset or unrecognized. A connector’s other sidebar entries show its catalog icons. |
route |
string |
No | — | Route path. Registers as /w/<slug>/app/<route>. Ignored for "settings". |
size |
"compact" | "full" | "auto" |
No | — | Size hint. The shell does not read it. |
Minimal example (UI app)
Section titled “Minimal example (UI app)”The smallest catalog entry that registers a UI view:
servers: - name: com.myorg/hello title: Hello description: Says hello version: "0.1.0" remotes: - type: streamable-http url: https://hello.myorg.com/mcp _meta: ai.nimblebrain/host: host_version: "1.0" placements: - slot: sidebar.apps resourceUri: ui://index route: hello label: HelloMinimal example (tools only)
Section titled “Minimal example (tools only)”No _meta needed for a tools-only server:
servers: - name: com.myorg/calculator description: Arithmetic version: "1.0.0" remotes: - type: streamable-http url: https://calculator.myorg.com/mcp