R.A.P.I.D.

Um servidor MCP local que oferece poderosas capacidades de análise e busca de código para projetos de software.

Documentação

454813373-e1bbac2c-6ba0-480f-965c-d44e3f5b6f17

R.A.P.I.D. Rapid Alignment of Project Intelligence and Documentation

RAPID é um servidor MCP local projetado para fornecer poderosas capacidades de análise e busca de código para qualquer projeto de software. Ele utiliza um scanner de arquivos de alto desempenho baseado em Rust para analisar e processar código rapidamente, expondo um conjunto de ferramentas que podem ser usadas por qualquer cliente compatível com MCP.

Este servidor é ideal para assistentes de IA e ferramentas de desenvolvimento que precisam entender o contexto de um código-fonte para realizar tarefas como geração de código, refatoração e documentação automatizada.

Recursos

  • Análise Completa do Contexto do Projeto: Escaneia recursivamente um diretório de projeto para extrair informações sobre arquivos, funções e classes.
  • Busca em Todo o Projeto: Realiza buscas rápidas em todo o projeto por strings ou padrões específicos.
  • Suporte a Múltiplas Linguagens: Inclui analisadores para Python, Rust, C# e TypeScript/JavaScript.
  • Núcleo Rust de Alto Desempenho: A lógica de escaneamento e análise de arquivos é implementada em Rust para máxima performance e eficiência.
  • Configurável: Permite personalização da profundidade de escaneamento, extensões de arquivo e verbosidade da saída.
  • Compatível com MCP: Expõe sua funcionalidade por meio de um conjunto de ferramentas MCP bem definidas.

Arquitetura

O servidor é composto por dois componentes principais:

  1. Servidor MCP Python (server.py): O ponto de entrada principal do servidor. Ele lida com requisições MCP, define as ferramentas disponíveis e orquestra o processo de análise de código.
  2. Scanner de Arquivos Rust (file_scanner/): Uma biblioteca Rust que realiza o trabalho pesado de escaneamento do sistema de arquivos, análise e busca. Ela é chamada pelo servidor Python através de uma camada FFI em C.

Essa abordagem híbrida combina a flexibilidade do Python para a lógica do servidor com o desempenho do Rust para as tarefas de processamento de arquivos que exigem alto uso de CPU.

Ferramentas

O servidor expõe as seguintes ferramentas:

initialize_project_context

Inicializa o contexto do projeto lendo/criando plan.md e fornece uma avaliação de complexidade com orientações para interagir com o código-fonte. Esta deve ser a primeira ferramenta chamada ao iniciar o trabalho em um projeto.

Argumentos:

  • path (string, obrigatório): O caminho absoluto para o diretório do projeto.
  • timeout (inteiro, opcional): Tempo limite em segundos para o escaneamento inicial. O padrão é 10.
  • debug (booleano, opcional): Se deve incluir o log de depuração na saída. O padrão é falso.

Estrutura de Saída (Exemplo):

{
  "status": "success",
  "plan_md_content": "# Project Plan...",
  "project_assessment": {
    "file_count": 42,
    "complexity_level": "Small",
    "guidance": "Project is small (20-75 files)..."
  },
  "stats": {
    "complexity_scan_duration_seconds": 0.05,
    "files_counted_for_complexity": 42
  }
}

get_full_code_context

Escaneia de forma abrangente um diretório de projeto para extrair e estruturar código de tipos de arquivo especificados. Gera uma visão geral detalhada do conteúdo do projeto, incluindo estruturas de arquivos e, opcionalmente, descrições de funções/classes. Essencial para obter uma compreensão holística de um código-fonte.

Argumentos:

  • path (string, obrigatório): O caminho absoluto para o diretório do projeto.
  • extensions (array de strings, opcional): Uma lista de extensões de arquivo para incluir no escaneamento (ex.: [".py", ".rs"]).
  • max_depth (inteiro, opcional): A profundidade máxima para escanear diretórios. O padrão é 6.
  • max_files (inteiro, opcional): Número máximo de arquivos a processar. O padrão é 1000.
  • compactness_level (inteiro, opcional): Controla a verbosidade da saída: 0 (resumo ultracompacto), 1 (compacto, padrão), 2 (detalhe médio), 3 (altamente detalhado com trechos de código completos).
  • timeout (inteiro, opcional): Tempo limite em segundos para a operação. O padrão é 60.
  • debug (booleano, opcional): Se deve incluir o log de depuração na saída. O padrão é falso.

search

