R.A.P.I.D.

Un servidor MCP local que proporciona potentes capacidades de análisis y búsqueda de código para proyectos de software.

Documentación

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

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

RAPID es un servidor MCP local diseñado para proporcionar potentes capacidades de análisis y búsqueda de código para cualquier proyecto de software. Aprovecha un escáner de archivos de alto rendimiento basado en Rust para analizar y examinar código rápidamente, exponiendo un conjunto de herramientas que pueden ser utilizadas por cualquier cliente compatible con MCP.

Este servidor es ideal para asistentes de IA y herramientas de desarrollo que necesitan comprender el contexto de una base de código para realizar tareas como generación de código, refactorización y documentación automatizada.

Características

  • Análisis Completo del Contexto del Proyecto: Escanea recursivamente un directorio de proyecto para extraer información sobre archivos, funciones y clases.
  • Búsqueda en Todo el Proyecto: Realiza búsquedas rápidas en todo el proyecto de cadenas o patrones específicos.
  • Soporte Multi-Lenguaje: Incluye analizadores para Python, Rust, C# y TypeScript/JavaScript.
  • Núcleo Rust de Alto Rendimiento: La lógica de escaneo y análisis de archivos está implementada en Rust para máxima eficiencia y rendimiento.
  • Configurable: Permite personalizar la profundidad de escaneo, las extensiones de archivo y la verbosidad de la salida.
  • Compatible con MCP: Expone su funcionalidad a través de un conjunto de herramientas MCP bien definidas.

Arquitectura

El servidor se compone de dos componentes principales:

  1. Servidor MCP Python (server.py): El punto de entrada principal del servidor. Maneja las solicitudes MCP, define las herramientas disponibles y orquesta el proceso de análisis de código.
  2. Escáner de Archivos Rust (file_scanner/): Una biblioteca Rust que realiza el trabajo pesado de escaneo del sistema de archivos, análisis y búsqueda. Es llamado por el servidor Python a través de una capa FFI en C.

Este enfoque híbrido combina la flexibilidad de Python para la lógica del servidor con el rendimiento de Rust para las tareas de procesamiento de archivos intensivas en CPU.

Herramientas

El servidor expone las siguientes herramientas:

initialize_project_context

Inicializa el contexto del proyecto leyendo/creando plan.md y proporciona una evaluación de complejidad con orientación para interactuar con la base de código. Esta debería ser la primera herramienta llamada al comenzar a trabajar en un proyecto.

Argumentos:

  • path (cadena, obligatorio): La ruta absoluta al directorio del proyecto.
  • timeout (entero, opcional): Tiempo de espera en segundos para el escaneo inicial. El valor predeterminado es 10.
  • debug (booleano, opcional): Si se debe incluir el registro de depuración en la salida. El valor predeterminado es falso.

Estructura de Salida (Ejemplo):

