{"id":47615556,"url":"https://github.com/tikoci/rosetta","last_synced_at":"2026-05-02T21:01:54.273Z","repository":{"id":347140377,"uuid":"1192992480","full_name":"tikoci/rosetta","owner":"tikoci","description":"MCP Server with RouterOS docs + commands + products + changelogs, using SQLite-as-RAG, sourced from MikroTik","archived":false,"fork":false,"pushed_at":"2026-05-01T00:33:25.000Z","size":5467,"stargazers_count":7,"open_issues_count":3,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T02:18:44.699Z","etag":null,"topics":["ai","bun","claude-code","copilot","mcp","mcp-server","mikrotik","routeros","typescript"],"latest_commit_sha":null,"homepage":"https://tikoci.github.io/p/rosetta","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tikoci.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-26T19:07:40.000Z","updated_at":"2026-05-01T00:33:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tikoci/rosetta","commit_stats":null,"previous_names":["tikoci/rosetta"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/tikoci/rosetta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tikoci%2Frosetta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tikoci%2Frosetta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tikoci%2Frosetta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tikoci%2Frosetta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tikoci","download_url":"https://codeload.github.com/tikoci/rosetta/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tikoci%2Frosetta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32549387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T19:18:06.202Z","status":"ssl_error","status_checked_at":"2026-05-02T19:16:21.335Z","response_time":132,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","bun","claude-code","copilot","mcp","mcp-server","mikrotik","routeros","typescript"],"created_at":"2026-04-01T21:21:45.761Z","updated_at":"2026-05-02T21:01:54.267Z","avatar_url":"https://github.com/tikoci.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rosetta\n\nMCP server that gives AI assistants searchable access to the complete [MikroTik RouterOS documentation](https://help.mikrotik.com/docs/spaces/ROS/overview) — 317 pages, 4,860 properties, 40,000-entry command tree, hardware specs for 144 products, 518 YouTube video transcripts, and direct links to help.mikrotik.com.\n\nIf you need MikroTik docs, you likely have a MikroTik. Install rosetta once as a container on your router using [RouterOS /app](#install-on-mikrotik-app), and any AI assistant on the network can use it. Or [run it locally](#install-locally-with-bun) on your workstation. **No AI required** — rosetta includes a [terminal browser](#browse-without-ai) for searching the database directly.\n\n### SQL-as-RAG\n\nInstead of vector embeddings, rosetta uses **SQLite [FTS5](https://www.sqlite.org/fts5.html) full-text search** as the retrieval layer — SQL-as-RAG. For structured technical docs, [BM25 ranking](https://www.sqlite.org/fts5.html#the_bm25_function) with [porter stemming](https://www.sqlite.org/fts5.html#porter_tokenizer) beats vector similarity: terms like `dhcp-snooping` and `/ip/firewall/filter` are exact tokens, not fuzzy embeddings. No API keys, no vector database — just a single SQLite file that searches in milliseconds.\n\n### What's Inside\n\n| Data Source | Coverage |\n|-------------|----------|\n| Documentation pages | 317 pages (~515K words) from help.mikrotik.com |\n| Property definitions | 4,860 with types, defaults, descriptions |\n| Command tree | 5,114 commands, 551 dirs, 34K arguments |\n| Version history | 46 RouterOS versions tracked (7.9–7.23beta2) |\n| Hardware products | 144 devices — specs, pricing, block diagrams |\n| Performance benchmarks | 2,874 tests across 125 devices (ethernet + IPSec) |\n| YouTube transcripts | 518 videos, ~1,890 chapter-level segments |\n| Callout blocks | 1,034 warnings, notes, and tips |\n\nDocumentation covers RouterOS **v7 only**, aligned with the long-term release (~7.22) at export time.\n\n---\n\n## Install on MikroTik (/app)\n\nRouterOS 7.22+ includes the [/app](https://help.mikrotik.com/docs/spaces/ROS/pages/328068) feature for running containers directly on the router. This is the simplest way to deploy rosetta — install once, and any AI assistant on your network can connect to the MCP endpoint URL shown in the router UI.\n\n**Requirements:** RouterOS 7.22+, x86 or ARM64 architecture (CCR, RB5009, hAP ax series, CHR, etc.), container package installed, device-mode enabled.\n\n### 1. Enable containers (two reboots required)\n\nIf you haven't already enabled the container package and device-mode:\n\n```routeros\n# Install the container package (router reboots automatically)\n/system/package/update/check-for-updates duration=10s\n/system/package/enable container\n# Apply changes restarts the router\n```\n\nAfter reboot:\n\n```routeros\n# Enable container device-mode (requires physical power cycle or button press — follow the on-screen prompt)\n/system/device-mode/update mode=advanced container=yes\n```\n\nSee MikroTik's [Container documentation](https://help.mikrotik.com/docs/spaces/ROS/pages/Container) for full prerequisites and troubleshooting.\n\n### 2. Add the rosetta app\n\n```routeros\n/app/add use-https=yes disabled=no yaml=\"name: rosetta\ndescr: \\\"RouterOS Docs for AI assistants - use URL as MCP server\\\"\npage: https://tikoci.github.io/p/rosetta\ncategory: development\nicon: https://tikoci.github.io/p/rosetta.svg\ndefault-credentials: \\\"none - just use 'ui-url' as the MCP server in your AI assistant\\\"\nurl-path: /mcp\nauto-update: true\nservices:\n  rosetta:\n    image: ghcr.io/tikoci/rosetta:latest\n    container_name: mcp-server\n    ports:\n      - 9803:8080/tcp:web\n\"\n```\n\nThat's it. RouterOS downloads the container image, configures networking and firewall redirects, and starts the MCP server. The `auto-update: true` setting pulls the latest image on each boot.\n\n### 3. Get the MCP endpoint URL\n\nThe URL to use with your AI assistant is shown as **UI URL** in WebFig (App → rosetta), or from the CLI:\n\n```routeros\n:put [/app/get rosetta ui-url]\n```\n\nThis URL includes the `/mcp` path and is ready to paste into any MCP client that supports HTTP transport. With `use-https=yes`, the URL uses HTTPS with a MikroTik-managed `*.routingthecloud.net` certificate.\n\n### 4. Configure your AI assistant\n\nPoint any HTTP-capable MCP client at the URL from the previous step:\n\n```json\n{ \"url\": \"https://app-rosetta.XXX.routingthecloud.net/mcp\" }\n```\n\n\u003e **CHR note:** Cloud Hosted Router in free or trial mode does not include the `/ip/cloud` service needed for HTTPS certificates. Set `use-https=no` on the /app — the URL will use HTTP instead. The UI URL always reflects the correct protocol.\n\n\u003e **HTTP option:** On any platform, you may choose `use-https=no` if you prefer HTTP or are on an isolated network.\n\n\u003e **Browse the database from the router:** If rosetta is running as a `/app`, you can use `/container/shell` to access the TUI browser directly:\n\u003e ```routeros\n\u003e /container/shell app-rosetta\n\u003e # /app/rosetta browse\n\u003e ```\n\n---\n\n## Install Locally (with Bun)\n\nRun rosetta on your workstation using [Bun](https://bun.sh/). The MCP server runs over stdio — no network configuration needed. The database downloads automatically on first launch (~50 MB compressed).\n\n### Quick setup\n\n```sh\nbunx @tikoci/rosetta --setup\n```\n\nThis downloads the database and prints config snippets for all supported MCP clients. Copy-paste the config for your client and you're done.\n\nNeed to force a database reload later? Use:\n\n```sh\nbunx @tikoci/rosetta@latest --refresh\n```\n\n### Configure your MCP client\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eVS Code Copilot\u003c/b\u003e\u003c/summary\u003e\n\nOpen the Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`), choose **\"MCP: Add Server…\"**, select **\"Command (stdio)\"**, enter `bunx` as the command, and `@tikoci/rosetta` as the argument.\n\nOr add to User Settings JSON (`Cmd+Shift+P` → \"Preferences: Open User Settings (JSON)\"):\n\n```json\n\"mcp\": {\n  \"servers\": {\n    \"rosetta\": {\n      \"command\": \"bunx\",\n      \"args\": [\"@tikoci/rosetta\"]\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClaude Code\u003c/b\u003e\u003c/summary\u003e\n\n```sh\nclaude mcp add rosetta -- bunx @tikoci/rosetta\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClaude Desktop\u003c/b\u003e\u003c/summary\u003e\n\nEdit your Claude Desktop config file:\n- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"rosetta\": {\n      \"command\": \"bunx\",\n      \"args\": [\"@tikoci/rosetta\"]\n    }\n  }\n}\n```\n\n\u003e **PATH note:** Claude Desktop on macOS doesn't always inherit your shell PATH. If `bunx` isn't found, use the full path (typically `~/.bun/bin/bunx`). Run `bunx @tikoci/rosetta --setup` to print the full-path config.\n\nRestart Claude Desktop after editing.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eCursor\u003c/b\u003e\u003c/summary\u003e\n\nOpen **Settings → MCP** and add a new server:\n\n```json\n{\n  \"mcpServers\": {\n    \"rosetta\": {\n      \"command\": \"bunx\",\n      \"args\": [\"@tikoci/rosetta\"]\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eOpenAI Codex\u003c/b\u003e\u003c/summary\u003e\n\n```sh\ncodex mcp add rosetta -- bunx @tikoci/rosetta\n```\n\n\u003e **Note:** ChatGPT Apps require a remote HTTPS MCP endpoint. Use the [MikroTik /app install](#install-on-mikrotik-app) or another container platform for a hosted endpoint, or Codex CLI for local stdio.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eGitHub Copilot CLI\u003c/b\u003e\u003c/summary\u003e\n\nInside a `copilot` session, type `/mcp add`:\n\n- **Server Name:** `routeros-rosetta`\n- **Server Type:** 2 (STDIO)\n- **Command:** `bunx @tikoci/rosetta`\n\n\u003c/details\u003e\n\n**Install Bun** (if you don't have it):\n\n```sh\n# macOS / Linux\ncurl -fsSL https://bun.sh/install | bash\n\n# Windows\npowershell -c \"irm bun.sh/install.ps1 | iex\"\n```\n\n\u003e **Auto-update:** `bunx` checks the npm registry each session and uses the latest published version automatically. The database in `~/.rosetta/ros-help.db` persists across updates.\n\n---\n\n## Browse Without AI\n\nRosetta includes a terminal-based \"card catalog\" browser — **no AI assistant or MCP client required**. It searches the same database the MCP tools use, with a keyboard-driven REPL modeled after a 1980s library terminal.\n\n```sh\nbunx @tikoci/rosetta browse\n```\n\nType a search query to find documentation pages, then select a numbered result to drill in. Beyond page search, the browser covers every data source in the database:\n\n| Command | What it searches |\n|---------|-----------------|\n| *(bare text)* | Documentation pages (default) |\n| `dev \u003cquery\u003e` | Device hardware specs, block diagrams, benchmarks |\n| `cmd [path]` | Command tree hierarchy |\n| `prop \u003cname\u003e` | Property definitions (scoped to current page when viewing one) |\n| `cal [query]` | Warnings, notes, and tips |\n| `cl [version]` | Changelogs — `cl breaking` for breaking changes only |\n| `vid \u003cquery\u003e` | YouTube video transcripts with timestamped chapter links |\n| `diff \u003cfrom\u003e \u003cto\u003e` | Command tree diff between RouterOS versions |\n| `tests [type]` | Cross-device performance benchmarks |\n| `ver` | Live-fetch current RouterOS versions |\n\nType `help` for the full command list. URLs are clickable in terminals that support OSC 8 hyperlinks (iTerm2, Windows Terminal, GNOME Terminal, etc.).\n\nThe browser is also useful as an audit surface — it shares core query functions with MCP and exposes every MCP tool as a raw dot-command, so gaps or rough edges visible here often point to agent-facing improvements too.\n\n\u003e **From a router:** If rosetta is installed as a `/app`, access the browser via `/container/shell app-rosetta` then `/app/rosetta browse`.\n\n---\n\n## Try It\n\nAsk your AI assistant questions like:\n\n- *\"What are the DHCP server properties in RouterOS?\"*\n- *\"How do I set up a bridge VLAN?\"*\n- *\"Is the /container command available in RouterOS 7.12?\"*\n- *\"Show me warnings about hardware offloading\"*\n- *\"Which MikroTik routers have L3HW offload, and more than 8 ports of 48V PoE? Include cost.\"*\n- *\"Compare the RB5009 and CCR2004 IPSec throughput at 1518-byte packets.\"*\n- *\"My BGP routes stopped working after upgrading from 7.15 to 7.22 — what changed in the routing commands?\"*\n\n## MCP Tools\n\nThe server exposes 14 tools designed to work together — agents start with `routeros_search` and drill into specific data as needed:\n\n| Tool | What it does |\n|------|-------------|\n| `routeros_search` | **Start here.** Unified search with input classifier — returns pages + related callouts, videos, properties, changelogs, devices, skills |\n| `routeros_get_page` | Full page content by ID or title, section-aware for large pages |\n| `routeros_lookup_property` | Property by exact name — type, default, description |\n| `routeros_explain_command` | Read-only explanation for a CLI command — canonical path/verb, args, warnings, docs, changelogs |\n| `routeros_command_tree` | Browse the command hierarchy (`/ip/firewall/filter` style) |\n| `routeros_search_changelogs` | Changelogs filtered by version range, category, breaking flag |\n| `routeros_command_version_check` | Which RouterOS versions include a command path |\n| `routeros_command_diff` | Added/removed commands between two RouterOS versions |\n| `routeros_device_lookup` | Hardware specs — filter by architecture, RAM, PoE, wireless, etc. |\n| `routeros_search_tests` | Cross-device ethernet and IPSec benchmarks |\n| `routeros_dude_search` | FTS across archived Dude wiki docs (separate from RouterOS search) |\n| `routeros_dude_get_page` | Full Dude wiki page by ID or title, with screenshot metadata |\n| `routeros_stats` | Database health and coverage stats |\n| `routeros_current_versions` | Live-fetch current RouterOS versions from MikroTik |\n\nEach tool description includes workflow arrows (`→ next_tool`) and empty-result hints so agents chain tools effectively.\n\nThe server also exposes **MCP Resources** for bulk data and supplemental content — CSV datasets (`rosetta://datasets/...`), schema documentation (`rosetta://schema...`), and **agent skill guides** (`rosetta://skills/{name}`) from [tikoci/routeros-skills](https://github.com/tikoci/routeros-skills). Skills are community-created, human-reviewed guides served with provenance attribution. See [MANUAL.md](MANUAL.md) for details.\n\n\n## RTFM for Details\nFor additional install options, HTTP transport configuration, data source details, and the database schema, see [MANUAL.md](MANUAL.md).\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for building from source, running tests, development setup, and the release process.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftikoci%2Frosetta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftikoci%2Frosetta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftikoci%2Frosetta/lists"}