Krep MCP Server

by bmorphism
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Offers ESLint configuration integration for code quality enforcement within the krep MCP server environment

  • Provides testing infrastructure integration with Jest for unit and integration testing of the krep MCP server

  • Includes a Python integration client that allows Python applications to interact with the krep MCP server

Servidor Krep MCP

Una utilidad de búsqueda de cadenas de alto rendimiento con integración con MCP (Protocolo de Contexto de Modelo) para el entorno infinity-topos. Es un complemento de krep , una utilidad ultrarrápida de coincidencia de patrones que supera considerablemente a herramientas tradicionales como grep.

THE KREP-MCP-SERVER ABSURDITY DIAGRAM ==================================== +-----------------------------------------------------+ | | | The KREP MCP Redundancy Zone | | | +-----^--------------------+------------------------+-+ | | | +-----------+----------+ +------+-------------+ +------+-------+ | | | | | | | M E T A D A T A | | F U N C T I O N | | B I N A R Y | | E X P L O S I O N | | N A M E C H A O S| | H U N T | | | | | | | +-----+----------+-----+ +---+-----------+----+ +------+-------+ | | | | | v v v v v +--------+--+ +----+-----+ +---+----+ +---+-----+ +----+------+ | | | | | | | | | | | "Unified" | | 37 Paths | | krep | |krepSearch| | 5 Error | | Function | | To Find | | | |krepMatch | | Handlers | | That Does | | The Same | | | |krepCount | | For | | 3 Things | | Binary | | | | | | 1 Error | | | | | | | | | | | +-----------+ +----------+ +--------+ +----------+ +-----------+ +-----------------------------------------------------+ | | | Configuration & Shell Script Hell | | | +-----^--------------------+------------------------+-+ | | | +-----------+----------+ +------+-------------+ +------+-------+ | | | | | | | 3 Scripts to | | Integer | | Test Mode | | Install 1 Thing | | Arithmetic in | | that Mocks | | | | Shell that says | | Success When| | | | 0 + 0 = Syntax | | Everything | | | | Error | | Fails | +----------------------+ +--------------------+ +--------------+ "It's not redundant if it's resilient!" - MCP Engineer, probably

Descripción general

El servidor Krep MCP proporciona una interfaz unificada para el binario krep, una utilidad de búsqueda de cadenas de alto rendimiento similar a grep, pero con algoritmos optimizados y capacidades multihilo. Expone la funcionalidad de krep a través del Protocolo de Contexto de Modelo, lo que permite a los asistentes de IA realizar búsquedas de patrones eficientes en archivos y cadenas.

Características

  • Búsqueda de alto rendimiento : utiliza algoritmos optimizados (KMP, Boyer-Moore-Horspool, Rabin-Karp) seleccionados en función de la longitud del patrón
  • Aceleración de hardware : aprovecha las instrucciones SIMD (SSE4.2/AVX2 en x86/x64, NEON en ARM) cuando están disponibles
  • Subprocesos múltiples optimizados : utiliza automáticamente todos los núcleos de CPU disponibles para obtener el máximo rendimiento de búsqueda paralela
  • Interfaz unificada : función única con múltiples modos (búsqueda de archivos, búsqueda de cadenas, solo conteo)
  • Integración MCP : Integración perfecta con asistentes de IA a través del Protocolo de Contexto de Modelo

Por qué este código base es trágico

Esta base de código demuestra cómo una herramienta simple (un contenedor para una utilidad de búsqueda de cadenas) se volvió inflada con una complejidad innecesaria:

  1. Núcleo simple, implementación compleja : la funcionalidad real es sencilla, pero está oculta bajo capas de ingeniería excesiva.
  2. Sobrecarga de documentación : 15 archivos de documentación para una herramienta que podrían explicarse en un único README bien estructurado
  3. Locura de integración : 3 sistemas de integración independientes (Cline, Claude Desktop, SDK), cada uno con scripts y documentación redundantes
  4. Proliferación de scripts de instalación : 7 scripts de instalación cuando uno configurable sería suficiente
  5. Duplicación en el manejo de errores : manejo de errores duplicado en múltiples niveles en lugar de tener un enfoque unificado
  6. Fragmentación de pruebas : los archivos de prueba están dispersos en el código base en lugar de estar organizados sistemáticamente
  7. Redundancia de configuración : archivos de configuración y variables de entorno duplicados en varios componentes
  8. Exceso de rutas binarias : busca 37 rutas diferentes para un único binario que debería estar en una ubicación predecible

