POX MCP Server

Um servidor MCP para o controlador POX SDN, permitindo controle, gerenciamento e análise de rede usando Python e OpenFlow.

Documentação

POX MCP Server

Visão Geral

Uma implementação de servidor Model Context Protocol (MCP) que fornece capacidades de controle e gerenciamento de rede através do controlador SDN POX. Este servidor permite programação de rede baseada em Python, gerenciamento de dispositivos OpenFlow e análise de rede automatizada através da arquitetura modular do POX. Perfeito para ambientes educacionais, prototipagem de rede e pesquisa em SDN.

Componentes

Recursos

O servidor expõe dois recursos dinâmicos:

  • pox://network-config: Um memorando abrangente de configuração do controlador POX
    • Rastreia componentes POX ativos e suas configurações
    • Registra topologia de rede e regras de fluxo
    • Mantém insights de rede descobertos
  • pox://topology: Visualização de topologia de rede em tempo real
    • Mostra datapaths OpenFlow ativos (switches)
    • Mapeia localizações e conexões de hosts
    • Exibe status de links e mapeamentos de portas

Prompts

O servidor fornece três prompts especializados:

  • pox-network-manager: Prompt interativo para gerenciamento do controlador POX

    • Argumento obrigatório: topic - O aspecto de controle de rede no qual focar
    • Ajuda a configurar componentes e módulos POX
    • Orienta na implementação de políticas de rede
    • Integra-se com o memorando de configuração de rede
  • simple-hub: Implementação básica de hub L2 usando POX

    • Argumento obrigatório: dpid - O identificador do datapath
    • Demonstra a programação orientada a eventos do POX
    • Mostra tratamento básico de pacotes e flooding
    • Explica os mecanismos centrais do POX
  • learning-switch: Implementação de switch de aprendizado L2

    • Argumento obrigatório: dpid - O identificador do datapath
    • Apresenta o gerenciamento de tabelas do POX
    • Implementa aprendizado e encaminhamento MAC
    • Demonstra as capacidades de tratamento de pacotes do POX

Ferramentas

O servidor oferece cinco ferramentas principais:

Ferramentas de Gerenciamento de Datapath

  • get_switches

    • Lista todos os datapaths OpenFlow conectados
    • Nenhuma entrada necessária
    • Retorna: Array de switches ativos controlados pelo POX
    • Inclui status de conexão e capacidades
  • get_switch_desc

    • Obtém informações detalhadas do datapath
    • Entrada:
      • dpid (string): Identificador do datapath
    • Retorna: Detalhes e recursos do switch gerenciado pelo POX

Ferramentas de Gerenciamento de Fluxo

  • get_flow_stats

    • Recupera estatísticas de fluxo do POX
    • Entrada:
      • dpid (string): Identificador do datapath
      • match (object, opcional): Estrutura de correspondência POX
      • table_id (string, opcional): ID da tabela OpenFlow
      • out_port (string, opcional): Filtro de porta de saída
    • Retorna: Estatísticas de fluxo POX incluindo contagens de pacotes
  • set_table

    • Configura tabelas de fluxo POX
    • Entrada:
      • dpid (string): Identificador do datapath
      • flows (array): Especificações de fluxo POX
    • Retorna: Confirmação de atualização da tabela de fluxo

Ferramentas de Análise

  • append_insight
    • Adiciona insights de rede ao memorando de configuração POX
    • Entrada:
      • insight (string): Observação ou análise de rede
    • Retorna: Confirmação de adição de insight
    • Atualiza o recurso pox://network-config

Uso com Claude Desktop

uv

{
  "mcpServers": {
    "pox": {
      "command": "uv",
      "args": [
        "--directory",
        "parent_of_servers_repo/servers/src/mcp_server_pox",
        "run",
        "server.py"
      ],
      "env": {
        "POX_SERVER_URL": "http://localhost:8000"
      }
    }
  }
}

Licença

Este servidor MCP é licenciado sob a Licença MIT. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença MIT. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar pull requests, relatar bugs ou sugerir novos recursos.