SkyDeckAI Code

Un conjunto completo de herramientas para el desarrollo impulsado por IA, que ofrece operaciones del sistema de archivos, análisis de código, ejecución, búsqueda web y recuperación de información del sistema.

Documentación

MseeP.ai Security Assessment Badge

SkyDeckAI Code

Un servidor MCP que proporciona un conjunto completo de herramientas para flujos de trabajo de desarrollo impulsados por IA. Las características incluyen operaciones del sistema de archivos, análisis de código usando tree-sitter para múltiples lenguajes de programación, ejecución de código, obtención de contenido web con conversión de HTML a Markdown, búsqueda web multi-motor, búsqueda de contenido de código y recuperación de información del sistema. Diseñado para mejorar la capacidad de la IA para ayudar en tareas de desarrollo de software al proporcionar acceso directo a recursos locales y remotos.

Anteriormente Conocido Como MCP-Server-AIDD

Este servidor MCP se conocía anteriormente como mcp-server-aidd. Fue renombrado a skydeckai-code para acreditar al equipo de SkyDeck.ai por crear esta aplicación junto con East Agile. Pero más importante aún, nos dimos cuenta de que el término Desarrollo Impulsado por IA (AIDD) simplemente no estaba teniendo éxito. La gente no entendía de un vistazo de qué se trataba. Y tampoco los LLMs. "Code" era mucho más intuitivo. Y lo lingüísticamente intuitivo es importante en el mundo de la IA agéntica.

Verified on MseeP

Instalación

# Using uvx
uvx skydeckai-code

Configuración de Claude Desktop

Agregue a su claude_desktop_config.json:

{
    "mcpServers": {
        "skydeckai-code": {
            "command": "uvx",
            "args": ["skydeckai-code"]
        }
    }
}

Aplicación Auxiliar SkyDeck AI

Si está utilizando la aplicación auxiliar MseeP AI, puede buscar "SkyDeckAI Code" e instalarla.

MseeP AI Helper App

Características Clave

  • Operaciones del sistema de archivos (leer, escribir, editar, mover, copiar, eliminar)
  • Gestión y recorrido de directorios
  • Análisis de código multi-lenguaje usando tree-sitter
  • Búsqueda de contenido de código con coincidencia de patrones regex
  • Ejecución de código multi-lenguaje con medidas de seguridad
  • Obtención de contenido web desde APIs y sitios web con conversión de HTML a Markdown
  • Búsqueda web multi-motor con mecanismos de respaldo confiables
  • Operaciones por lotes para ejecución de herramientas en paralelo y en serie
  • Controles de seguridad con límites de espacio de trabajo configurables
  • Herramientas de captura de pantalla y contexto de pantalla
  • Herramientas de manejo de imágenes

Herramientas Disponibles (29)

CategoríaNombre de la HerramientaDescripción
Sistema de Archivosget_allowed_directoryObtener la ruta del directorio de trabajo actual
update_allowed_directoryCambiar el directorio de trabajo
create_directoryCrear un nuevo directorio o directorios anidados
write_fileCrear o sobrescribir un archivo con contenido nuevo
edit_fileRealizar ediciones basadas en líneas a un archivo de texto
read_fileLeer el contenido de uno o más archivos
list_directoryObtener listado de archivos y directorios
move_fileMover o renombrar un archivo o directorio
copy_fileCopiar un archivo o directorio a una nueva ubicación
search_filesBuscar archivos que coincidan con un patrón de nombre
delete_fileEliminar un archivo o directorio vacío
get_file_infoObtener metadatos detallados del archivo
directory_treeObtener una vista de árbol recursiva de directorios
read_image_fileLeer un archivo de imagen como datos base64
Herramientas de Códigocodebase_mapperAnalizar la estructura del código en archivos
search_codeEncontrar patrones de texto en archivos de código
execute_codeEjecutar código en varios lenguajes
execute_shell_scriptEjecutar scripts de shell/bash
Herramientas Webweb_fetchObtener contenido de una URL
web_searchRealizar una búsqueda web
Herramientas de Pantallacapture_screenshotTomar una captura de pantalla de pantalla o ventana
get_active_appsListar aplicaciones en ejecución
get_available_windowsListar todas las ventanas abiertas
Sistemaget_system_infoObtener información detallada del sistema
Utilidadbatch_toolsEjecutar múltiples operaciones de herramientas juntas
thinkDocumentar razonamiento sin hacer cambios
Tareastodo_readLeer la lista de tareas actual del espacio de trabajo
todo_writeReemplazar toda la lista de tareas con validación
todo_updateActualizar un elemento de tarea específico por ID

