At your wish.
Docusaurus-based Rosetta MCP now available
Rosetta now use the Docusaurus .md files, instead of the Confluence HTML for main help pages in the "testing channel". I have not marked it a "latest", but you can use them by using the next channel, which will always get latest alpha/beta/rc tag. 0.10.x is last version using Confluence, and any 0.11.x+ version use Docusaurus.
Since the Docusaurus version is not be marked as latest yet. To use, just add @next to any of the bunx command lines used MANUAL.md/README.md examples. e.g. bunx @tikoci/rosetta@next instead of the plain bunx @tikoci/rosetta. From a Mac terminal, you can use the non-AI TUI interface using bunx @tikoci/rosetta@next browse ("browse" launches the TUI interface, while without any args, Rosetta launches the MCP Server on stdio)
NOTE For use via HTTP-based MCP Server in a /app container, use ghcr.io/tikoci/rosetta:next as the tag before adding the custom /app, see https://github.com/tikoci/rosetta/blob/main/README.md#install-on-mikrotik-app - changing :latest -> :next before adding the /app.
All seems to work using Docusaurus in automated tests and from some limited manual testing. I'll bump Rosetta MCP to "latest" in npm ... after I use it for a bit. But since only the main doc source changed, and the rest of the catalogs (device/changelog/video/etc) remain the same... but want look for data quality issues and add more tests on that part, since there may side-effect on formatting or links from HTML to Markdown change.
Hermes "Works" with Rosetta MCP
MikroTik added the hermes-agent /app container recently. I'm more familiar with the copilot-cli/codex/claude harness... so cannot say how well. But did try the new Docusaurus-powered Rosetta MCP in Hermes.
Mac
I installed hermes on Mac, and it does work with Rosetta - including the new Docusaurus @next version... For desktop, you add below to the ~/.hermes/config.yaml file (or wherever Hermes says it config file is, and you need bun from https://bun.sh or brew install bun on Mac):
mcp_servers:
rosetta:
command: "bunx"
args: [ "@tikoci/rosetta@next" ]
Rosetta can answer one of my go-to test question:
does the RB5009 support L3HW offloading on routeros 7.x
You'll see it reaching out toRosetta. And Hermes shows the "extending thinking" of the model (e.g. LLMs, essentially, writes notes to itself before answer):
And answer is basically right, "No":
Hermes /app container connected to Rosetta MCP as /app container via HTTP
For the /app version of Hermes... it likely be best to install Rosetta as it own separate /app and use the http transport (using url: in Hermes YAML) to connect Hermes /app to a Rosetta /app container. e.g. installing https://bun.sh on Hermes likely more config in a container, so you can use the ui-url from a custom Rosetta /app as the URL in any harness, including Hermes.
I'll leave installing MikroTik's hermes-agent builtin /app container to their non-existent doc on it. Although it seems you do need to need to set the dashboard username/password for Hermes /app to start:
/app/set hermes-agent environment=([/app/get hermes-agent environment],"hermes:HERMES_DASHBOARD_BASIC_AUTH_USERNAME=mikrotik","hermes:HERMES_DASHBOARD_BASIC_AUTH_PASSWORD=mikrotik")
which should use secrets... So more hint it's not plug-and-play. But documenting hermes and/or it's setup on RouterOS container is not on my agenda
So if you do have Hermes working as /app, you then add Rosetta MCP as a "custom" /app using:
/app/add use-https=no disabled=no yaml="name: rosetta
descr: \"RouterOS Docs for AI assistants - use URL as MCP server\"
page: https://tikoci.github.io/p/rosetta
category: development
icon: https://tikoci.github.io/p/rosetta.svg
default-credentials: \"none - just use 'ui-url' as the MCP server in your AI assistant\"
url-path: /mcp
auto-update: true
services:
rosetta:
image: ghcr.io/tikoci/rosetta:next
container_name: mcp-server
ports:
- 9803:8080/tcp:web
"
This is using ghcr.io/tikoci/rosetta:next which gets the newest Docusaurus version of Rosetta. Once 0.11.0 moves to "stable" (:latest), the :next part can be removed, which then use :latest by default. Also since I test with free/trial CHR... so there is no /ip/cloud so the use-https=no but in most cases it can be =yes
So with both rosetta and hermes-agent running, you can then add Rosetta to Hermes /app using:
/container/shell app-hermes-agent cmd="hermes mcp add rosetta --url $[/app/get rosetta ui-url]"
Selecting "N" to authentications, and "Y" to install the Rosetta tools:
Notes
- Rosetta does not use/import the "CLI Reference" today, so Rosetta remains using the my
inspect.json (or for newer version deep-inspect.json which combines X86 and ARM64 based schemas) files for path/dir/cmd/arg data since those are versioned. A future release will parse the cli-reference to add better argument schemas, as well as fill in missing commands that are not in CHR ARM64 or X86, and store the annotation like SysCap, etc stuff. All as a version-less "overlay" on the top of the richer per-version inspect.json from tikoci/restraml returned.
- The device data in Rosetta still uses
matrix.csv and scraping the www site. So the manual.MikroTik.com/hardware section is not in Rosetta today. A similar "overlay" is planned to match the matrix.csv data to the /hardware pages. Since matrix.csv does not have stuff like the "LR-
- On the Docusaurus
/hardware pages, there is no .md versions like the main docs. So extracting them requires using the .mdx+Lunr-index.
- A future CI trigger will use check for the
.rss feed on the Doc Change log to check to trigger a rebuild of the DB used by Rosetta to import the latest docs.
- This is subtle. Confluence had a
page.id that when used on help.mikrotik.com even if a new page was created, the old page.id would re-directed.
- Could use more data quality tests. I see a few
****something**** (not everywhere but seen a few pages, haven't looked). Certainly some test that check various links in the pages are valid when returned from Rosetta, e.g. they need to be augment with a baseUrl.
- More thought needs to go into
routeros_lookup_property since that pulls from descriptions in docs since that is not in /console/inspect nor new MikroTik CLI Reference at manual.mikrotik.com.
- Similar,
routeros_dude_* tools are already planned to be merged into the main/"Unified" routeros_search since that reduce the number of tools and always-on context... but that has not happened yet.
Backstage View
In case anyone is curious, the actual release runs a bunch of tests before it happens. You can view the build/tests for the 0.11.0-alpha-87 (currently @next and @alpha) in release job #87 on GitHub:
https://github.com/tikoci/rosetta/actions/runs/28993483251#summary-86038157369
And the actual code changes when through GitHub "Pull Requests" (PRs), so anyone can see the multiple reviews Copilot code review and CodeRabbit as well as the actual updates on the extraction/DB building and MCP/TUI interfaces code changes. So all code goes through at least 3 agents before getting into the codebase. To see sausage being made, see the Docusaurus-related update is in the following PRs: https://github.com/tikoci/rosetta/pulls?q=is%3Apr+is%3Aclosed+label%3A"area%3Adocusaurus"