Skip to content

Commit 0d651bb

Browse files
committed
chore: add a docs section for the nanobot runtime
Signed-off-by: Donnie Adams <[email protected]>
1 parent 5057b5d commit 0d651bb

File tree

1 file changed

+45
-2
lines changed

1 file changed

+45
-2
lines changed

docs/docs/20-concepts/03-admin/05-mcp-servers.md

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ In this case you would select `required` and `sensitive` options as well.
110110

111111
For multi-user setup, you would follow the same steps but would be configuring this to **SHARE** a common API key with ALL users.
112112

113-
### UVX: For Python-based packages
113+
### UVX: For Python-based packages
114114

115115
If you found an MCP server like Duckduckgo and want it added to the Obot Gateway you would do the following.
116116

@@ -148,6 +148,49 @@ You will need to select the container option from the drop down. Then provide th
148148

149149
You can also provide configuration through environment variables by filling in the configurations.
150150

151+
### Nanobot: For specialized STDIO deployments
152+
153+
The Nanobot runtime provides a specialized containerized environment optimized for MCP server deployments. This runtime is ideal for STDIO servers, where neither npx nor uvx runtimes suffice.
154+
155+
A few examples of when the Nanobot runtime is useful include:
156+
157+
- When your application needs some runtime dependencies that you can build into the image.
158+
- When your NPM or Python package is not published or is published to a private registry, you can build the image yourself and publish it.
159+
- When you have an STDIO MCP server that is written in a language that is not supported by the other runtimes (like Rust, Go, or Zig, for example).
160+
161+
Note that the `nanobot` binary must be included in the container image. You can install a prebuilt binary from the [GitHub releases page](https://github.com/nanobot-ai/nanobot/releases) or build it from source. An example Dockerfile for a building nanobot from source might be:
162+
163+
```dockerfile
164+
FROM cgr.dev/chainguard/wolfi-base AS bin
165+
166+
RUN apk add --no-cache gcc=14.2.0-r13 go make git
167+
168+
ARG NANOBOT_REPO=https://github.com/nanobot-ai/nanobot.git
169+
ARG NANOBOT_BRANCH=main
170+
171+
RUN git clone ${NANOBOT_REPO}
172+
173+
WORKDIR /nanobot
174+
175+
RUN git fetch origin && git checkout origin/${NANOBOT_BRANCH}
176+
177+
RUN --mount=type=cache,target=/root/go/pkg/mod make build
178+
179+
FROM cgr.dev/chainguard/wolfi-base:latest
180+
181+
COPY --from=bin /nanobot/bin/nanobot /usr/local/bin/
182+
183+
...
184+
```
185+
186+
When configuring a Nanobot runtime, you need to specify:
187+
188+
- **Image**: The container image URI (e.g., `docker.io/myorg/nanobot-server:latest`)
189+
- **Command**: The primary command to launch the MCP server (e.g., `my-custom-server`)
190+
- **Arguments**: Optional command-line arguments to pass to the command
191+
192+
The Nanobot runtime handles starting the STDIO server and proxies requests via an HTTP transport to the STDIO server. Configuration parameters can be passed through environment variables using the standard configuration section.
193+
151194
## Configuration parameters
152195

153196
How configuration is handled depends on the server type:
@@ -197,4 +240,4 @@ After successfully adding a server:
197240
- The server appears in the available servers list for authorized users
198241
- Server entries can now be added to authorization groups for different teams
199242
- Users can integrate the server into their clients to access tools in conversations and tasks
200-
- Administrative monitoring of usage and auditing is available through the Admin panel
243+
- Administrative monitoring of usage and auditing is available through the Admin panel

0 commit comments

Comments
 (0)