Documentación Detallada de Herramientas

Operaciones Básicas de Archivos

HerramientaParámetrosRetorna
read_filefiles: [{path: string, offset?: integer, limit?: integer}]Contenido del archivo (uno o múltiples archivos)
write_filepath: string, content: stringConfirmación de éxito
move_filesource: string, destination: stringConfirmación de éxito
copy_filesource: string, destination: string, recursive?: booleanConfirmación de éxito
delete_filepath: stringConfirmación de éxito
get_file_infopath: stringMetadatos del archivo (tamaño, marcas de tiempo, permisos)

Operaciones Complejas de Archivos

edit_file

Edición de archivos basada en patrones con soporte de vista previa:

{
    "path": "src/main.py",
    "edits": [
        {
            "oldText": "def old_function():",
            "newText": "def new_function():"
        }
    ],
    "dryRun": false,
    "options": {
        "partialMatch": true
    }
}

Retorna: Diff de cambios o vista previa en modo de ejecución en seco.

Operaciones de Directorio

HerramientaParámetrosRetorna
get_allowed_directoryningunoRuta del directorio permitido actual
update_allowed_directorydirectory: string (ruta absoluta)Confirmación de éxito
list_directorypath: stringLista de contenidos del directorio
create_directorypath: stringConfirmación de éxito
search_filespattern: string, path?: string, include_hidden?: booleanLista de archivos coincidentes

La herramienta search_files busca archivos por patrón de nombre, mientras que la herramienta search_code busca dentro del contenido de los archivos usando regex. Use search_files cuando busque archivos con nombres o extensiones específicos, y search_code cuando busque patrones de texto específicos dentro de los archivos.

directory_tree

Genera la estructura completa del directorio:

{
    "path": "src",
    "include_hidden": false
}

Retorna: Estructura de árbol JSON del contenido del directorio.

Análisis de Código

codebase_mapper

Analiza la estructura del código fuente:

{
    "path": "src"
}

Retorna:

  • Clases y sus métodos
  • Funciones y parámetros
  • Estructura del módulo
  • Estadísticas de organización del código
  • Relaciones de herencia

Lenguajes Soportados:

  • Python (.py)
  • JavaScript (.js/.jsx, .mjs, .cjs)
  • TypeScript (.ts/.tsx)
  • Java (.java)
  • C++ (.cpp, .hpp, .cc)
  • Ruby (.rb, .rake)
  • Go (.go)
  • Rust (.rs)
  • PHP (.php)
  • C# (.cs)
  • Kotlin (.kt, .kts)

search_code

Herramienta de búsqueda de contenido rápida usando expresiones regulares:

{
    "patterns": ["function\\s+\\w+", "class\\s+\\w+"],
    "include": "*.js",
    "exclude": "node_modules/**",
    "max_results": 50,
    "case_sensitive": false,
    "path": "src"
}

Parámetros:

ParámetroTipoRequeridoDescripción
patternsarray de stringsLista de patrones de expresiones regulares para buscar en el contenido de los archivos
includestringNoPatrón de archivo a incluir (sintaxis glob, predeterminado: "*")
excludestringNoPatrón de archivo a excluir (sintaxis glob, predeterminado: "")
max_resultsintegerNoMáximo de resultados a retornar por patrón (predeterminado: 100)
case_sensitivebooleanNoSi la búsqueda distingue mayúsculas y minúsculas (predeterminado: false)
pathstringNoDirectorio base desde donde buscar (predeterminado: ".")

