SkyDeckAI Code
Um kit de ferramentas abrangente para desenvolvimento orientado por IA, oferecendo operações de sistema de arquivos, análise de código, execução, pesquisa na web e recuperação de informações do sistema.
Documentação
SkyDeckAI Code
Um servidor MCP que fornece um conjunto abrangente de ferramentas para fluxos de trabalho de desenvolvimento orientados por IA. Os recursos incluem operações de sistema de arquivos, análise de código usando tree-sitter para múltiplas linguagens de programação, execução de código, busca de conteúdo web com conversão de HTML para markdown, busca web multi-mecanismo, busca de conteúdo de código e recuperação de informações do sistema. Projetado para aprimorar a capacidade da IA de auxiliar em tarefas de desenvolvimento de software, fornecendo acesso direto a recursos locais e remotos.
Anteriormente Conhecido Como MCP-Server-AIDD
Este servidor MCP era anteriormente conhecido como mcp-server-aidd. Foi renomeado para skydeckai-code para creditar a equipe da SkyDeck.ai pela criação deste aplicativo junto com a East Agile. Mas, mais importante, percebemos que o termo Desenvolvimento Orientado por IA (AIDD) simplesmente não estava pegando. As pessoas não entendiam à primeira vista do que se tratava. E nem os LLMs. "Code" era muito mais intuitivo. E a intuitividade linguística é importante no mundo da IA agêntica.
Instalação
# Using uvx
uvx skydeckai-code
Configuração do Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"skydeckai-code": {
"command": "uvx",
"args": ["skydeckai-code"]
}
}
}
Aplicativo Auxiliar SkyDeck AI
Se você estiver usando o aplicativo auxiliar MseeP AI, pode pesquisar por "SkyDeckAI Code" e instalá-lo.

