Workspace-Qdrant-MCP
Conhecimento de código e metadados com atualização ao vivo, biblioteca de conhecimento, buscas semânticas e vetoriais
Documentação
workspace-qdrant-mcp
Banco de dados vetorial com escopo de projeto para assistentes de IA, fornecendo busca híbrida semântica + por palavras-chave com detecção automática de projeto.
🚧 v0.2.0 reconstrução em andamento
workspace-qdrant-mcp está sendo reconstruído do zero em preparação para v0.2.0 — um modelo de armazenamento unificado, melhor qualidade de busca, monitoramento de arquivos mais confiável e uma arquitetura mais limpa, com migração sem reindexação para usuários existentes. Assim que o design for definido (previsto para início de julho), abriremos o trabalho para contribuidores externos. Veja o Roadmap para o plano geral.
Recursos
- Busca Híbrida - Combina similaridade semântica com correspondência de palavras-chave usando Fusão por Classificação Recíproca
- Detecção de Projeto - Consciência automática de repositório Git e coleções com escopo de projeto
- 7 Ferramentas MCP - search, retrieve, rules, store, grep, list, embedding
- Inteligência de Código - Chunking semântico Tree-sitter + integração LSP para projetos ativos
- Grafo de Código - Grafo de relacionamento com algoritmos (PageRank, detecção de comunidades, centralidade de intermediação)
- CLI de Alto Desempenho - Ferramenta de linha de comando
wqmbaseada em Rust - Daemon em Segundo Plano -
memexdpara monitoramento e processamento contínuo de arquivos
Início Rápido
Pré-requisitos
- Qdrant -
docker run -d -p 6333:6333 -v qdrant_storage:/qdrant/storage qdrant/qdrant - Compilador C - Necessário para compilar as gramáticas Tree-sitter no primeiro uso. As gramáticas Tree-sitter são distribuídas como código-fonte C e compiladas localmente.
- macOS:
xcode-select --install(Xcode Command Line Tools) - Linux:
apt install build-essential(Debian/Ubuntu) oudnf groupinstall "Development Tools"(Fedora) - Windows: Instale Visual Studio Build Tools com a carga de trabalho C++
- macOS:
- Clang/LLVM - Necessário apenas para compilar
memexda partir do código-fonte, para o núcleo C++ do LadybugDB (o backend de grafo padrão). Binários pré-compilados (Homebrew, artefatos de release) não precisam disso.- macOS: As Xcode Command Line Tools incluem Clang (
xcode-select --install) - Linux:
apt install clang libclang-dev(Debian/Ubuntu) oudnf install clang(Fedora) - Alternativa: compilar sem o toolchain C++ usando o backend somente SQLite —
cargo build --no-default-features --features sqlite
- macOS: As Xcode Command Line Tools incluem Clang (
Instalação
Opção 1: Homebrew (Recomendado — macOS e Linux)
brew install ChrisGVE/tap/workspace-qdrant
brew services start workspace-qdrant
Opção 2: Binários Pré-compilados
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/ChrisGVE/workspace-qdrant-mcp/main/scripts/download-install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/ChrisGVE/workspace-qdrant-mcp/main/scripts/download-install.ps1 | iex
Instala wqm, memexd e workspace-qdrant-mcp em ~/.local/bin (Linux/macOS) ou %LOCALAPPDATA%\wqm\bin (Windows).
Opção 3: Compilar a partir do Código-Fonte
git clone https://github.com/ChrisGVE/workspace-qdrant-mcp.git
cd workspace-qdrant-mcp
./install.sh
Consulte a Referência de Instalação para instruções detalhadas e notas específicas da plataforma. Para Windows, consulte o Guia de Instalação para Windows.
Configurar MCP
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"workspace-qdrant-mcp": {
"command": "workspace-qdrant-mcp",
"env": {
"QDRANT_URL": "http://localhost:6333"
}
}
}
}
Claude Code:
claude mcp add workspace-qdrant-mcp -- workspace-qdrant-mcp
Verificar
wqm --version
wqm status health
Integração com CLAUDE.md
Adicione o seguinte ao CLAUDE.md do seu projeto (ou ao seu ~/.claude/CLAUDE.md global) para que o Claude Code use o workspace-qdrant proativamente:
## workspace-qdrant
The `workspace-qdrant` MCP server provides codebase-aware search, a library knowledge base, a scratchpad for accumulated insights, and persistent behavioral rules. The tool schemas are self-describing; these instructions cover *when* and *how* to use them.
### Primary Search and Knowledge Base
**Use `workspace-qdrant` first whenever context is uncertain** — first session on a project, returning after a significant gap, or exploring an unfamiliar subsystem. It is faster and more accurate than walking files manually, and it retrieves findings from prior sessions that would otherwise be lost.
**Three-step protocol:**
1. **Search** with `workspace-qdrant` (`search`, `grep`, `list`, or `retrieve`)
2. **Fall back** to `Grep`, `Glob`, `WebSearch` only when workspace-qdrant is insufficient or unavailable
3. **Store** any new findings, analysis, or design rationale via `store` so they are retrievable in future sessions
When a fresh handover or strong prior context already covers what you need, skip the exploratory search — but always store new findings at the end.
**Collections and their purpose:**
- `projects` — indexed codebase; use `scope="project"` (current project) or `scope="all"` (across all projects)
- `libraries` — external reference docs, API specs, third-party documentation; add via `store` with `collection="libraries"` and search with `includeLibraries=true`
- `scratchpad` — analysis, design rationale, research transcripts, architectural insights; complements session handovers by building a growing, semantically searchable knowledge layer across sessions
- `rules` — persistent behavioral rules; load at session start via `rules` → `action="list"`
**Practical notes:**
- Use `grep` for exact strings or regex; `list` with `format="summary"` to explore project structure
- Store external docs or specs into `libraries` so they are searchable alongside code
- Use the scratchpad to record *why* decisions were made, not just *what* was done — future sessions can retrieve the reasoning
### Sub-Agents
Sub-agents start with only the prompt you give them — they have no session history or handover context. They must always use `workspace-qdrant` first for any code exploration, without exception. Include this verbatim in every agent prompt:
> "You have no prior context about this codebase. Use `workspace-qdrant` as your mandatory first tool for ALL code searches — symbols, functions, architecture, patterns, prior findings. Use `search`, `grep`, `list`, or `retrieve` before touching any file with Read/Grep/Glob. Store any new findings, analysis, or design rationale via `store` (scratchpad for insights, libraries for reference docs) so they persist for future sessions."
### Project Registration
At session start, check whether the current project is registered with workspace-qdrant. If it is not, ask the user whether they want to register it (do not register silently). Once registered, the daemon handles file watching and ingestion automatically — no further action is needed.
### Behavioral Rules
The `rules` tool manages persistent rules that are injected into context across sessions. Rules are **user-initiated only** — add rules when the user explicitly instructs you to, never autonomously. Use `action="list"` at session start to load active rules.
### Issue Reporting
workspace-qdrant is under active development. If you encounter errors, unexpected behavior, or limitations with any workspace-qdrant tool, report them as GitHub issues at https://github.com/ChrisGVE/workspace-qdrant-mcp/issues using the `gh` CLI.
Ferramentas MCP
| Ferramenta | Propósito |
|---|---|
search | Busca híbrida semântica + por palavras-chave em conteúdo indexado |
retrieve | Consulta direta de documentos por ID ou filtro de metadados |
rules | Gerenciar regras comportamentais persistentes |
store | Armazenar conteúdo, registrar projetos, salvar notas |
grep | Busca exata por substring ou regex usando FTS5 |
list | Listar arquivos do projeto e estrutura de pastas |
Consulte a Referência de Ferramentas MCP para parâmetros e exemplos.
Coleções
| Coleção | Propósito | Isolamento |
|---|---|---|
projects | Código e documentação do projeto | Multi-tenant por tenant_id |
libraries | Documentação de referência (livros, artigos, docs) | Multi-tenant por library_name |
rules | Regras comportamentais e preferências | Multi-tenant por project_id |
scratchpad | Armazenamento temporário de trabalho | Por sessão |
Referência da CLI
# Service management
wqm service start # Start background daemon
wqm service status # Check daemon status
wqm status health # System health check
# Search and content
wqm search "query" # Search collections
wqm ingest file path.py # Ingest a file
wqm rules list # List behavioral rules
# Project and library
wqm project list # List registered projects
wqm project watch pause # Pause file watchers
wqm library list # List libraries
wqm tags list # List tags with counts
# Administration
wqm admin collections list # List collections
wqm admin rebuild all # Rebuild all indexes
wqm admin backup create # Backup snapshots
wqm admin stats overview # Search analytics
# Code graph
wqm graph stats --tenant <t> # Node/edge counts
wqm graph query --node-id <id> --tenant <t> --hops 2 # Related nodes
wqm graph impact --symbol <name> --tenant <t> # Impact analysis
wqm graph pagerank --tenant <t> --top-k 20 # PageRank centrality
# Setup
wqm init completions zsh # Shell completions
wqm init man install # Install man pages
wqm init hooks install # Install Claude Code hooks (respects CLAUDE_CONFIG_DIR)
# Queue and monitoring
wqm queue stats # Queue statistics
Consulte a Referência da CLI para documentação completa.
Configuração
Variáveis de Ambiente
| Variável | Padrão | Descrição |
|---|---|---|
QDRANT_URL | http://localhost:6333 | URL do servidor Qdrant |
QDRANT_API_KEY | - | Chave da API (necessária para Qdrant Cloud) |
FASTEMBED_MODEL | all-MiniLM-L6-v2 | Modelo de embedding |
Integração com Claude Code
wqm init hooks lê e escreve o settings.json do Claude Code. A localização é resolvida a partir de:
| Variável | Padrão | Descrição |
|---|---|---|
CLAUDE_CONFIG_DIR | ~/.claude | Diretório de configuração do Claude Code usado por wqm init hooks install/uninstall/status. Defina isso para Claude Code Enterprise ou qualquer instalação não padrão. |
Exemplo — Claude Code Enterprise:
export CLAUDE_CONFIG_DIR=~/.config/claude/claude-ent
wqm init hooks install
Observabilidade
O daemon expõe métricas e traces. Ambos estão desabilitados por padrão.
Prometheus (/metrics, pull)
Habilite via configuração ou variável de ambiente e depois faça o scrape:
# in the daemon config
observability:
telemetry:
prometheus:
enabled: true
port: 9464
bind: 0.0.0.0
ou:
WQM_PROMETHEUS_ENABLED=true WQM_PROMETHEUS_PORT=9464 memexd --foreground
curl http://localhost:9464/metrics | head
A flag de CLI --metrics-port <N> é um atalho que força
enabled=true e substitui a porta. Veja
docs/observability/prometheus-scrape-example.yaml para um
trecho de scrape_configs e
docs/observability/memexd-telemetry-dashboard.json para um painel do Grafana 10.
Traces OTLP (push)
Os spans #[tracing::instrument] no processador de fila, watcher, gRPC,
embedding e caminhos Qdrant são exportados via OTLP/gRPC quando:
observability:
telemetry:
service_name: memexd
otlp:
enabled: true
endpoint: http://collector.example:4317
protocol: grpc # http/protobuf is also recognized (logs a warning)
sample_rate: 0.1
As variáveis de ambiente padrão do OpenTelemetry são respeitadas: OTEL_SERVICE_NAME,
OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL,
OTEL_EXPORTER_OTLP_HEADERS, OTEL_TRACES_SAMPLER_ARG.
A exportação de métricas OTLP não está implementada atualmente — o Prometheus é a superfície canônica de métricas.
Arquitetura
+-----------------+
| Claude/Client |
+--------+--------+
|
+--------v--------+
| MCP Server | (TypeScript)
+--------+--------+
|
+--------------+--------------+
| |
+--------v--------+ +--------v--------+
| Rust Daemon | | Qdrant |
| (memexd) | | Vector Database |
+--------+--------+ +-----------------+
|
+--------v--------+
| File Watcher |
| Code Graph |
| Embeddings |
+-----------------+
O daemon Rust lida com monitoramento de arquivos, geração de embeddings, extração de grafo de código e processamento de fila. Todas as escritas passam pelo daemon para consistência.
Documentação
Guias do usuário:
- Início Rápido — comece a usar em 5 minutos
- Manual do Usuário — guia completo de uso
- Integração com LLM — melhores práticas para Claude
Referência:
- Instalação | Windows
- Referência da CLI — todos os comandos
wqm - Ferramentas MCP — parâmetros e exemplos de ferramentas
- Configuração — todas as opções e padrões
- Arquitetura — visão geral dos componentes
Consulte o Índice de Documentação para especificações, ADRs e recursos para desenvolvedores.
Desenvolvimento
# Rust daemon, CLI, and MCP server (from src/rust/)
# Builds memexd (daemon), wqm (CLI), and workspace-qdrant-mcp (MCP server)
cargo build --release
cargo test
# Graph benchmarks
cargo bench --package workspace-qdrant-core --bench graph_bench
# Binaries output to:
# - target/release/wqm
# - target/release/memexd
Contribuindo
Consulte CONTRIBUTING.md para configuração de desenvolvimento e diretrizes.
Licença
Apache License 2.0 - consulte LICENSE para detalhes.
Inspirado por claude-qdrant-mcp