Retorna: Líneas coincidentes agrupadas por archivo con números de línea, ordenadas por tiempo de modificación del archivo con los archivos más nuevos primero.

Esta herramienta usa ripgrep cuando está disponible para un rendimiento óptimo, con una implementación de respaldo en Python. Es ideal para encontrar patrones de código específicos como declaraciones de funciones, importaciones, usos de variables o manejo de errores.

Información del Sistema

HerramientaParámetrosRetorna
get_system_infoningunoDetalles completos del sistema

Retorna:

{
  "working_directory": "/path/to/project",
  "system": {
    "os", "os_version", "architecture", "python_version"
  },
  "wifi_network": "MyWiFi",
  "cpu": {
    "physical_cores", "logical_cores", "total_cpu_usage"
  },
  "memory": { "total", "available", "used_percentage" },
  "disk": { "total", "free", "used_percentage" },
  "mac_details": {  // Only present on macOS
    "model": "Mac mini",
    "chip": "Apple M2",
    "serial_number": "XXX"
  }
}

Proporciona información esencial del sistema en un formato limpio y legible.

Herramientas de Contexto de Pantalla e Imágenes

get_active_apps

Retorna una lista de las aplicaciones actualmente activas en el sistema del usuario.

{
    "with_details": true
}

Parámetros:

ParámetroTipoRequeridoDescripción
with_detailsbooleanNoSi se deben incluir detalles adicionales sobre cada aplicación (predeterminado: false)

Retorna:

{
    "success": true,
    "platform": "macos",
    "app_count": 12,
    "apps": [
        {
            "name": "Firefox",
            "has_windows": true,
            "window_count": 3,
            "visible_windows": [
                { "name": "GitHub - Mozilla Firefox", "width": 1200, "height": 800 }
            ]
        },
        {
            "name": "VSCode",
            "has_windows": true
        }
    ]
}

Esta herramienta proporciona contexto valioso sobre las aplicaciones que se están ejecutando actualmente en el sistema del usuario, lo que puede ayudar a proporcionar asistencia más relevante.

get_available_windows

Retorna información detallada sobre todas las ventanas disponibles actualmente mostradas en la pantalla del usuario.

{}

Retorna:

{
    "success": true,
    "platform": "macos",
    "count": 8,
    "windows": [
        {
            "id": 42,
            "title": "Document.txt - Notepad",
            "app": "Notepad",
            "visible": true
        },
        {
            "title": "Terminal",
            "app": "Terminal",
            "visible": true,
            "active": true
        }
    ]
}

Esta herramienta ayuda a entender qué es visible en la pantalla del usuario y puede usarse para asistencia consciente del contexto.

capture_screenshot

Captura una captura de pantalla de la pantalla del usuario o de una ventana específica.

{
    "output_path": "screenshots/capture.png",
    "capture_mode": {
        "type": "named_window",
        "window_name": "Visual Studio Code"
    }
}

Parámetros:

ParámetroTipoRequeridoDescripción
output_pathstringNoRuta donde se debe guardar la captura de pantalla (predeterminado: ruta generada)
capture_modeobjectNoEspecifica qué capturar
capture_mode.typestringNoTipo de captura de pantalla: 'full', 'active_window' o 'named_window' (predeterminado: 'full')
capture_mode.window_namestringNoNombre de la ventana a capturar (requerido cuando el tipo es 'named_window')

Retorna:

{
    "success": true,
    "path": "/path/to/screenshots/capture.png"
}

Esta herramienta captura capturas de pantalla para visualización, depuración o asistencia consciente del contexto.

read_image_file

Lee un archivo de imagen del sistema de archivos y retorna su contenido como una cadena codificada en base64.

{
    "path": "images/logo.png"
}

Parámetros:

ParámetroTipoRequeridoDescripción
pathstringRuta al archivo de imagen a leer
max_sizeintegerNoTamaño máximo del archivo en bytes (predeterminado: 100MB)

Retorna: Datos de imagen codificados en base64 que se pueden mostrar o procesar.

