Brainfaq

Servidor MCP para el lenguaje de programación Brainfuck que permite a tu LLM favorito depurar programas Brainfuck.

Documentación

brainfaq-mcp

Servidor MCP para el lenguaje de programación Brainfuck que permite a tu LLM favorito depurar programas Brainfuck.

Uso

Usa este comando para ejecutar el servidor MCP:

npx brainfaq-mcp

Para usarlo en VS Code, añade el siguiente fragmento JSON a .vscode/mcp.json (crea el archivo si no lo tienes):

{
  "servers": {
    "brainfaq-mcp": {
      "command": "npx",
      "args": ["brainfaq-mcp"]
    }
  }
}

El MCP se puede añadir a otros IDEs con soporte para agentes LLM (por ejemplo, Cursor) de formas similares. Consulta su documentación y configúralos para ejecutar npx brainfaq-mcp. Esto iniciará el servidor MCP en modo stdio.

Características

Herramientas MCP

  • load_code - Reinicia el depurador y carga nuevo código fuente Brainfuck. Soporta tamaño de cinta configurable, valores mínimos/máximos de celda y entrada inicial.
  • step - Ejecuta un número especificado de instrucciones (por defecto 1) con salida detallada del estado.
  • run - Ejecuta el programa hasta que termine o espere entrada, con límite de instrucciones opcional.
  • add_input - Añade caracteres al buffer de entrada cuando el programa está esperando entrada.
  • get_state - Obtiene el estado actual del intérprete (memoria, punteros, salida) con ventanas opcionales.
  • read_output - Obtiene la cadena de salida completa generada hasta el momento.

Capacidades

  • Soporte completo de Brainfuck (8 operaciones: >, <, +, -, ., ,, [, ])
  • Detección de desbordamiento/subdesbordamiento con límites de valor configurables
  • Validación de coincidencia de corchetes y control de bucles
  • Ejecución paso a paso y depuración
  • Protección de memoria con tamaño de cinta configurable

Desarrollo

Configuración:

npm i

Compilación:

npm run build

Pruebas:

npm run test

Las pruebas están inspiradas en el conjunto de pruebas de Brainfuck de Daniel Cristofani.

Publicación

Primero compila el código fuente usando el comando anterior.

Inicia sesión en NPM:

npm login

Publica en NPM:

npm publish

Licencia

Todo el trabajo en este repositorio está licenciado bajo "Creative Commons Attribution-ShareAlike 4.0 International License".