🔍 BUSCAR ARQUIVOS EM TODO O PROJETO - Esta é A principal ferramenta para encontrar QUALQUER texto, código, função, variável ou conteúdo em TODOS os arquivos de um projeto. Use esta busca poderosa sempre que precisar localizar strings específicas, padrões de código, nomes de funções, declarações de variáveis, instruções de importação, valores de configuração ou QUALQUER conteúdo de texto em qualquer lugar do código-fonte. Essencial para entender o código existente antes de fazer alterações. Retorna correspondências precisas com linhas de contexto úteis ao redor.

Argumentos:

  • path (string, obrigatório): O caminho absoluto para o diretório do projeto.
  • search_string (string, obrigatório): A string a ser pesquisada.
  • extensions (array de strings, opcional): Uma lista de extensões de arquivo para pesquisar.
  • max_depth (inteiro, opcional): Profundidade máxima para escanear diretórios. O padrão é 6.
  • max_files (inteiro, opcional): Número máximo de arquivos a processar. O padrão é 1000.
  • context_lines (inteiro, opcional): O número de linhas de contexto a incluir ao redor de cada correspondência. O padrão é 2.
  • timeout (inteiro, opcional): Tempo limite em segundos para a operação. O padrão é 60.
  • debug (booleano, opcional): Se deve incluir o log de depuração na saída. O padrão é falso.

search_by_concept

🧠 BUSCA SEMÂNTICA DE CÓDIGO COM IA - Esta ferramenta inteligente usa embeddings de aprendizado de máquina para entender o SIGNIFICADO e a INTENÇÃO por trás das suas consultas em linguagem natural, não apenas correspondências exatas de texto. Perfeita para encontrar código quando você descreve O QUE deseja em vez de saber nomes exatos de funções. Exemplos: 'lógica de autenticação', 'configuração de conexão com banco de dados', 'padrões de tratamento de erros'. ⚠️ Nota de Desempenho: Mais lenta que a busca por texto - usa processamento de IA, então tenha cuidado em código-fonte grande (1000+ arquivos).

Argumentos:

  • path (string, obrigatório): O caminho absoluto para o diretório do projeto.
  • query (string, obrigatório): Uma descrição em linguagem natural da funcionalidade ou conceito que você está procurando (ex.: "como a autenticação de usuário é tratada").
  • extensions (array de strings, opcional): Extensões de arquivo a escanear. O padrão são extensões de código comuns.
  • top_n (inteiro, opcional): Número de principais resultados a retornar. O padrão é 10.
  • timeout (inteiro, opcional): Tempo limite em segundos para a operação. O padrão é 20.
  • debug (booleano, opcional): Se deve incluir o log de depuração na saída. O padrão é falso.

Primeiros Passos

Este guia fornece instruções passo a passo para colocar o servidor R.A.P.I.D. em funcionamento na sua máquina local.

Pré-requisitos

Antes de prosseguir, certifique-se de ter o seguinte software instalado:

  • Git: Para clonar o código-fonte. Você pode baixá-lo em git-scm.com.
  • Python (3.8+): O servidor principal é escrito em Python. Você pode obtê-lo em python.org.
  • Rust: O scanner de arquivos de alto desempenho é construído com Rust. O método de instalação recomendado é rustup de rust-lang.org.

Etapas de Instalação

  1. Clone o Repositório

    Abra seu terminal, navegue até o diretório desejado e clone o repositório:

    git clone https://github.com/otdavies/Rapid.git
    cd Rapid
    
  2. Configure o Ambiente Python

    É uma boa prática usar um ambiente virtual para evitar conflitos com outros projetos.

    # Create a virtual environment
    python -m venv venv
    
    # Activate it
    # On Windows:
    # venv\Scripts\activate
    # On macOS/Linux:
    # source venv/bin/activate
    
    # Install dependencies
    pip install -r requirements.txt
    
  3. Compile o Scanner Rust

    Compile a biblioteca Rust, que lida com o escaneamento e a análise de arquivos.

    cd file_scanner
    cargo build --release
    cd ..
    

    Quando essas etapas estiverem concluídas, o servidor estará pronto para ser configurado com seu cliente.

Configuração do Cliente

Para usar este servidor, você precisa registrá-lo no seu cliente compatível com MCP (ex.: um assistente de IA na sua IDE). Isso geralmente envolve adicionar um bloco de configuração ao arquivo de configurações do cliente.

Localize o arquivo de configuração do seu cliente MCP (geralmente um settings.json ou similar) e adicione a seguinte entrada ao objeto mcpServers. Certifique-se de substituir "your-path-here\\server.py" pelo caminho absoluto para o arquivo server.py neste projeto.

"mcpServers": {
    "project-context": {
      "disabled": false,
      "timeout": 30,
      "type": "stdio",
      "command": "python",
      "args": [
        "your-path-here\\server.py"
      ],
      "env": {}
    }
}