nREPL MCP Server

Interaja com uma instância Clojure nREPL em execução para avaliação de código, inspeção de namespace e outras utilidades.

Documentação

nREPL MCP Server

Um servidor Model Context Protocol (MCP) projetado para clientes MCP, como Claude Desktop ou CLine no VSCode. Este servidor pode ser usado com qualquer LLM quando utilizado com CLine. Este servidor permite a interação com uma instância nREPL do Clojure em execução, permitindo a avaliação de código Clojure, inspeção de namespaces e outras utilidades via MCP.


Recursos

  • Conectar a um servidor nREPL em execução especificando host e porta.
  • Avaliar código Clojure em um namespace específico ou no atual.
  • Listar namespaces do projeto usando tools.namespace.
  • Obter o status da conexão nREPL, incluindo host, porta e detalhes da sessão.
  • Inspecionar vars públicas em qualquer namespace do Clojure, exibindo metadados como docstrings e valores.

Instalação e Configuração

Instalação no CLine (VSCode) ou Claude Desktop

Para usar este servidor com CLine ou Claude Desktop, siga estes passos:

  1. Abra o CLine no VSCode ou o Claude Desktop.
  2. Navegue até as Configurações do MCP.
  3. Adicione um novo servidor MCP com a seguinte configuração:
    {
      "mcpServers": {
        "nrepl-mcp-server": {
          "command": "npx",
          "args": [
            "nrepl-mcp-server"
          ],
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    
  4. Salve e reinicie o cliente para aplicar as alterações.

Isso permitirá que o cliente se comunique com o servidor nREPL MCP via entrada/saída padrão.

Instalação via npx

Para executar rapidamente o servidor sem clonar o repositório:

npx nrepl-mcp-server

Instalação Manual

  1. Clone o repositório
  2. Instale as dependências
    npm install
    
  3. Compile o projeto (transpila TypeScript para JavaScript)
    npm run build
    
  4. Execute o servidor
    • Modo de Produção: Executa a partir da saída compilada.
      npm start
      
      • Modo de Desenvolvimento: Usa ts-node para alterações ao vivo.
      npm run dev
      

Isso inicia o servidor, escutando em STDIO por solicitações MCP. O cliente MCP iniciará o servidor para você.


Ações

Conectando ao nREPL

Permite estabelecer uma conexão com um servidor nREPL especificando um host e uma porta.

Avaliando Código Clojure

Executa expressões Clojure arbitrárias no namespace padrão ou em um namespace especificado.

Obtendo Informações do Namespace

Lista todos os namespaces no diretório atual do projeto usando tools.namespace.

Inspecionando Vars Públicas

Busca metadados e valores atuais de todas as vars públicas em um namespace especificado.

Obtendo o Status da Conexão nREPL

Fornece detalhes sobre a conexão nREPL atual, incluindo host, porta, ID da sessão e último erro (se houver).


Recursos

nrepl://status

Fornece informações sobre a conexão nREPL atual, incluindo:

  • Host e porta
  • Status da conexão
  • ID da sessão ativa

nrepl://namespaces

Lista todos os namespaces detectados no diretório do projeto.


Contribuição

Contribuições são bem-vindas! Se você tiver sugestões de recursos ou relatórios de bugs, abra uma issue ou pull request.

Licença

Este projeto é licenciado sob a Licença MIT. Sinta-se à vontade para modificar e distribuir de acordo com seus termos.