Skip to main content
Glama
weatherills

MCP-PersonalSearch

by weatherills

MCP-PersonalSearch

Un servidor MCP diseñado para dar al modelo acceso a los mismos datos que el operador tiene disponibles durante sus sesiones interactivas normales.

Actualmente implementado: Fase 1 del PRD del proyecto — el pipeline de documentación local (almacén bruto → extracción de Markdown → fragmentación → índice FTS5 → CLI) para repositorios docs-as-code alojados en GitLab. El servidor MCP en sí (Streamable HTTP, search_docs/get_section/etc.) es la Fase 2 y aún no está construido.

Configuración

python -m venv .venv
.venv/Scripts/activate   # or `source .venv/bin/activate` on Linux/macOS
pip install -e ".[dev]"

Copia config.example.toml a config.toml y apunta [[sources]] a tus repositorios:

[[sources]]
id = "eng-docs"
type = "gitlab_repo"
repo_url = "https://gitlab.example.com/team/docs.git"
branch = "main"
globs = ["docs/**/*.md", "README.md"]

Related MCP server: Gemini Docs MCP Server

Uso

docsrag ingest --source eng-docs        # clone/fetch + index; safe to re-run, skips unchanged files
docsrag search "your question here"     # lexical (BM25) search over the indexed corpus
docsrag reindex                         # rebuild sections/chunks/FTS from the raw store, fully offline
docsrag status                          # per-source document counts and last run
docsrag eval --set eval/questions.json  # recall@k / MRR against a labelled question set (PRD §7.2)

corpus.db (la documentación indexada) e instance.db (registro de consultas, historial de trabajos) se guardan por defecto en data/ y Git los ignora — consulta el PRD §12 para saber por qué el corpus nunca debe compartirse, exportarse ni sincronizarse.

eval/questions.json también está en .gitignore, por la misma razón: las preguntas reales se basan en el contenido que hayas incorporado y pueden contener información interna. Copia eval/questions.example.json a eval/questions.json y complétalo con los pares {"query": ..., "section_id": ...} de tu propio corpus (los valores de section_id provienen de docsrag search).

Pruebas

pytest

Related MCP Connectors

Related MCP Servers