Releases: Picaresco/MCP-ZTE-F680
Release list
v0.3.0 — Read-only status tools
What's new
Six new read-only tools that translate the router's cryptic internal fields into human-friendly tables:
zte_get_device_info— model, serial, firmware, hardware, bootloader, WiFi chipsetszte_get_wan_status— public IP, gateway, DNS, WAN MAC, connection type, uptimezte_get_wifi_info— both bands (SSID, channel, real PSK key, BSSID, traffic stats)zte_get_dhcp_leases— connected devices with IP, MAC, hostname, connection type and lease expiryzte_get_dmz— DMZ state + configured internal hostzte_get_wifi_clients— associated WiFi clients with RSSI signal strength
Under the hood
- Codebase split into 5 focused modules:
http_client,parsers,pages,formatters,server. - New parser for the router's third HTML format (plain
<td class="tdright">tables used by the WAN status page). - 32 unit tests running against real HTML fixtures captured from the router — no hardware needed to develop or run the test suite.
- The 7 existing NAT / port forwarding tools remain unchanged.
Install / upgrade
uvx zte-f680-mcp@latestAlready registered? Force-refresh the cache:
uvx --refresh zte-f680-mcpLinks
- PyPI: https://pypi.org/project/zte-f680-mcp/0.3.0/
- Full changelog: docs/changelog.md
v0.2.0 — Quick-open ports with auto-detected local IP
Two new tools make opening ports almost conversational.
What's new
Tools added
zte_get_local_ip— returns the IP of the host in the router's subnet (cross-platform, multi-homed aware).zte_open_port(port, protocol=\"TCP+UDP\", internal_host=None, internal_port=None, name=None)— opens one port with smart defaults: auto local IP, same port on both sides, auto-generated name.
Conversational flow
The server now ships MCP instructions that guide the LLM to:
- Detect your local IP.
- Ask "Redirijo 8080 → 192.168.1.X:8080?".
- Open the port only after you confirm.
Under the hood
- Extracted
_create_port_forward()helper, shared byzte_add_port_forward(unchanged) and the newzte_open_port. _get_local_ip_for(target)uses the UDP+connect+getsocknametrick — no packets sent, picks the correct interface automatically on Linux, Windows and macOS.- No new dependencies.
Backwards compatibility
✅ Fully backwards compatible. Existing zte_add_port_forward, zte_modify_port_forward, zte_delete_port_forward, zte_get_port_forwards, zte_run_page are unchanged.
Install / upgrade
New users: same command as before, just uvx picks the latest:
```bash
uvx zte-f680-mcp
```
Existing users: uvx caches, so force a refresh the first time:
```bash
uv cache clean zte-f680-mcp # or just wait for next cache purge
```
Example
User: abre el puerto 8080
Assistant: He detectado tu IP local como 192.168.1.128. ¿Redirijo 8080 → 192.168.1.128:8080?
User: sí
Assistant: ✓ Regla añadida. (+ shows new rule list)
Links
v0.1.0 — First PyPI release
First release of zte-f680-mcp on PyPI.
Install
Any MCP-compatible client (Claude Desktop, Claude Code, Cursor, Windsurf, Cline, OpenAI Agents SDK, …) can now use this server with a single command:
uvx zte-f680-mcpExample for Claude Code:
claude mcp add zte \
--env ZTE_HOST=192.168.1.1 \
--env ZTE_USER=1234 \
--env ZTE_PASSWORD=your_password \
-- uvx zte-f680-mcpSee the README for configs on Claude Desktop, Cursor, Windsurf, OpenAI Agents SDK, and classic pip install.
Links
- PyPI: https://pypi.org/project/zte-f680-mcp/0.1.0/
- Issues: https://github.com/Picaresco/MCP-ZTE-F680/issues
Tools exposed
zte_get_port_forwards— list all NAT ruleszte_add_port_forward— add a new rulezte_modify_port_forward— modify rule by indexzte_delete_port_forward— delete rule by indexzte_run_page— fetch and parse any router page (generic)