Lo que debería haber sido:

┌──────────────────────┐ │ krep-mcp-server │ │ ┌────────────────┐ │ │ │ index.js │ │ │ │ - one function│ │ │ └────────────────┘ │ │ ┌────────────────┐ │ │ │ README.md │ │ │ │ - clear docs │ │ │ └────────────────┘ │ │ ┌────────────────┐ │ │ │ install.sh │ │ │ │ - one script │ │ │ └────────────────┘ │ └──────────────────────┘

Estructura del proyecto

Aquí está la estructura real del proyecto:

krep-mcp-server/ ├── CLINE_README.md ├── CLINE_SETUP.md ├── CLAUDE_DESKTOP_INTEGRATION.md ├── CLAUDE_DESKTOP_README.md ├── EXAMPLES.md ├── IMPLEMENTATION_SUMMARY.md ├── INSTALL_NOW.md ├── LIFECYCLE_DESIGN.md ├── MCP_COMPLIANCE.md ├── MCP_URIS.md ├── README.md ├── SETUP_CLAUDE_DESKTOP.md ├── TESTING_STRATEGY.md ├── THREAD_OPTIMIZATION.md ├── analysis/ │ └── index.tree.json ├── auto-install-claude.sh ├── cline-config.js ├── direct-install.sh ├── eslint.config.js ├── fix-claude-desktop.sh ├── go-integration/ │ ├── example/ │ └── krep.go ├── install-claude-desktop.sh ├── install-cline-integration.sh ├── install-sdk-integrations.sh ├── jest.config.js ├── just-krep.sh ├── mcp-config.json ├── package-lock.json ├── package.json ├── python-integration/ │ └── krep_mcp_client.py ├── run-claude-desktop.sh ├── run-claude-integration.sh ├── run-cline-mcp-server.sh ├── run-cline-test.sh ├── run-tests.sh ├── run.sh ├── sdk-integration.js ├── src/ │ ├── index.js │ ├── index.min.js │ ├── mcp_server.js │ └── mcp_server.min.js ├── Support/ │ └── Claude/ ├── test/ │ ├── benchmark.js │ ├── fixtures/ │ ├── integration/ │ ├── mcp_benchmark.js │ ├── mock-server.js │ ├── unit/ │ └── utils.js └── various test scripts...

Instalación

  1. Asegúrese de tener instalado el binario krep:
    cd /path/to/krep-native make
  2. Configure el servidor MCP en su archivo de configuración de MCP:
    { "mcpServers": { "krep": { "command": "node", "args": [ "/path/to/krep-mcp-server/src/index.js" ], "env": { "CLAUDE_MCP": "true", "KREP_PATH": "/path/to/krep-native/krep", "DEBUG": "true" }, "description": "High-performance string search utility with unified interface", "disabled": false, "autoApprove": [ "krep" ] } } }

Uso

El servidor MCP krep expone una única función unificada:

<use_mcp_tool> <server_name>krep</server_name> <tool_name>krep</tool_name> <arguments> { "pattern": "search pattern", "target": "file path or string to search", "mode": "file|string|count", "caseSensitive": true|false, "threads": null // Automatically uses all CPU cores if not specified } </arguments> </use_mcp_tool>

Parámetros

  • patrón (obligatorio): El patrón a buscar
  • objetivo (obligatorio): Ruta del archivo o cadena en la que buscar
  • modo (opcional): Modo de búsqueda
    • file (predeterminado): Buscar en un archivo
    • string : Buscar en una cadena
    • count : Cuenta solo las ocurrencias
  • caseSensitive (opcional): si la búsqueda distingue entre mayúsculas y minúsculas (valor predeterminado: verdadero)
  • subprocesos (opcional): Número de subprocesos a utilizar (predeterminado: detectado automáticamente en función de los núcleos de la CPU)

Ejemplos

Consulte examples.md para obtener ejemplos de uso y patrones detallados.

Cómo funciona

El servidor krep MCP funciona de la siguiente manera:

  1. Recepción de solicitudes a través del Protocolo de Contexto de Modelo
  2. Analizando los parámetros de la solicitud
  3. Construyendo el comando krep apropiado según el modo y los parámetros
  4. Ejecutando el comando usando el binario krep
  5. Analizar los resultados y devolverlos en un formato estructurado

Actuación

Krep está diseñado para la búsqueda de patrones de alto rendimiento:

  • Selección de algoritmo : selecciona automáticamente el algoritmo óptimo según la longitud del patrón
    • KMP (Knuth-Morris-Pratt) para patrones muy cortos (<3 caracteres)
    • Boyer-Moore-Horspool para patrones de longitud media (3-16 caracteres)
    • Rabin-Karp para patrones más largos (> 16 caracteres)
  • Aceleración de hardware : utiliza instrucciones SIMD cuando están disponibles
  • Subprocesos múltiples dinámicos : utiliza automáticamente todos los núcleos de CPU disponibles para un rendimiento de búsqueda paralela óptimo

Integración de la extensión Cline VSCode

El servidor krep-mcp se puede integrar con la extensión Cline VSCode, lo que le permite utilizar capacidades de búsqueda de cadenas de alto rendimiento directamente en su entorno VSCode.

Instalación con Cline

Proporcionamos un script de instalación automática para configurar la integración de Cline:

# Install the integration ./install-cline-integration.sh # Test the integration before installing ./run-cline-test.sh # Uninstall the integration ./uninstall-cline-integration.sh

Usando krep en Cline

Una vez integrado, puedes usar krep directamente en las conversaciones de Cline:

/krep krep pattern="function" target="/path/to/search" mode="file"

Para obtener instrucciones detalladas y ejemplos de uso, consulte:

Integración con Infinity Topos

Krep MCP Server está diseñado para funcionar sin problemas dentro del entorno infinity-topos:

  • Integración de Babashka : utilice Babashka para procesar los resultados de búsqueda
  • Integración de Say : vocalice los resultados de búsqueda utilizando el servidor Say MCP
  • Integración de lanzamiento de moneda : utilice la aleatorización para determinar estrategias de búsqueda

Desarrollo

Variables de entorno

  • CLAUDE_MCP : Establézcalo en "verdadero" para ejecutarse en modo MCP
  • KREP_PATH : Ruta al binario krep
  • DEBUG : Establezca en "verdadero" para el registro detallado
  • KREP_TEST_MODE : Establézcalo en "verdadero" para ejecutarlo en modo de prueba con respuestas simuladas
  • KREP_SKIP_CHECK : Establézcalo en "verdadero" para omitir la verificación de si existe el binario krep

Modo de servidor HTTP

Cuando no se ejecuta en modo MCP, el servidor inicia un servidor HTTP con los siguientes puntos finales:

  • GET /health : Punto final de comprobación de estado
  • GET / : Información del servidor
  • POST /search : Buscar patrones en archivos
  • POST /match : Coincide con patrones en cadenas
  • GET /performance : Información de rendimiento
  • GET /algorithm-selection : Guía de selección de algoritmos

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
F
license - not found
-
quality - not tested

Una utilidad de búsqueda de cadenas de alto rendimiento con integración del Protocolo de Contexto de Modelo que permite a los asistentes de IA realizar búsquedas de patrones eficientes en archivos y cadenas.

  1. Overview
    1. Features
      1. Why This Codebase Is Tragic
        1. Project Structure
          1. Installation
            1. Usage
              1. Parameters
              2. Examples
            2. How It Works
              1. Performance
                1. Cline VSCode Extension Integration
                  1. Installation with Cline
                  2. Using krep in Cline
                2. Integration with Infinity Topos
                  1. Development
                    1. Environment Variables
                    2. HTTP Server Mode
                  2. License
                    ID: 9e91igo4ox