Esta herramienta soporta formatos de imagen comunes como PNG, JPEG, GIF y WebP, y redimensiona automáticamente las imágenes para una visualización óptima.

Herramientas Web

web_fetch

Obtiene contenido de una URL y opcionalmente lo guarda en un archivo.

{
    "url": "https://api.github.com/users/octocat",
    "headers": {
        "Accept": "application/json"
    },
    "timeout": 15,
    "save_to_file": "downloads/octocat.json",
    "convert_html_to_markdown": true
}

Parámetros:

ParámetroTipoObligatorioDescripción
urlstringURL de la que obtener contenido (solo http/https)
headersobjectNoCabeceras HTTP opcionales para incluir en la solicitud
timeoutintegerNoTiempo máximo de espera de respuesta (por defecto: 10s)
save_to_filestringNoRuta para guardar el contenido de la respuesta (dentro del directorio permitido)
convert_html_to_markdownbooleanNoCuando es true, convierte el contenido HTML a markdown para una mejor legibilidad (por defecto: true)

Devuelve: Contenido de la respuesta como texto con el código de estado HTTP e información de tamaño. Para contenido binario, devuelve metadatos y lo guarda en un archivo si se solicita. Cuando convert_html_to_markdown está habilitado, el contenido HTML se convierte automáticamente a formato markdown para una mejor legibilidad.

Esta herramienta se puede utilizar para acceder a APIs web, obtener documentación o descargar contenido de la web respetando los límites de tamaño (máx. 10MB) y las restricciones de seguridad.

web_search

Realiza una búsqueda web robusta utilizando múltiples motores de búsqueda y devuelve resultados concisos y relevantes.

{
    "query": "latest python release features",
    "num_results": 8,
    "convert_html_to_markdown": true,
    "search_engine": "bing"
}

Parámetros:

ParámetroTipoObligatorioDescripción
querystringLa consulta de búsqueda a procesar. Sé específico para obtener mejores resultados.
num_resultsintegerNoNúmero máximo de resultados de búsqueda a devolver (por defecto: 10, máx: 20)
convert_html_to_markdownbooleanNoCuando es true, el contenido se convertirá de HTML a markdown para una mejor legibilidad (por defecto: true)
search_enginestringNoEspecifica qué motor de búsqueda usar: "auto" (por defecto), "bing" o "duckduckgo"

Devuelve: Una lista de resultados de búsqueda formateados en markdown, incluyendo títulos, URLs y fragmentos para cada resultado. Los resultados se deduplican y organizan jerárquicamente para facilitar la lectura.

Esta herramienta utiliza un enfoque multi-motor que prueba diferentes motores de búsqueda con diversas estrategias de análisis para garantizar resultados fiables. Puedes especificar un motor preferido, pero algunos motores pueden bloquear el acceso automatizado, en cuyo caso la herramienta recurrirá a motores alternativos cuando se seleccione "auto".

Herramientas de Utilidad

batch_tools

Ejecuta múltiples invocaciones de herramientas en una sola solicitud con ejecución paralela cuando sea posible.

{
    "description": "Setup new project",
    "sequential": true,
    "invocations": [
        {
            "tool": "create_directory",
            "arguments": {
                "path": "src"
            }
        },
        {
            "tool": "write_file",
            "arguments": {
                "path": "README.md",
                "content": "# New Project\n\nThis is a new project."
            }
        },
        {
            "tool": "execute_shell_script",
            "arguments": {
                "script": "git init"
            }
        }
    ]
}

Parámetros:

ParámetroTipoObligatorioDescripción
descriptionstringBreve descripción de la operación por lotes
sequentialbooleanNoSi ejecutar las herramientas en secuencia (por defecto: false)
invocationsarrayLista de invocaciones de herramientas a ejecutar
invocations[].toolstringNombre de la herramienta a invocar
invocations[].argumentsobjectArgumentos para la herramienta especificada

Devuelve: Resultados combinados de todas las invocaciones de herramientas, agrupados por herramienta con estado de éxito/error para cada una. Los resultados se presentan en el orden original de invocación con encabezados de sección claros.

