O que quarry faz?
Pesquisa semântica local para agentes de IA. Mais de 20 formatos de documentos, busca híbrida, memória de agente, zero dependências de nuvem. Servidor MCP + CLI.
Visão Geral
O Quarry é um mecanismo de pesquisa semântica local que permite que agentes de IA (como Claude Code, Cursor, Codex, etc.) pesquisem seus documentos locais usando busca semântica por similaridade, combinada com correspondência lexical tradicional (BM25). Ele suporta mais de 20 formatos de documentos, incluindo PDF, Markdown, imagens com OCR, áudio com transcrição e muito mais.
Funcionalidades
- Pesquisa Semântica Local: Execute buscas por similaridade semântica em seus documentos, com zero dependências de nuvem.
- Busca Híbrida: Combina busca vetorial (embeddings) com busca lexical (BM25) para obter os melhores resultados.
- Mais de 20 Formatos: Suporta PDF, Markdown, HTML, DOCX, imagens (OCR), áudio (transcrição) e muito mais.
- Servidor MCP: Integra-se perfeitamente com agentes de IA via Model Context Protocol.
- Interface CLI: Ferramenta de linha de comando para indexação e busca.
- Memória de Agente: Armazenamento persistente de memória para agentes de IA.
- Atualizações Incrementais: Índices são atualizados incrementalmente para eficiência.
- Processamento Local: Tudo roda localmente no seu computador, sem necessidade de API keys ou serviços em nuvem.
Suporte a Formatos
O Quarry suporta mais de 20 formatos de documentos através de pipelines de extração:
| Categoria | Formatos |
|---|---|
| Documentos | PDF, DOCX, HTML, Markdown, LaTeX, RST, Org-mode, EPUB, MOBI, FB2, CSV, TSV |
| Código | Python, JavaScript, TypeScript, Java, C++, Go, Rust, Ruby, PHP, Shell |
| Mídia | Imagens (OCR via Tesseract), Áudio (transcrição via Whisper) |
| Dados | JSON, YAML, XML, SQLite |
| Outros | Email (.eml), Apresentações (via conversão para PDF) |
Instalação
cargo install quarry
Ou baixe o binário pré-compilado da página de releases.
Início Rápido
1. Indexar seus Documentos
quarry index /caminho/para/seus/documentos
2. Buscar
quarry search "sua consulta de pesquisa"
3. Iniciar Servidor MCP
quarry mcp
Integração com Agentes de IA
Claude Code
Adicione o Quarry ao seu projeto Claude Code:
{
"mcpServers": {
"quarry": {
"command": "quarry",
"args": ["mcp"]
}
}
}
Cursor
No Cursor, configure uma nova ferramenta MCP apontando para o servidor Quarry.
Outros Agentes
Qualquer agente compatível com MCP pode se conectar ao Quarry.
Ferramentas MCP
O servidor MCP do Quarry expõe as seguintes ferramentas:
semantic_search(query, top_k=10, min_score=0.0)
Executa uma busca semântica no índice. Retorna documentos ordenados por relevância.
query(string): Sua consulta de busca.top_k(opcional, default 10): Número de resultados a retornar.min_score(opcional, default 0.0): Pontuação mínima de similaridade.
local_agent_memory(key=None)
Recupera memória do agente. Se nenhuma chave for fornecida, retorna todas as memórias.
update_agent_memory(key, value)
Atualiza ou cria uma nova memória do agente.
delete_agent_memory(key)
Exclui uma memória do agente.
get_statistics()
Retorna estatísticas do índice, como número total de documentos e tokens.
update_index(path=None)
Atualiza o índice incrementalmente. Se nenhum caminho for fornecido, reindexa todo o diretório configurado.
Exemplos de Uso
Busca Semântica via CLI
quarry search "Como implementar cache em Rust?" --top-k 5
Memória de Agente via CLI
quarry memory set "projeto_atual" "refatorando a pipeline de busca"
quarry memory get "projeto_atual"
quarry memory list
Uso programático (Rust)
use quarry::Quarry;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut quarry = Quarry::new("/caminho/para/indice")?;
let resultados = quarry.search("sua consulta").await?;
println!("{:?}", resultados);
Ok(())
}
Configuração
O Quarry pode ser configurado via variáveis de ambiente ou arquivo de configuração:
| Variável | Descrição | Padrão |
|---|---|---|
QUARRY_INDEX_PATH | Caminho para o diretório do índice | ~/.local/share/quarry |
QUARRY_MODEL | Modelo de embedding a usar | all-MiniLM-L6-v2 |
QUARRY_DEVICE | Dispositivo para inferência (cpu, cuda, mps) | cpu |
QUARRY_LOG_LEVEL | Nível de log | info |
Licença
MIT
Contribuição
Contribuições são bem-vindas! Veja CONTRIBUTING.md para diretrizes.