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
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.
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.

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ía | Nombre de la Herramienta | Descripción |
|---|---|---|
| Sistema de Archivos | get_allowed_directory | Obtener la ruta del directorio de trabajo actual |
update_allowed_directory | Cambiar el directorio de trabajo | |
create_directory | Crear un nuevo directorio o directorios anidados | |
write_file | Crear o sobrescribir un archivo con contenido nuevo | |
edit_file | Realizar ediciones basadas en líneas a un archivo de texto | |
read_file | Leer el contenido de uno o más archivos | |
list_directory | Obtener listado de archivos y directorios | |
move_file | Mover o renombrar un archivo o directorio | |
copy_file | Copiar un archivo o directorio a una nueva ubicación | |
search_files | Buscar archivos que coincidan con un patrón de nombre | |
delete_file | Eliminar un archivo o directorio vacío | |
get_file_info | Obtener metadatos detallados del archivo | |
directory_tree | Obtener una vista de árbol recursiva de directorios | |
read_image_file | Leer un archivo de imagen como datos base64 | |
| Herramientas de Código | codebase_mapper | Analizar la estructura del código en archivos |
search_code | Encontrar patrones de texto en archivos de código | |
execute_code | Ejecutar código en varios lenguajes | |
execute_shell_script | Ejecutar scripts de shell/bash | |
| Herramientas Web | web_fetch | Obtener contenido de una URL |
web_search | Realizar una búsqueda web | |
| Herramientas de Pantalla | capture_screenshot | Tomar una captura de pantalla de pantalla o ventana |
get_active_apps | Listar aplicaciones en ejecución | |
get_available_windows | Listar todas las ventanas abiertas | |
| Sistema | get_system_info | Obtener información detallada del sistema |
| Utilidad | batch_tools | Ejecutar múltiples operaciones de herramientas juntas |
think | Documentar razonamiento sin hacer cambios | |
| Tareas | todo_read | Leer la lista de tareas actual del espacio de trabajo |
todo_write | Reemplazar toda la lista de tareas con validación | |
todo_update | Actualizar un elemento de tarea específico por ID |
Documentación Detallada de Herramientas
Operaciones Básicas de Archivos
| Herramienta | Parámetros | Retorna |
|---|---|---|
| read_file | files: [{path: string, offset?: integer, limit?: integer}] | Contenido del archivo (uno o múltiples archivos) |
| write_file | path: string, content: string | Confirmación de éxito |
| move_file | source: string, destination: string | Confirmación de éxito |
| copy_file | source: string, destination: string, recursive?: boolean | Confirmación de éxito |
| delete_file | path: string | Confirmación de éxito |
| get_file_info | path: string | Metadatos 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
| Herramienta | Parámetros | Retorna |
|---|---|---|
| get_allowed_directory | ninguno | Ruta del directorio permitido actual |
| update_allowed_directory | directory: string (ruta absoluta) | Confirmación de éxito |
| list_directory | path: string | Lista de contenidos del directorio |
| create_directory | path: string | Confirmación de éxito |
| search_files | pattern: string, path?: string, include_hidden?: boolean | Lista 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| patterns | array de strings | Sí | Lista de patrones de expresiones regulares para buscar en el contenido de los archivos |
| include | string | No | Patrón de archivo a incluir (sintaxis glob, predeterminado: "*") |
| exclude | string | No | Patrón de archivo a excluir (sintaxis glob, predeterminado: "") |
| max_results | integer | No | Máximo de resultados a retornar por patrón (predeterminado: 100) |
| case_sensitive | boolean | No | Si la búsqueda distingue mayúsculas y minúsculas (predeterminado: false) |
| path | string | No | Directorio 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
| Herramienta | Parámetros | Retorna |
|---|---|---|
| get_system_info | ninguno | Detalles 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| with_details | boolean | No | Si 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| output_path | string | No | Ruta donde se debe guardar la captura de pantalla (predeterminado: ruta generada) |
| capture_mode | object | No | Especifica qué capturar |
| capture_mode.type | string | No | Tipo de captura de pantalla: 'full', 'active_window' o 'named_window' (predeterminado: 'full') |
| capture_mode.window_name | string | No | Nombre 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| path | string | Sí | Ruta al archivo de imagen a leer |
| max_size | integer | No | Tamañ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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| url | string | Sí | URL de la que obtener contenido (solo http/https) |
| headers | object | No | Cabeceras HTTP opcionales para incluir en la solicitud |
| timeout | integer | No | Tiempo máximo de espera de respuesta (por defecto: 10s) |
| save_to_file | string | No | Ruta para guardar el contenido de la respuesta (dentro del directorio permitido) |
| convert_html_to_markdown | boolean | No | Cuando 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| query | string | Sí | La consulta de búsqueda a procesar. Sé específico para obtener mejores resultados. |
| num_results | integer | No | Número máximo de resultados de búsqueda a devolver (por defecto: 10, máx: 20) |
| convert_html_to_markdown | boolean | No | Cuando es true, el contenido se convertirá de HTML a markdown para una mejor legibilidad (por defecto: true) |
| search_engine | string | No | Especifica 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| description | string | Sí | Breve descripción de la operación por lotes |
| sequential | boolean | No | Si ejecutar las herramientas en secuencia (por defecto: false) |
| invocations | array | Sí | Lista de invocaciones de herramientas a ejecutar |
| invocations[].tool | string | Sí | Nombre de la herramienta a invocar |
| invocations[].arguments | object | Sí | Argumentos 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:
- Usar rutas relativas al directorio de trabajo actual (por ejemplo, "project/src" en lugar de solo "src"), o
- 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| thought | string | Sí | Tus 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| language | string | Sí | Lenguaje de programación a utilizar |
| code | string | Sí | Código a ejecutar |
| timeout | integer | No | Tiempo 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:
- Revisa el código a fondo antes de ejecutarlo
- Comprende el propósito del código y el resultado esperado
- Nunca ejecutes código no confiable
- Sé consciente de los posibles impactos en el sistema
- 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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| script | string | Sí | Script de shell a ejecutar |
| timeout | integer | No | Tiempo 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:
- Revisa el script a fondo antes de ejecutarlo
- Comprende el propósito del script y el resultado esperado
- Nunca ejecutes scripts no confiables
- Sé consciente de los posibles impactos en el sistema
- 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
