Skip to main content
Glama
MCP-PersonalSearch

MCP-PersonalSearch

by weatherills

MCP-パーソナルサーチ

操作者の通常の対話セッション中に利用できるデータと同じデータへ、モデルがアクセスできるように設計されたMCPサーバーです。

現在実装されているのは、プロジェクト PRD の フェーズ1 です。つまり、GitLab でホストされている docs-as-code リポジトリ向けのローカルドキュメントパイプライン(raw ストア → Markdown 抽出 → チャンキング → FTS5 インデックス → CLI)です。MCP サーバー自体(Streamable HTTP、search_docs/get_section など)はフェーズ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(クエリログ、ジョブ履歴)は、デフォルトでは data/ 配下に書き込まれ、gitignore されています — コーパスを共有・エクスポート・同期してはならない理由は PRD §12 を参照してください。

eval/questions.json も同じ理由で gitignore されています。実際の質問は、実際に取り込んだコンテンツに基づいており、内部コンテンツを埋め込む可能性があります。eval/questions.example.json を eval/questions.json にコピーし、自分のコーパスから取得した {"query": ..., "section_id": ...} ペアを入力してください(section_id の値は docsrag search の出力から取得されます)。

テスト

pytest

Related MCP Connectors

Related MCP Servers