eBPF MCP

Un servidor MCP seguro para eBPF, diseñado para integración con IA, introspección del kernel y automatización.

Documentación

🐝 ebpf-mcp: Control eBPF compatible con IA mediante Model Context Protocol

Un servidor MCP seguro, mínimo y con esquema forzado para eBPF — diseñado específicamente para integración con IA, introspección del kernel y automatización.

Version MCP Compatible eBPF Support License: GPL v2 (eBPF) License: Apache 2.0 (Core)


🧠 ¿Qué es esto?

ebpf-mcp es un servidor Model Context Protocol (MCP) seguro que expone un conjunto mínimo de herramientas estructuradas para interactuar con eBPF — optimizado para control seguro de IA, agentes de automatización y operadores humanos.

Permite cargar, adjuntar, inspeccionar y transmitir programas eBPF — todo mediante contratos estrictos de JSON Schema validados en tiempo de ejecución. Sin APIs REST, sin escapes de shell y sin envoltorios de bpftool.


🚀 Inicio rápido

📦 Instalación de una línea

# Install ebpf-mcp server
curl -fsSL https://raw.githubusercontent.com/sameehj/ebpf-mcp/main/install.sh | sudo bash

# Start the service (runs on port 8080 by default)
sudo systemctl start ebpf-mcp
sudo systemctl enable ebpf-mcp

# Get your auth token
cat /etc/ebpf-mcp-token

# Check service status
sudo systemctl status ebpf-mcp

# View logs if needed
sudo journalctl -u ebpf-mcp -f

Para entornos aislados o de desarrollo:

git clone https://github.com/sameehj/ebpf-mcp.git
cd ebpf-mcp
sudo ./install.sh v1.0.2

🧪 Probar la instalación

# Run the complete test suite
cd scripts/
chmod +x test-ebpf-mcp-server.sh
./test-ebpf-mcp-server.sh <your-token>

Si no se proporciona un token, el script lo solicitará de forma interactiva.


🤖 Integración con Claude CLI

Una vez instalado, conecta Claude a tu servidor eBPF (se ejecuta en el puerto 8080):

# Add MCP server to Claude CLI
claude mcp add ebpf http://localhost:8080/mcp \
  -t http \
  -H "Authorization: Bearer $(cat /etc/ebpf-mcp-token)"

# Start Claude with eBPF tools
claude --debug

# Optional: Test with MCP Inspector (requires Node.js)
npx @modelcontextprotocol/inspector http://localhost:8080/mcp

📘 Tutoriales

¿Buscas comenzar en entornos específicos o con Cursor IDE?

🧰 Guía de configuración de VirtualBox

Aprende a configurar y ejecutar ebpf-mcp dentro de una máquina virtual de VirtualBox, con reenvío de puertos, acceso SSH y consejos prácticos.

🖥️ Integración de Cursor IDE + eBPF-MCP

Guía paso a paso para ejecutar el servidor eBPF MCP con Cursor IDE para observabilidad impulsada por IA.

Ejemplos de prompts:

  • > Get system info and kernel version
  • > Load and attach a kprobe program to monitor sys_execve
  • > Show me all active eBPF programs and their types
  • > Stream events from ringbuffer maps for 10 seconds
  • > Trace kernel errors for the next 5 seconds

📥 Opciones de instalación

MétodoComandoCaso de uso
Una líneacurl ... | sudo bashSistemas de producción
Manualgit clone && sudo ./install.shDesarrollo/aislado
Compilar desde el código fuentemake buildModificaciones personalizadas
DockerPróximamenteEntornos contenedorizados

🔧 Conjunto de herramientas mínimo

Cada herramienta está diseñada para ser validable por esquema, orquestable por IA y segura por defecto. Cubren más del 80% de los flujos de trabajo reales de observabilidad y control.

