Skip to main content
Glama
MCP-PersonalSearch

MCP-PersonalSearch

by weatherills

MCP-PersonalSearch

운영자가 일반 대화형 세션에서 사용할 수 있는 데이터에 모델이 접근할 수 있도록 설계된 MCP 서버입니다.

현재 구현된 것은 프로젝트 PRD의 Phase 1입니다. GitLab 호스팅 docs-as-code 저장소를 위한 로컬 문서 파이프라인(원본 저장소 → 마크다운 추출 → 청크 분할 → FTS5 인덱스 → CLI)이 포함됩니다. MCP 서버 자체(Streamable HTTP, search_docs/get_section 등)는 Phase 2이며 아직 구축되지 않았습니다.

설정

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

config.example.toml을 config.toml로 복사하고 [[sources]]를 저장소(모음)에 지정하세요:

[[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

사용법

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(인덱스된 문서)와 instance.db(쿼리 기록, 작업 기록)는devault로 data/ 아래에 작성되며 gitignore 대상입니다. 코퍼스(말치)를 공유하거나 내보내거나 동 시해야 하는 이유는 PRD §12를 참조하시요.

eval/questions.json도 같은 이유로 gitignore됩니다. 실제 질문은 실제로 과객 수집한 데이터에 기반가반하며 내부 콘텐츠를 포함할 수 있기 때문입니다. eval/questions.example.json을 eval/questions.json으로 복사하고, 내 코퍼스의 {"query": ..., "section_id": ...} 을 채우세요(section_id 값은 docssearch search 출력에서 얻을 수 있습니다).

테스트

pytest

Related MCP Connectors

Related MCP Servers