Esta herramienta proporciona una ejecución eficiente de múltiples operaciones en una sola solicitud. Cuando sequential es false (por defecto), las herramientas se ejecutan en paralelo para un mejor rendimiento. Cuando sequential es true, las herramientas se ejecutan en orden, y si alguna herramienta falla, la ejecución se detiene.

IMPORTANTE: Todas las herramientas del lote se ejecutan en el mismo contexto de directorio de trabajo. Si una herramienta crea un directorio y una herramienta posterior necesita trabajar dentro de ese directorio, debes:

  1. Usar rutas relativas al directorio de trabajo actual (por ejemplo, "project/src" en lugar de solo "src"), o
  2. Incluir una invocación explícita de herramienta para cambiar de directorio usando update_allowed_directory

think

Una herramienta para razonamiento complejo y lluvia de ideas sin realizar cambios en el repositorio.

{
    "thought": "Let me analyze the performance issue in the codebase:\n\n## Root Cause Analysis\n\n1. The database query is inefficient because:\n   - It doesn't use proper indexing\n   - It fetches more columns than needed\n   - The JOIN operation is unnecessarily complex\n\n## Potential Solutions\n\n1. **Add database indexes**:\n   - Create an index on the user_id column\n   - Create a composite index on (created_at, status)\n\n2. **Optimize the query**:\n   - Select only necessary columns\n   - Rewrite the JOIN using a subquery\n   - Add LIMIT clause for pagination\n\n3. **Add caching layer**:\n   - Cache frequent queries using Redis\n   - Implement cache invalidation strategy\n\nAfter weighing the options, solution #2 seems to be the simplest to implement with the highest impact."
}

Parámetros:

ParámetroTipoObligatorioDescripción
thoughtstringTus pensamientos detallados, análisis o proceso de razonamiento

Devuelve: Tus pensamientos formateados como markdown, con una nota indicando que fue un ejercicio de pensamiento.

Esta herramienta es útil para pensar en problemas complejos, generar soluciones o planificar planes de implementación sin realizar cambios reales. Es una excelente manera de documentar tu proceso de razonamiento, evaluar diferentes enfoques o planificar una estrategia de múltiples pasos antes de actuar.

Ejecución de Código

execute_code

Ejecuta código en varios lenguajes de programación con medidas de seguridad y restricciones.

{
    "language": "python",
    "code": "print('Hello, World!')",
    "timeout": 5
}

Lenguajes Soportados:

  • Python (python3)
  • JavaScript (Node.js)
  • Ruby
  • PHP
  • Go
  • Rust

Parámetros:

ParámetroTipoObligatorioDescripción
languagestringLenguaje de programación a utilizar
codestringCódigo a ejecutar
timeoutintegerNoTiempo máximo de ejecución (por defecto: 5s)

Requisitos:

  • Los runtimes de los respectivos lenguajes deben estar instalados
  • Los comandos deben estar disponibles en el PATH del sistema
  • Permisos adecuados para la creación de archivos temporales

⚠️ Advertencia de Seguridad: Esta herramienta ejecuta código arbitrario en tu sistema. Siempre:

  1. Revisa el código a fondo antes de ejecutarlo
  2. Comprende el propósito del código y el resultado esperado
  3. Nunca ejecutes código no confiable
  4. Sé consciente de los posibles impactos en el sistema
  5. Supervisa la salida de la ejecución

execute_shell_script

Ejecuta scripts de shell (bash/sh) con medidas de seguridad y restricciones.

{
    "script": "echo \"Current directory:\" && pwd",
    "timeout": 300
}

Parámetros:

ParámetroTipoObligatorioDescripción
scriptstringScript de shell a ejecutar
timeoutintegerNoTiempo máximo de ejecución (por defecto: 300s, máx: 600s)

Características:

  • Usa /bin/sh para máxima compatibilidad entre sistemas
  • Se ejecuta dentro del directorio permitido
  • Salida separada de stdout y stderr
  • Manejo adecuado de errores y controles de tiempo de espera

⚠️ Advertencia de Seguridad: Esta herramienta ejecuta comandos de shell arbitrarios en tu sistema. Siempre:

  1. Revisa el script a fondo antes de ejecutarlo
  2. Comprende el propósito del script y el resultado esperado
  3. Nunca ejecutes scripts no confiables
  4. Sé consciente de los posibles impactos en el sistema
  5. Supervisa la salida de la ejecución

Herramientas de Todo

Las herramientas de todo proporcionan capacidades de gestión de tareas secuenciales para flujos de trabajo de desarrollo centrados en el espacio de trabajo. Las tareas se ejecutan en orden sin sistemas de prioridad, asegurando un progreso estructurado a través de las fases de desarrollo.

todo_read

Lee la lista de tareas actual del espacio de trabajo.

{}

Devuelve:

{
  "todos": [
    {
      "id": "abc123",
      "content": "Implement user authentication",
      "status": "in_progress",
      "metadata": {
        "custom_key": "custom_value"
      },
      "created_at": "2023-10-01T10:00:00Z",
      "updated_at": "2023-10-01T11:30:00Z"
    }
  ],
  "count": 1,
  "workspace": "/path/to/workspace"
}

todo_write

Reemplaza toda la lista de tareas para el flujo de trabajo de ejecución secuencial. Las tareas se ejecutan en orden de array, basándose en el trabajo anterior.

{
  "todos": [
    {
      "id": "task1",
      "content": "Set up database schema",
      "status": "pending"
    },
    {
      "id": "task2", 
      "content": "Create API endpoints",
      "status": "pending",
      "metadata": {
        "custom_key": "custom_value"
      }
    }
  ]
}

Reglas del Flujo de Trabajo Secuencial:

  • Cada tarea debe tener un ID único
  • Solo una tarea puede estar "in_progress" a la vez (ejecución secuencial)
  • Las tareas se ejecutan en orden de array - sin sistema de prioridad
  • Campos obligatorios: id, content, status
  • Valores de estado: "pending", "in_progress", "completed"
  • Centrado en el espacio de trabajo: La gestión de tareas es obligatoria para todas las operaciones del espacio de trabajo

todo_update

Actualiza un elemento de tarea específico por ID para la progresión del flujo de trabajo secuencial.

{
  "todo_id": "task1",
  "updates": {
    "status": "in_progress",
    "metadata": {
        "new_key": "new_value"
    }
  }
}

Devuelve:

{
  "success": true,
  "updated_todo": {
    "id": "task1",
    "content": "Set up database schema",
    "status": "in_progress",
    "updated_at": "2023-10-01T12:00:00Z",
    "metadata": {
        "new_key": "new_value"
    }
  },
  "counts": {
    "pending": 1,
    "in_progress": 1,
    "completed": 0,
    "total": 2
  },
  "workspace": "/path/to/workspace"
}

El sistema de todo mantiene listas de tareas secuenciales separadas para cada espacio de trabajo, imponiendo el uso obligatorio para todas las operaciones del espacio de trabajo. Las tareas se ejecutan en orden, basándose en el trabajo anterior sin programación basada en prioridad.

Configuración

Archivo de configuración: ~/.skydeckai_code/config.json

{
    "allowed_directory": "/path/to/workspace"
}

Depuración

Usa MCP Inspector para depurar:

npx @modelcontextprotocol/inspector run

Seguridad

  • Operaciones restringidas al directorio permitido configurado
  • Prevención de traversal de rutas
  • Preservación de permisos de archivos
  • Manejo seguro de operaciones

Próximas Funcionalidades

  • Herramientas de GitHub:
    • Generador de Descripción de PR
    • Revisión de Código
    • Administrador de Actions
  • Herramientas de Pivotal Tracker:
    • Generador de Historias
    • Administrador de Historias

Estado de Desarrollo

Actualmente en desarrollo activo. Las funcionalidades y la API pueden cambiar.

Licencia

Apache License 2.0 - ver LICENSE

Star History Chart