{
  "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

Escanea exhaustivamente un directorio de proyecto para extraer y estructurar código de tipos de archivo específicos. Genera una descripción detallada del contenido del proyecto, incluyendo estructuras de archivos y, opcionalmente, descripciones de funciones/clases. Esencial para obtener una comprensión holística de una base de código.

Argumentos:

  • path (cadena, obligatorio): La ruta absoluta al directorio del proyecto.
  • extensions (matriz de cadenas, opcional): Una lista de extensiones de archivo a incluir en el escaneo (por ejemplo, [".py", ".rs"]).
  • max_depth (entero, opcional): La profundidad máxima para escanear directorios. El valor predeterminado es 6.
  • max_files (entero, opcional): Número máximo de archivos a procesar. El valor predeterminado es 1000.
  • compactness_level (entero, opcional): Controla la verbosidad de la salida: 0 (resumen ultracompacto), 1 (compacto, predeterminado), 2 (detalle medio), 3 (altamente detallado con fragmentos de código completos).
  • timeout (entero, opcional): Tiempo de espera en segundos para la operación. El valor predeterminado es 60.
  • debug (booleano, opcional): Si se debe incluir el registro de depuración en la salida. El valor predeterminado es falso.

search

🔍 BUSCAR ARCHIVOS EN TODO EL PROYECTO - Esta es LA herramienta principal para encontrar CUALQUIER texto, código, funciones, variables o contenido en TODOS los archivos de un proyecto. Usa esta potente búsqueda siempre que necesites localizar cadenas específicas, patrones de código, nombres de funciones, declaraciones de variables, declaraciones de importación, valores de configuración o CUALQUIER contenido de texto en cualquier parte de la base de código. Esencial para comprender el código existente antes de realizar cambios. Devuelve coincidencias precisas con líneas de contexto útiles alrededor.

Argumentos:

  • path (cadena, obligatorio): La ruta absoluta al directorio del proyecto.
  • search_string (cadena, obligatorio): La cadena a buscar.
  • extensions (matriz de cadenas, opcional): Una lista de extensiones de archivo en las que buscar.
  • max_depth (entero, opcional): Profundidad máxima para escanear directorios. El valor predeterminado es 6.
  • max_files (entero, opcional): Número máximo de archivos a procesar. El valor predeterminado es 1000.
  • context_lines (entero, opcional): El número de líneas de contexto a incluir alrededor de cada coincidencia. El valor predeterminado es 2.
  • timeout (entero, opcional): Tiempo de espera en segundos para la operación. El valor predeterminado es 60.
  • debug (booleano, opcional): Si se debe incluir el registro de depuración en la salida. El valor predeterminado es falso.

search_by_concept

🧠 BÚSQUEDA SEMÁNTICA DE CÓDIGO CON IA - Esta herramienta inteligente utiliza incrustaciones de aprendizaje automático para comprender el SIGNIFICADO y la INTENCIÓN detrás de tus consultas en lenguaje natural, no solo coincidencias de texto exactas. Perfecta para encontrar código cuando describes QUÉ quieres en lugar de conocer nombres de funciones exactos. Ejemplos: 'lógica de autenticación', 'configuración de conexión a base de datos', 'patrones de manejo de errores'. ⚠️ Nota de Rendimiento: Más lenta que la búsqueda de texto - utiliza procesamiento de IA, así que ten cuidado en bases de código grandes (1000+ archivos).

Argumentos:

  • path (cadena, obligatorio): La ruta absoluta al directorio del proyecto.
  • query (cadena, obligatorio): Una descripción en lenguaje natural de la funcionalidad o concepto que estás buscando (por ejemplo, "cómo se maneja la autenticación de usuarios").
  • extensions (matriz de cadenas, opcional): Extensiones de archivo a escanear. El valor predeterminado son extensiones de código comunes.
  • top_n (entero, opcional): Número de resultados principales a devolver. El valor predeterminado es 10.
  • timeout (entero, opcional): Tiempo de espera en segundos para la operación. El valor predeterminado es 20.
  • debug (booleano, opcional): Si se debe incluir el registro de depuración en la salida. El valor predeterminado es falso.

Primeros Pasos

Esta guía proporciona instrucciones paso a paso para poner en marcha el servidor R.A.P.I.D. en tu máquina local.

Requisitos Previos

Antes de continuar, asegúrate de tener instalado el siguiente software:

  • Git: Para clonar el código fuente. Puedes descargarlo desde git-scm.com.
  • Python (3.8+): El servidor principal está escrito en Python. Puedes obtenerlo desde python.org.
  • Rust: El escáner de archivos de alto rendimiento está construido con Rust. El método de instalación recomendado es rustup desde rust-lang.org.

Pasos de Instalación

  1. Clonar el Repositorio

    Abre tu terminal, navega al directorio deseado y clona el repositorio:

    git clone https://github.com/otdavies/Rapid.git
    cd Rapid
    
  2. Configurar el Entorno Python

    Es una buena práctica usar un entorno virtual para evitar conflictos con otros proyectos.

    # 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. Compilar el Escáner Rust

    Compila la biblioteca Rust, que maneja el escaneo y análisis de archivos.

    cd file_scanner
    cargo build --release
    cd ..
    

    Una vez que estos pasos estén completos, el servidor está listo para ser configurado con tu cliente.

Configuración del Cliente

Para usar este servidor, debes registrarlo con tu cliente compatible con MCP (por ejemplo, un asistente de IA en tu IDE). Esto típicamente implica agregar un bloque de configuración al archivo de configuración del cliente.

Localiza el archivo de configuración de tu cliente MCP (a menudo un settings.json o similar) y agrega la siguiente entrada al objeto mcpServers. Asegúrate de reemplazar "your-path-here\\server.py" con la ruta absoluta al archivo server.py en este proyecto.

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