Principais Recursos
- Operações de sistema de arquivos (ler, escrever, editar, mover, copiar, excluir)
- Gerenciamento e navegação de diretórios
- Análise de código multi-linguagem usando tree-sitter
- Busca de conteúdo de código com correspondência de padrões regex
- Execução de código multi-linguagem com medidas de segurança
- Busca de conteúdo web de APIs e sites com conversão de HTML para markdown
- Busca web multi-mecanismo com mecanismos de fallback confiáveis
- Operações em lote para execução paralela e serial de ferramentas
- Controles de segurança com limites de espaço de trabalho configuráveis
- Ferramentas de captura de tela e contexto de tela
- Ferramentas de manipulação de imagens
Ferramentas Disponíveis (29)
| Categoria | Nome da Ferramenta | Descrição |
|---|---|---|
| Sistema de Arquivos | get_allowed_directory | Obter o caminho do diretório de trabalho atual |
update_allowed_directory | Alterar o diretório de trabalho | |
create_directory | Criar um novo diretório ou diretórios aninhados | |
write_file | Criar ou sobrescrever um arquivo com novo conteúdo | |
edit_file | Fazer edições baseadas em linhas em um arquivo de texto | |
read_file | Ler o conteúdo de um ou mais arquivos | |
list_directory | Obter listagem de arquivos e diretórios | |
move_file | Mover ou renomear um arquivo ou diretório | |
copy_file | Copiar um arquivo ou diretório para um novo local | |
search_files | Buscar arquivos que correspondem a um padrão de nome | |
delete_file | Excluir um arquivo ou diretório vazio | |
get_file_info | Obter metadados detalhados do arquivo | |
directory_tree | Obter uma visão em árvore recursiva dos diretórios | |
read_image_file | Ler um arquivo de imagem como dados base64 | |
| Ferramentas de Código | codebase_mapper | Analisar a estrutura do código em vários arquivos |
search_code | Encontrar padrões de texto em arquivos de código | |
execute_code | Executar código em vários idiomas | |
execute_shell_script | Executar scripts shell/bash | |
| Ferramentas Web | web_fetch | Obter conteúdo de uma URL |
web_search | Realizar uma busca web | |
| Ferramentas de Tela | capture_screenshot | Tirar uma captura de tela da tela ou janela |
get_active_apps | Listar aplicativos em execução | |
get_available_windows | Listar todas as janelas abertas | |
| Sistema | get_system_info | Obter informações detalhadas do sistema |
| Utilitário | batch_tools | Executar múltiplas operações de ferramentas juntas |
think | Documentar raciocínio sem fazer alterações | |
| Tarefas | todo_read | Ler a lista de tarefas atual do espaço de trabalho |
todo_write | Substituir toda a lista de tarefas com validação | |
todo_update | Atualizar item de tarefa específico por ID |
Documentação Detalhada das Ferramentas
Operações Básicas de Arquivos
| Ferramenta | Parâmetros | Retornos |
|---|---|---|
| read_file | files: [{path: string, offset?: integer, limit?: integer}] | Conteúdo do arquivo (arquivo único ou múltiplos) |
| write_file | path: string, content: string | Confirmação de sucesso |
| move_file | source: string, destination: string | Confirmação de sucesso |
| copy_file | source: string, destination: string, recursive?: boolean | Confirmação de sucesso |
| delete_file | path: string | Confirmação de sucesso |
| get_file_info | path: string | Metadados do arquivo (tamanho, timestamps, permissões) |
Operações Complexas de Arquivos
edit_file
Edição de arquivos baseada em padrões com suporte a pré-visualização:
{
"path": "src/main.py",
"edits": [
{
"oldText": "def old_function():",
"newText": "def new_function():"
}
],
"dryRun": false,
"options": {
"partialMatch": true
}
}
Retorna: Diff das alterações ou pré-visualização no modo de execução seca.
Operações de Diretório
| Ferramenta | Parâmetros | Retornos |
|---|---|---|
| get_allowed_directory | nenhum | Caminho atual do diretório permitido |
| update_allowed_directory | directory: string (caminho absoluto) | Confirmação de sucesso |
| list_directory | path: string | Lista de conteúdos do diretório |
| create_directory | path: string | Confirmação de sucesso |
| search_files | pattern: string, path?: string, include_hidden?: boolean | Lista de arquivos correspondentes |
A ferramenta search_files busca arquivos por padrão de nome, enquanto a ferramenta search_code busca dentro do conteúdo dos arquivos usando regex. Use search_files ao procurar arquivos com nomes ou extensões específicas, e search_code ao buscar padrões de texto específicos dentro dos arquivos.
directory_tree
Gera a estrutura completa do diretório:
{
"path": "src",
"include_hidden": false
}
Retorna: Estrutura em árvore JSON do conteúdo do diretório.
Análise de Código
codebase_mapper
Analisa a estrutura do código-fonte:
{
"path": "src"
}
Retorna:
- Classes e seus métodos
- Funções e parâmetros
- Estrutura do módulo
- Estatísticas de organização do código
- Relações de herança
Linguagens Suportadas:
- 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
Ferramenta de busca rápida de conteúdo usando expressões 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 | Obrigatório | Descrição |
|---|---|---|---|
| patterns | array de strings | Sim | Lista de padrões de expressões regulares para buscar no conteúdo dos arquivos |
| include | string | Não | Padrão de arquivo a incluir (sintaxe glob, padrão: "*") |
| exclude | string | Não | Padrão de arquivo a excluir (sintaxe glob, padrão: "") |
| max_results | inteiro | Não | Máximo de resultados a retornar por padrão (padrão: 100) |
| case_sensitive | booleano | Não | Se a busca diferencia maiúsculas de minúsculas (padrão: false) |
| path | string | Não | Diretório base para buscar (padrão: ".") |
Retornos: Linhas correspondentes agrupadas por arquivo com números de linha, ordenadas por tempo de modificação do arquivo com os arquivos mais recentes primeiro.
Esta ferramenta usa ripgrep quando disponível para desempenho ideal, com uma implementação de fallback em Python. É ideal para encontrar padrões de código específicos como declarações de funções, imports, usos de variáveis ou tratamento de erros.
Informações do Sistema
| Ferramenta | Parâmetros | Retornos |
|---|---|---|
| get_system_info | nenhum | Detalhes abrangentes do 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"
}
}
Fornece informações essenciais do sistema em um formato limpo e legível.
Ferramentas de Contexto de Tela e Imagem
get_active_apps
Retorna uma lista de aplicativos atualmente ativos no sistema do usuário.
{
"with_details": true
}
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| with_details | booleano | Não | Se deve incluir detalhes adicionais sobre cada aplicativo (padrão: false) |
Retornos:
{
"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 ferramenta fornece contexto valioso sobre os aplicativos atualmente em execução no sistema do usuário, o que pode ajudar a fornecer assistência mais relevante.
get_available_windows
Retorna informações detalhadas sobre todas as janelas disponíveis atualmente exibidas na tela do usuário.
{}
Retornos:
{
"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 ferramenta ajuda a entender o que está visível na tela do usuário e pode ser usada para assistência com consciência de contexto.
capture_screenshot
Captura uma captura de tela da tela do usuário ou de uma janela específica.
{
"output_path": "screenshots/capture.png",
"capture_mode": {
"type": "named_window",
"window_name": "Visual Studio Code"
}
}
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| output_path | string | Não | Caminho onde a captura de tela deve ser salva (padrão: caminho gerado) |
| capture_mode | objeto | Não | Especifica o que capturar |
| capture_mode.type | string | Não | Tipo de captura de tela: 'full', 'active_window' ou 'named_window' (padrão: 'full') |
| capture_mode.window_name | string | Não | Nome da janela a capturar (obrigatório quando o tipo é 'named_window') |
Retornos:
{
"success": true,
"path": "/path/to/screenshots/capture.png"
}
Esta ferramenta captura capturas de tela para visualização, depuração ou assistência com consciência de contexto.
read_image_file
Lê um arquivo de imagem do sistema de arquivos e retorna seu conteúdo como uma string codificada em base64.
{
"path": "images/logo.png"
}
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| path | string | Sim | Caminho para o arquivo de imagem a ser lido |
| max_size | inteiro | Não | Tamanho máximo do arquivo em bytes (padrão: 100MB) |
Retornos: Dados de imagem codificados em base64 que podem ser exibidos ou processados.
Esta ferramenta suporta formatos de imagem comuns como PNG, JPEG, GIF e WebP, e redimensiona automaticamente as imagens para visualização ideal.
Ferramentas Web
web_fetch
Busca conteúdo de uma URL e opcionalmente o salva em um arquivo.
{
"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 | Obrigatório | Descrição |
|---|---|---|---|
| url | string | Sim | URL para buscar conteúdo (apenas http/https) |
| headers | object | Não | Cabeçalhos HTTP opcionais para incluir na requisição |
| timeout | integer | Não | Tempo máximo de espera pela resposta (padrão: 10s) |
| save_to_file | string | Não | Caminho para salvar o conteúdo da resposta (dentro do diretório permitido) |
| convert_html_to_markdown | boolean | Não | Quando verdadeiro, converte conteúdo HTML para markdown para melhor legibilidade (padrão: true) |
Retorna: Conteúdo da resposta como texto com código de status HTTP e informações de tamanho. Para conteúdo binário, retorna metadados e salva em arquivo se solicitado. Quando convert_html_to_markdown está habilitado, o conteúdo HTML é automaticamente convertido para o formato markdown para melhor legibilidade.
Esta ferramenta pode ser usada para acessar APIs web, buscar documentação ou baixar conteúdo da web respeitando limites de tamanho (máx. 10MB) e restrições de segurança.
web_search
Realiza uma busca web robusta usando múltiplos mecanismos de busca e retorna resultados concisos e relevantes.
{
"query": "latest python release features",
"num_results": 8,
"convert_html_to_markdown": true,
"search_engine": "bing"
}
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| query | string | Sim | A consulta de busca a ser processada. Seja específico para melhores resultados. |
| num_results | integer | Não | Número máximo de resultados de busca a retornar (padrão: 10, máx: 20) |
| convert_html_to_markdown | boolean | Não | Quando verdadeiro, o conteúdo será convertido de HTML para markdown para melhor legibilidade (padrão: true) |
| search_engine | string | Não | Especifica qual mecanismo de busca usar: "auto" (padrão), "bing" ou "duckduckgo" |
Retorna: Uma lista de resultados de busca formatados em markdown, incluindo títulos, URLs e trechos para cada resultado. Os resultados são deduplicados e organizados hierarquicamente para fácil leitura.
Esta ferramenta usa uma abordagem multi-mecanismo que tenta diferentes mecanismos de busca com várias estratégias de análise para garantir resultados confiáveis. Você pode especificar um mecanismo preferido, mas alguns mecanismos podem bloquear acesso automatizado, caso em que a ferramenta recorrerá a mecanismos alternativos quando "auto" estiver selecionado.
Ferramentas Utilitárias
batch_tools
Executa múltiplas invocações de ferramentas em uma única requisição com execução paralela quando possível.
{
"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 | Obrigatório | Descrição |
|---|---|---|---|
| description | string | Sim | Breve descrição da operação em lote |
| sequential | boolean | Não | Se deve executar as ferramentas em sequência (padrão: false) |
| invocations | array | Sim | Lista de invocações de ferramentas a executar |
| invocations[].tool | string | Sim | Nome da ferramenta a invocar |
| invocations[].arguments | object | Sim | Argumentos para a ferramenta especificada |
Retorna: Resultados combinados de todas as invocações de ferramentas, agrupados por ferramenta com status de sucesso/erro para cada uma. Os resultados são apresentados na ordem original de invocação com cabeçalhos de seção claros.
Esta ferramenta fornece execução eficiente de múltiplas operações em uma única requisição. Quando sequential é falso (padrão), as ferramentas são executadas em paralelo para melhor desempenho. Quando sequential é verdadeiro, as ferramentas são executadas em ordem, e se qualquer ferramenta falhar, a execução é interrompida.
IMPORTANTE: Todas as ferramentas no lote executam no mesmo contexto de diretório de trabalho. Se uma ferramenta criar um diretório e uma ferramenta subsequente precisar trabalhar dentro desse diretório, você deve:
- Usar caminhos relativos ao diretório de trabalho atual (ex.: "project/src" em vez de apenas "src"), ou
- Incluir uma invocação explícita de ferramenta para mudar de diretório usando
update_allowed_directory
think
Uma ferramenta para raciocínio complexo e brainstorming sem fazer alterações no repositório.
{
"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 | Obrigatório | Descrição |
|---|---|---|---|
| thought | string | Sim | Seus pensamentos detalhados, análise ou processo de raciocínio |
Retorna: Seus pensamentos formatados como markdown, com uma nota indicando que foi um exercício de pensamento.
Esta ferramenta é útil para pensar através de problemas complexos, debater soluções ou elaborar planos de implementação sem fazer quaisquer alterações reais. É uma ótima maneira de documentar seu processo de raciocínio, avaliar diferentes abordagens ou planejar uma estratégia de múltiplas etapas antes de agir.
Execução de Código
execute_code
Executa código em várias linguagens de programação com medidas de segurança e restrições.
{
"language": "python",
"code": "print('Hello, World!')",
"timeout": 5
}
Linguagens Suportadas:
- Python (python3)
- JavaScript (Node.js)
- Ruby
- PHP
- Go
- Rust
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| language | string | Sim | Linguagem de programação a usar |
| code | string | Sim | Código a executar |
| timeout | integer | Não | Tempo máximo de execução (padrão: 5s) |
Requisitos:
- Os runtimes das respectivas linguagens devem estar instalados
- Os comandos devem estar disponíveis no PATH do sistema
- Permissões adequadas para criação de arquivos temporários
⚠️ Aviso de Segurança: Esta ferramenta executa código arbitrário no seu sistema. Sempre:
- Revise o código cuidadosamente antes da execução
- Entenda o propósito do código e o resultado esperado
- Nunca execute código não confiável
- Esteja ciente dos impactos potenciais no sistema
- Monitore a saída da execução
execute_shell_script
Executa scripts de shell (bash/sh) com medidas de segurança e restrições.
{
"script": "echo \"Current directory:\" && pwd",
"timeout": 300
}
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| script | string | Sim | Script de shell a executar |
| timeout | integer | Não | Tempo máximo de execução (padrão: 300s, máx: 600s) |
Recursos:
- Usa /bin/sh para máxima compatibilidade entre sistemas
- Executa dentro do diretório permitido
- Saída separada para stdout e stderr
- Tratamento adequado de erros e controles de tempo limite
⚠️ Aviso de Segurança: Esta ferramenta executa comandos de shell arbitrários no seu sistema. Sempre:
- Revise o script cuidadosamente antes da execução
- Entenda o propósito do script e o resultado esperado
- Nunca execute scripts não confiáveis
- Esteja ciente dos impactos potenciais no sistema
- Monitore a saída da execução
Ferramentas de Todo
As ferramentas de todo fornecem capacidades de gerenciamento de tarefas sequenciais para fluxos de trabalho de desenvolvimento centrados no workspace. As tarefas são executadas em ordem sem sistemas de prioridade, garantindo progresso estruturado através das fases de desenvolvimento.
todo_read
Lê a lista de todo atual para o workspace.
{}
Retorna:
{
"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
Substitui toda a lista de todo para o fluxo de trabalho de execução sequencial. As tarefas são executadas na ordem do array, construindo sobre o trabalho anterior.
{
"todos": [
{
"id": "task1",
"content": "Set up database schema",
"status": "pending"
},
{
"id": "task2",
"content": "Create API endpoints",
"status": "pending",
"metadata": {
"custom_key": "custom_value"
}
}
]
}
Regras do Fluxo de Trabalho Sequencial:
- Cada todo deve ter um ID único
- Apenas uma tarefa pode estar "in_progress" por vez (execução sequencial)
- As tarefas executam na ordem do array - sem sistema de prioridade
- Campos obrigatórios: id, content, status
- Valores de status: "pending", "in_progress", "completed"
- Centrado no workspace: O gerenciamento de todo é obrigatório para todas as operações do workspace
todo_update
Atualiza um item de todo específico por ID para a progressão do fluxo de trabalho sequencial.
{
"todo_id": "task1",
"updates": {
"status": "in_progress",
"metadata": {
"new_key": "new_value"
}
}
}
Retorna:
{
"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"
}
O sistema de todo mantém listas de tarefas sequenciais separadas para cada workspace, impondo uso obrigatório para todas as operações do workspace. As tarefas executam em ordem, construindo sobre o trabalho anterior sem agendamento baseado em prioridade.
Configuração
Arquivo de configuração: ~/.skydeckai_code/config.json
{
"allowed_directory": "/path/to/workspace"
}
Depuração
Use o MCP Inspector para depuração:
npx @modelcontextprotocol/inspector run
Segurança
- Operações restritas ao diretório permitido configurado
- Prevenção de travessia de caminho
- Preservação de permissões de arquivo
- Tratamento seguro de operações
Recursos Futuros
- Ferramentas GitHub:
- Gerador de Descrição de PR
- Revisão de Código
- Gerenciador de Actions
- Ferramentas Pivotal Tracker:
- Gerador de Story
- Gerenciador de Story
Status de Desenvolvimento
Atualmente em desenvolvimento ativo. Recursos e API podem mudar.
Licença
Apache License 2.0 - veja LICENSE
