Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

podkop-mcp

de mikel38487versión 0.2.2i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.mikel38487/podkop-mcp

Instalar

Resumen

Descripción del creador (original en inglés)

MCP server for managing Podkop and Forkop on OpenWrt over SSH

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Herramientas para desarrolladores
  • Debes completar: PODKOP_MCP_SSH_HOST

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: PODKOP_MCP_SSH_HOST, PODKOP_MCP_SSH_USER, PODKOP_MCP_SSH_KEY_PATH, PODKOP_MCP_HOST_KEY_POLICY, PODKOP_MCP_READ_ONLY

Necesitas

  • PyPIuv de Python instalado (para el comando uvx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "podkop": {
      "command": "uvx",
      "args": [
        "podkop-mcp"
      ],
      "env": {
        "PODKOP_MCP_SSH_HOST": "your-value",
        "PODKOP_MCP_SSH_USER": "your-value",
        "PODKOP_MCP_SSH_KEY_PATH": "your-value",
        "PODKOP_MCP_HOST_KEY_POLICY": "your-value",
        "PODKOP_MCP_READ_ONLY": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add podkop --env PODKOP_MCP_SSH_HOST=your-value --env PODKOP_MCP_SSH_USER=your-value --env PODKOP_MCP_SSH_KEY_PATH=your-value --env PODKOP_MCP_HOST_KEY_POLICY=your-value --env PODKOP_MCP_READ_ONLY=your-value -- uvx podkop-mcp

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "podkop": {
      "command": "uvx",
      "args": [
        "podkop-mcp"
      ],
      "env": {
        "PODKOP_MCP_SSH_HOST": "your-value",
        "PODKOP_MCP_SSH_USER": "your-value",
        "PODKOP_MCP_SSH_KEY_PATH": "your-value",
        "PODKOP_MCP_HOST_KEY_POLICY": "your-value",
        "PODKOP_MCP_READ_ONLY": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "podkop": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "podkop-mcp"
      ],
      "env": {
        "PODKOP_MCP_SSH_HOST": "your-value",
        "PODKOP_MCP_SSH_USER": "your-value",
        "PODKOP_MCP_SSH_KEY_PATH": "your-value",
        "PODKOP_MCP_HOST_KEY_POLICY": "your-value",
        "PODKOP_MCP_READ_ONLY": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • PODKOP_MCP_SSH_HOST obligatorio env
    Router address
  • PODKOP_MCP_SSH_USER env
    SSH user (root on OpenWrt)
  • PODKOP_MCP_SSH_KEY_PATH env
    Path to the private SSH key
  • PODKOP_MCP_HOST_KEY_POLICY env
    reject (default), accept-new or ignore
  • PODKOP_MCP_READ_ONLY env
    1 blocks all writes

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 9 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub mikel38487, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Herramientas para desarrolladoresi

  • Más estrellas que el 0% de los otros 5569 servidores de esta categoría
  • Publicado en el registro más recientemente que el 73% de los otros 5569 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 5569 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro podkop-mcp?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

Debes completar: PODKOP_MCP_SSH_HOST

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.2.2) llegó al registro hace 8 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: GitHub, Desktop Commander, Cloudflare MCP

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

GitHub

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

de githubMuy usado★ 34,2 milActualizado hace 6 días

Computadora o nube

Desktop Commander

MCP server for terminal commands, file operations, and process management

de wonderwhy-erMuy usado↓ 709,6 mil/sem★ 10,2 milActualizado hace 18 días

Se ejecuta en tu computadora

Cloudflare MCP

Cloudflare MCP servers

de cloudflareMuy usado★ 4,4 milActualizado hace 14 meses

Se ejecuta en la nube✓ mcp.cloudflare.com

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

podkop-mcp

Languages: English · Русский

MCP server for managing [Podkop](https://github.com/itdoginfo/podkop) and [Forkop](https://github.com/ushan0v/forkop) on OpenWrt over SSH.

Stop editing UCI by hand, remembering the uci add_list trap and passing base64-wrapped scripts to PowerShell. Ask your MCP client to add domains, list sections, inspect live connections, reload the service and roll back a bad change — with dry-run, backups and redaction built in.

Status: alpha. Live read-only tested against Forkop 1.0.5 and Forkop 2.0.0

(OpenWrt 25.12.6). Write/apply paths were verified in disposable OpenWrt

Docker containers with real Forkop 2.0.0 and Podkop 0.7.24. Backend schema is

revalidated every PODKOP_MCP_PROFILE_TTL seconds (default 30).

Why

Managing Podkop/Forkop by hand is error-prone:

  • Forkop 1.x stores domains in one space-separated string (section.domain). One uci add_list turns it into an exact-match domain list and subdomains silently stop being routed.
  • Forkop 2.x uses a multi-line section.destinations text with # comments.
  • Podkop uses a real UCI list (section.user_domains).
  • Forkop reloads asynchronously; a failed reload must be detected and rolled back.
  • Subscription URLs and proxy strings are secrets and end up in logs.

Unlike MCP servers that run on the router itself, podkop-mcp runs on the administrator's machine, talks to OpenWrt over SSH and understands Podkop/Forkop semantics: dry-run, backups, rollback and secret redaction. All of that is hidden behind typed MCP tools.

Features

  • SSH transport with a key from MCP parameters: key file, inline base64/PEM, or ~/.ssh/config alias. Host key verification, keepalive, timeouts.
  • Backend detection: Forkop 1.x, Forkop 2.x, Podkop; capabilities derived from the installed CLI.
  • Full UCI access via ubus call uci get JSON and uci for writes. Any option can be read or changed; the package is restricted to forkop/podkop.
  • Domain operations that preserve the backend format: add/remove/replace, search coverage, suggest uncovered hosts from live connections, check FakeIP.
  • Sections: list, inspect, create, update, enable/disable, delete with cascade of child subscriptions/URLTest items.
  • Subscriptions and proxy groups: list, add, delete, update, test latency, select a proxy (Forkop 2.x).
  • Monitoring: service/system status, health checks, logs, live connections, traffic rates, proxy delays.
  • Safety: mutating tools are dry-run by default; apply=true creates a router-side backup, commits UCI, reloads and verifies. On failure the backup is restored automatically. PODKOP_MCP_READ_ONLY=1 blocks all writes.
  • Secrets redacted by default: subscription URLs, proxy_string, keys, tokens. Raw export requires reveal_secrets=true.
  • Bilingual docs (English / Russian) and CI.

Support matrix

CapabilityForkop 1.xForkop 2.xPodkop
UCI packageforkopforkoppodkop
Domain optiondomain (string)destinations (multiline)user_domains (list)
Community listsyesyesyes
Rule setsnoyesyes
Clash APIaction CLIHTTP CLIaction CLI
Proxy runtime select—yes—
Read-only monitoringyesyesyes

Install

Requirements:

  • Python 3.10+ (CI tests 3.10 through 3.14)
  • OpenWrt router with Forkop or Podkop installed
  • SSH key access to the router

Install from PyPI:

pip install podkop-mcp

or run without installing

uvx podkop-mcp

Install from source:

git clone https://github.com/mikel38487/podkop-mcp.git

cd podkop-mcp python -m venv .venv . .venv/bin/activate # Windows: .venv\Scripts\activate pip install -e .

Configure your MCP client (Claude Desktop, Cursor, DSH, etc.):

{

"mcpServers": { "podkop": { "command": "podkop-mcp", "env": { "PODKOP_MCP_SSH_HOST": "192.168.1.1", "PODKOP_MCP_SSH_USER": "root", "PODKOP_MCP_SSH_KEY_PATH": "C:/Users/ /.ssh/router_key", "PODKOP_MCP_KNOWN_HOSTS": "C:/Users/ /.ssh/known_hosts", "PODKOP_MCP_HOST_KEY_POLICY": "reject" } } } }

Or use an existing ~/.ssh/config alias:

"env": {

"PODKOP_MCP_SSH_CONFIG_HOST": "router-home", "PODKOP_MCP_SSH_KEY_PATH": "C:/Users/ /.ssh/router_key", "PODKOP_MCP_HOST_KEY_POLICY": "reject" }

Host key policy defaults to reject. Add the router key to known_hosts first (for example with a normal ssh login). accept-new is a one-time TOFU convenience for a new router; it does not protect against a MITM on the first connection.

Ask the model:

  • “Run podkop_doctor and show the backend version.”
  • “Add example.com and cdn.example.com to main; show me the diff first.”
  • “List sections with domain counts.”
  • “Which hosts in live connections are not covered by any section?”
  • “Show traffic for the last 2 seconds and the top clients.”
  • “Disable the youtube section and reload.”

Documentation

How write operations work

dry-run (default)

→ read config, compute normalized diff, show uci commands

apply=true → cp /etc/config/ /etc/podkop-mcp/backups/ - .uci → uci set/add_list/delete (package restricted to forkop/podkop) → uci commit → /etc/init.d/ reload → poll get_status up to ~35 s → on failure: restore backup, commit, reload → return diff, backup id, health summary

No command is executed through a shell string built from user input; values are shell-quoted with shlex and the script is sent to sh via stdin. Paths are validated; no base64 applet is required on the router.

Tool overview

GroupTools
Systempodkop_doctor, podkop_status, podkop_system_info, podkop_health, podkop_logs, podkop_cli, podkop_core_features, podkop_import_check, podkop_installer_status, podkop_installer_log
Configpodkop_config_get, podkop_config_export, podkop_option_get/set/delete, podkop_backup_create/list/restore
Sectionspodkop_sections_list, podkop_section_get/create/update/delete/enable, podkop_tunnel_create, podkop_child_create
Domainspodkop_domains_list/add/remove/replace/find/suggest, podkop_domain_check
Listspodkop_community_lists_get/update
Connectionspodkop_connections_config, podkop_subscription_add/delete/update, podkop_proxies_list, podkop_proxy_select/test
Monitoringpodkop_monitor_snapshot, podkop_connections_live, podkop_traffic
Servicepodkop_service_action, podkop_lists_update

Full reference: docs/tools.md.

Configuration reference

VariableDefaultMeaning
PODKOP_MCP_SSH_HOST—Router address
PODKOP_MCP_SSH_PORT22SSH port
PODKOP_MCP_SSH_USERrootSSH user
PODKOP_MCP_SSH_KEY_PATH—Private key path
PODKOP_MCP_SSH_KEY—Inline private key (PEM)
PODKOP_MCP_SSH_KEY_B64—Inline key, base64
PODKOP_MCP_SSH_KEY_PASSPHRASE—Key passphrase
PODKOP_MCP_SSH_PASSWORD—Password instead of a key (secret: pass it through the environment, never commit it)
PODKOP_MCP_SSH_CONFIG_HOST—Alias from ~/.ssh/config
PODKOP_MCP_KNOWN_HOSTS~/.ssh/known_hostsHost key file
PODKOP_MCP_HOST_KEY_POLICYrejectreject, accept-new, ignore
PODKOP_MCP_CONNECT_TIMEOUT8SSH connect timeout, seconds
PODKOP_MCP_COMMAND_TIMEOUT45Command timeout, seconds
PODKOP_MCP_BACKENDautoauto, forkop or podkop; the requested CLI must be installed
PODKOP_MCP_READ_ONLY0Block all writes
PODKOP_MCP_BACKUP_DIR/etc/podkop-mcp/backupsRouter-side backups
PODKOP_MCP_BACKUP_KEEP30Number of backups to keep
PODKOP_MCP_MAX_OUTPUT_BYTES200000Cap on captured command output, bytes
PODKOP_MCP_LOG_LEVELINFOServer log level on stderr (DEBUG, INFO, WARNING, ERROR, CRITICAL)
PODKOP_MCP_PROFILE_TTL30Seconds before the backend profile is revalidated against the router
PODKOP_MCP_TARGETS—JSON with multiple routers
PODKOP_MCP_CONFIG—Path to a JSON file with multiple routers; takes precedence over PODKOP_MCP_TARGETS and the single-router variables
PODKOP_MCP_TARGET_NAMErouterName of the single router defined by PODKOP_MCP_SSH_HOST / PODKOP_MCP_SSH_CONFIG_HOST; ignored when a JSON target list is used

To manage several routers, put them in a JSON file and point PODKOP_MCP_CONFIG at it:

{

"targets": { "home": {"host": "192.0.2.10"}, "office": {"host": "192.0.2.11", "port": 2222} }, "default_target": "home" }

"env": {

"PODKOP_MCP_CONFIG": "~/.config/podkop-mcp/targets.json" }

The default_target router (or the first one when it is omitted) is used when a tool call does not pass target; pass "target": "office" to use the other router. PODKOP_MCP_TARGET_NAME does not select a target from this file — it only names the single router defined by PODKOP_MCP_SSH_HOST / PODKOP_MCP_SSH_CONFIG_HOST.

Testing

python -m pytest -q                 # unit + fake router + live/docker skipped

python scripts/smoke_mcp.py # MCP stdio handshake PODKOP_MCP_LIVE=1 python -m pytest -q -m live # read-only, real router

For the real SSH/UCI/apply path there is an OpenWrt Docker container: real openwrt/rootfs userland, real ubus/rpcd/dropbear/uci, with stubs for the Forkop CLI/init (no sing-box/nft).

.\scripts\openwrt-docker.ps1

. .\.tmp\openwrt-env.ps1 .\.venv\Scripts\python.exe -m pytest -q -m docker_ssh .\scripts\openwrt-docker.ps1 -Stop

This is a contai

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx