HDFS MCP Server

Accede y gestiona archivos en clústeres HDFS usando el protocolo MCP, con soporte para operaciones como carga, descarga, mover y copiar.

Documentación

HDFS MCP Server

HDFS MCP Server es un controlador basado en MCP (Model Context Protocol) que proporciona acceso a clústeres HDFS a través del protocolo MCP. El servidor admite operaciones básicas de HDFS como carga, descarga, movimiento y copia de archivos, y ofrece un manejo de errores amigable y capacidades de prueba de conexión.

Requisitos

  • Python 3.11 o superior
  • Cliente de Hadoop instalado y configurado
  • uv gestor de paquetes

Instalación

  1. Clona el repositorio:

    git clone https://github.com/will-sh/hdfs-mcp.git
    cd hdfs-mcp
    
  2. Asegúrate de que Python 3.11 esté activo: El proyecto especifica Python 3.11 en el archivo .python-version. Si usas pyenv, automáticamente usará esta versión al entrar en el directorio. Si no tienes Python 3.11 instalado, puedes instalarlo usando:

    # Example using pyenv
    pyenv install 3.11
    
  3. Crea y activa el entorno virtual usando uv:

    uv venv
    source .venv/bin/activate  # macOS/Linux
    # .\.venv\Scripts\activate  # Windows
    
  4. Instala las dependencias usando uv:

    uv pip sync
    

Configuración de MCP

{
  "mcpServers": {
    "hdfs-controller": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/hdfsmcp",
        "run",
        "hdfs.py"
      ],
      "env": {
        "HDFS_NAMENODE": "your_namenode_hostname",
        "NAMENODE_PORT": "your_namenode_port"
      }
    }
  }
}

Reemplaza lo siguiente con tu configuración real:

  • /path/to/your/hdfs-mcp: Reemplaza con la ruta real de tu proyecto
  • your_namenode_hostname: Reemplaza con el nombre de host de tu NameNode HDFS
  • your_namenode_port: Reemplaza con el puerto de tu NameNode HDFS (si no se especifica, el puerto predeterminado es 8020)

Características

El HDFS MCP proporciona las siguientes operaciones de HDFS:

  • Listar contenido de directorios
  • Leer contenido de archivos
  • Crear directorios
  • Eliminar archivos/directorios
  • Subir archivos a HDFS
  • Descargar archivos de HDFS
  • Obtener información de archivos/directorios
  • Obtener uso de disco
  • Obtener estado del clúster
  • Copiar/mover archivos dentro de HDFS

Uso

  1. Asegúrate de que el cliente de Hadoop esté correctamente instalado y configurado
  2. Asegúrate de que la variable de entorno HADOOP_HOME esté configurada
  3. Asegúrate de que el comando hdfs esté en el PATH de tu sistema

Solución de problemas

Si encuentras problemas de conexión, verifica:

  1. Accesibilidad del NameNode HDFS
  2. Configuración del puerto
  3. Conectividad de red
  4. Configuración del cliente de Hadoop
  5. El ticket de Kerberos es válido

Notas

  • Asegúrate de tener permisos suficientes para acceder al clúster HDFS
  • Las operaciones con archivos grandes pueden tardar más, por favor ten paciencia
  • Se recomienda probar la conexión antes de las operaciones