Repository navigation
fix: start nanobot with --config and publish only WordPress tools - #13
Merged
Merged
Conversation
nanobot v0.0.91's run command takes no positional arguments, so the container exited immediately with: unknown command "/nanobot.yaml" for "nanobot run". Pass the config path with --config instead.
Without --disable-ui, nanobot run merges its UI config into the published MCP server, which adds tools such as uploadFile, deleteFile, publishArtifact, and the scheduled-task tools beside the WordPress tools. --exclude-built-in-agents removes the chat-with-nanobot tool.
calvinmclean
approved these changes
Oct 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Since #9 switched the base image to
ghcr.io/obot-platform/nanobot:v0.0.91, the container exits immediately on startup:In nanobot v0.0.91,
runis declared withcobra.NoArgsand only takes the config path through--config/-c. The DockerfileCMDstill passed/nanobot.yamlas a positional argument.This went unnoticed because every "Build and Push Docker Image" run since #9 has failed. The image push succeeds, and the run fails later at the Trivy "Enforce vulnerability policy" step. The image pushed by #12's build (digest
sha256:03a3f2d1…) is now running in our main environment, where the WordPress MCP server is in CrashLoopBackOff.:latest(v0.1.1) predates #9, so the default catalog is not affected yet, but the next release tag would ship the broken image.A second problem showed up once the server started. Unless
--disable-uiis passed, nanobot v0.0.91 merges its UI config into the published MCP server (pkg/config/static.go,pkg/cli/root.go). That adds these tools beside the WordPress tools:uploadFile,deleteFile,publishArtifact,installArtifact,deleteWorkflow, the five scheduled-task tools, andchat-with-nanobot(from the built-in agents).Fix
--config /nanobot.yaml.--disable-uiand--exclude-built-in-agents, so the server publishes only the WordPress tools.Testing
Standalone container:
03a3f2d1…) with the old arguments exits right away with the error above.tools/listreturns exactly the 20 WordPress tools.End to end through Obot: I ran a local
ghcr.io/obot-platform/obot:mainwith the Docker backend, plus a local WordPress (MariaDB) with an application password. I used the default catalog's WordPress entry with only the image swapped, wrapped it in a personal vMCP, then created an instance, configured it, and launched it.03a3f2d1…):POST /api/vmcps/{id}/launchreturns 500 withfailed to launch component MCP server …: failed to connect MCP client: calling "initialize": failed to ensure server is deployed: … container repeatedly crashed (exit code 1). This is the error seen on main, and the container log showsunknown command "/nanobot.yaml".GET /api/vmcps/{id}/toolslists only the 20 WordPress tools. Through/mcp-connect/{instance},initializeandtools/listsucceed.get_mereturns the WordPress admin user, andlist_postsreturns the post I created.Not addressed here
The workflow will still fail at "Enforce vulnerability policy". All of the HIGH findings are in the
nanobot:v0.0.91base image (Alpine busybox/openssl/wget, and the Go stdlib, grpc, and x/text/x/image in the nanobot binary). The latest nanobot release, v0.0.92, predates those fixes, so clearing them needs a new nanobot release.