nREPL MCP Server
Inter
Documentación
nREPL MCP Server
Un servidor de Model Context Protocol (MCP) diseñado para clientes MCP, como Claude Desktop o CLine en VSCode. Este servidor puede utilizarse con cualquier LLM cuando se usa con CLine. Este servidor permite la interacción con una instancia de nREPL de Clojure en ejecución, permitiendo la evaluación de código Clojure, inspección de namespaces y otras utilidades a través de MCP.
Características
- Conectar a un servidor nREPL en ejecución especificando host y puerto.
- Evaluar código Clojure en un namespace dado o en el actual.
- Listar namespaces del proyecto usando
tools.namespace. - Obtener el estado de la conexión nREPL, incluyendo host, puerto y detalles de la sesión.
- Inspeccionar vars públicas en cualquier namespace de Clojure, mostrando metadatos como docstrings y valores.
Instalación y Configuración
Instalación en CLine (VSCode) o Claude Desktop
Para usar este servidor con CLine o Claude Desktop, sigue estos pasos:
- Abre CLine en VSCode o Claude Desktop.
- Navega a la Configuración de MCP.
- Añade un nuevo servidor MCP con la siguiente configuración:
{ "mcpServers": { "nrepl-mcp-server": { "command": "npx", "args": [ "nrepl-mcp-server" ], "disabled": false, "autoApprove": [] } } } - Guarda y reinicia el cliente para aplicar los cambios.
Esto permitirá que el cliente se comunique con el servidor nREPL MCP a través de la entrada/salida estándar.
Instalación mediante npx
Para ejecutar rápidamente el servidor sin clonar el repositorio:
npx nrepl-mcp-server
Instalación Manual
- Clonar el repositorio
- Instalar dependencias
npm install - Compilar el proyecto (transpila TypeScript a JavaScript)
npm run build - Ejecutar el servidor
- Modo Producción: Se ejecuta desde la salida compilada.
npm start- Modo Desarrollo: Usa ts-node para cambios en vivo.
npm run dev
- Modo Producción: Se ejecuta desde la salida compilada.
Esto inicia el servidor, escuchando en STDIO para solicitudes MCP. El cliente MCP iniciará el servidor por ti.
Acciones
Conectar a nREPL
Permite establecer una conexión con un servidor nREPL especificando un host y puerto.
Evaluar Código Clojure
Ejecuta expresiones arbitrarias de Clojure en el namespace predeterminado o en un namespace especificado.
Obtener Información del Namespace
Lista todos los namespaces en el directorio del proyecto actual usando tools.namespace.
Inspeccionar Vars Públicas
Obtiene metadatos y valores actuales de todas las vars públicas en un namespace especificado.
Obtener Estado de la Conexión nREPL
Proporciona detalles sobre la conexión nREPL actual, incluyendo host, puerto, ID de sesión y último error (si lo hay).
Recursos
nrepl://status
Proporciona información sobre la conexión nREPL actual, incluyendo:
- Host y puerto
- Estado de la conexión
- ID de sesión activa
nrepl://namespaces
Lista todos los namespaces detectados en el directorio del proyecto.
Contribuciones
¡Las contribuciones son bienvenidas! Si tienes sugerencias de funciones o informes de errores, por favor abre un issue o pull request.
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Siéntete libre de modificarlo y distribuirlo según sus términos.