Nombre de la herramientaEstadoDescripciónCapacidades requeridas
infoIntrospección del sistema: kernel, arquitectura, BTFCAP_BPF o ninguno (solo lectura)
load_programCargar y validar archivos .o (compatible con CO-RE)CAP_BPF o CAP_SYS_ADMIN
attach_programAdjuntar programa a hooks XDP, kprobe, tracepointDepende del tipo (p. ej. CAP_NET_ADMIN para XDP)
inspect_stateListar programas, mapas, enlaces y metadatos de herramientasCAP_BPF (solo lectura)
stream_eventsTransmitir eventos desde mapas ringbuf/perfbufCAP_BPF (solo lectura)
trace_errorsMonitorear tracepoints del kernel para condiciones de errorCAP_BPF (solo lectura)

Todas las herramientas devuelven salida JSON estructurada — lista para IA, compatible con streaming y validada por esquema.

🔍 Consulta docs/TOOL_SPECS.md para definiciones completas de esquemas.


🚀 Lo que puedes hacer

  • ✅ Consultar versión del kernel, arquitectura y disponibilidad de BTF
  • ✅ Cargar programas desde disco o base64 en línea con BTF opcional
  • ✅ Adjuntar a sistemas en vivo con restricciones de tipo seguro
  • ✅ Inspeccionar objetos fijados, versión del kernel, estado del verificador
  • ✅ Transmitir eventos en tiempo real con filtrado por pid/comm/cpu
  • ✅ Rastrear errores del kernel y anomalías del sistema
  • ✅ Descubrir herramientas disponibles y sus esquemas
  • ✅ Integrar con Claude, Ollama o clientes compatibles con MCP

🛡️ Modelo de seguridad

CapaControles
Ejecución de eBPFVerificador del kernel + límites de recursos
Sistema de archivosSin shell, sin exec, rutas validadas
Aislamiento en tiempo de ejecuciónLimpieza por sesión, entradas estrictas
Seguridad de IAEsquemas conscientes de capacidades + límites de salida
AutenticaciónToken Bearer + listo para HTTPS

🧼 Todos los recursos se limpian automáticamente cuando un cliente se desconecta (no se requiere descarga/desconexión manual a menos que esté fijado).


📦 Estructura del proyecto

.
├── cmd/              # MCP server + CLI client
├── internal/         # Core logic: eBPF, tools, kernel adapters
├── pkg/types/        # JSON schema bindings + shared types
├── docs/             # Tool specs, design notes, schemas
├── scripts/          # Install script + test suite
└── schemas/          # JSON Schema files for each tool

🧠 Notas avanzadas de diseño

✅ Gestión del ciclo de vida

  • 🔒 Sin desconexión manual: Los enlaces se cierran automáticamente a menos que estén fijados
  • 🧹 Limpieza automática: Los descriptores de archivo y la memoria se liberan al desconectarse
  • 📎 Fijación: Rutas de fijación opcionales (/sys/fs/bpf/...) para mapas/programas/enlaces

🤖 Compatibilidad con herramientas de IA

  • Todas las herramientas están estrictamente tipadas con esquemas publicados y devuelven salida JSON estructurada
  • Listo para IA: Sin necesidad de análisis — integración directa con modelos de lenguaje
  • Compatible con streaming: Flujos de datos en tiempo real para flujos de trabajo de observabilidad
  • Las respuestas incluyen:
    • tool_version
    • verifier_log (para depuración)
    • Estructurado error con context

🔗 Extensibilidad

Futuras herramientas opcionales:

  • pin_object / unpin_object
  • detach_link
  • map_batch_op

Estas se omiten por defecto por seguridad y simplicidad.


📚 Referencias

🧪 Consulta scripts/test-ebpf-mcp-server.sh para la suite de validación completa.

Arquitectura básica:

Claude / Ollama / AI Client
          ↓
     MCP JSON-RPC
          ↓
   ebpf-mcp server
          ↓
     Kernel APIs

📜 Licencias

ComponenteLicencia
internal/ebpf/GPL-2.0
Todo lo demásApache-2.0

✉️ Contacto

📬 GitHub – sameehj/ebpf-mcp 🛠 ¡Contribuciones, problemas y PRs bienvenidos!


Estructurado. Seguro. Nativo de esquemas. ebpf-mcp lleva eBPF a la era de la IA.