Pull request 47: the project moves from pip to uv
1 hour ago
This pull request makes uv the only Python toolchain for the MikroTik MCP server. pip and setuptools are gone, the build backend is hatchling, and a committed lock file pins every dependency with hashes. CI, the release pipeline, the Docker image and local development all install from that same frozen lock.
Ask about this presentation
Chapters
Show transcriptHide transcript
This pull request makes uv the only Python toolchain for the MikroTik MCP server. pip and setuptools are gone, the build backend is hatchling, and a committed lock file pins every dependency with hashes. CI, the release pipeline, the Docker image and local development all install from that same frozen lock.
The author measured creating a fresh environment and installing everything. With pip it took about thirteen seconds. With uv it takes under one, roughly sixteen times faster. The bigger win is reproducibility. pip had no lock file, so two installs could resolve different versions. Now every flow installs the same hash-verified set.
CI gets a gate that fails any pull request whose pyproject changed without a matching lock file. A second job builds the wheel and checks both documented install paths, uvx and pip with python -m mcp_mikrotik, and confirms that Python below 3.10 is refused. The release build is gated on a current lock, and the MCP publisher is pinned and checksum verified.
The first reviewer asked for strong test results, because swapping the toolchain is a core change. The author compared the published version, a local uv build and the Docker image on a real RouterOS 7.22 router. More than 45 read-only tool calls gave identical output. After the final rebase, the unit tests pass on three Python versions from the frozen lock, and the Docker image is about 150 megabytes against 200 for the published one.
Some limits remain. A plain pip install of the published package still resolves version ranges, so the exact pin guarantee only covers uv flows. The arm64 Docker build was not run, only checked statically. And merging triggers a release, so that release is the first real run of uv build and the pinned publisher. If you maintain releases, watch that run.
Up next
1:36PR 118: draw.io diagrams now live in docs/diagrams
@wiresage/mikrotik-mcp · 54 minutes ago
2:01A README edit no longer publishes a release
@wiresage/mikrotik-mcp · 58 minutes ago
2:28MikroTik MCP can now sign in with an SSH agent key
@wiresage/mikrotik-mcp · 1 hour ago
1:46Read-only mode for MikroTik MCP: tools that can look but not change
@wiresage/mikrotik-mcp · 1 hour ago
1:52Sensitive-hiding mode keeps router secrets away from the model
@wiresage/mikrotik-mcp · 1 hour ago
2:08Safe Mode for MikroTik MCP: try a change, then keep it or drop it
@wiresage/mikrotik-mcp · 1 hour ago
2:01Migrating the MikroTik MCP server to mcp 2.0
@wiresage/mikrotik-mcp · 1 hour ago
1:33Fleet article and multi-device prompt examples
@wiresage/mikrotik-mcp · 1 hour ago
2:29One MikroTik MCP server, many routers
@wiresage/mikrotik-mcp · 1 hour ago
2:22Escape quotes, backslashes, $ and non-ASCII in text sent to RouterOS
@wiresage/mikrotik-mcp · 1 hour ago
1:58Bridge VLAN table and port PVID tools for MikroTik MCP
@wiresage/mikrotik-mcp · 1 hour ago
2:02Raw firewall tools for MikroTik MCP: 16 tools that drop traffic before connection tracking
@wiresage/mikrotik-mcp · 1 hour ago





