search-docs
Enables AI agents to search local Markdown documents using natural language, with automatic indexing and section-level retrieval.
README
🐕️ search-docs
ローカル文書をAIエージェントが検索できるようにする
プロジェクトのドキュメント、設計書、調査メモ。大量の文書から必要な情報を見つけるのは大変です。
search-docsは、Markdown文書をVector検索可能にし、Claude CodeなどのAIエージェントが自然言語で検索できるようにします。
コンセプト
- ローカルファースト: すべてのデータはローカルに保存、プライバシー重視
- エージェント統合: Claude Codeから自然言語で検索
- 自動更新: ファイル変更を自動検知、常に最新の情報を検索可能
- セクション分割: 文書全体だけでなく、関連する章節を精度高く発見
仕組み
search-docsは、シンプルな3層構造で動作します:
Markdown文書
↓ (見出しで分割)
Sections (depth 0-3)
↓ (Vector化)
LanceDB Index
↓ (自然言語で検索)
AIエージェント / CLI / API
Document: プロジェクトの.mdファイル Section: 見出しごとに分割された意味のある単位 Vector Index: 日本語最適化モデル(Ruri)でVector化 Server: プロジェクトごとに起動、変更を自動検知
詳細: システムアーキテクチャ
30秒で始める(Claude Code)
Docker版(推奨)
ランタイム依存(Node.js, Python, uv)を排除し、セキュアな境界で実行できます。
.claude/settings.json または .mcp.json に以下を追加:
{
"mcpServers": {
"search-docs": {
"type": "stdio",
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", ".:/workspace:ro",
"-v", "./.search-docs:/workspace/.search-docs",
"otolab/search-docs-mcp:latest",
"--project-dir", "/workspace"
]
}
}
}
ボリュームマウント:
.:/workspace:ro— プロジェクトのドキュメントを読み取り専用でマウント./.search-docs:/workspace/.search-docs— インデックスデータの永続化(読み書き)
その後、Claude Codeで:
- 「search-docsのセットアップをお願い」と依頼
- MCPを再接続(reconnect)
- 「このプロジェクトのアーキテクチャについて教えて」と依頼
npm/npx版(Docker環境がない場合)
Docker環境がない場合の代替手段です。uv(Pythonパッケージマネージャ)が必要です。
# macOS (Homebrew)
brew install uv
# macOS/Linux (公式インストーラ)
curl -LsSf https://astral.sh/uv/install.sh | sh
claude mcp add npx -- -y @search-docs/mcp-server
その後、Claude Codeで:
- 「search-docsのセットアップをお願い」と依頼
- MCPを再接続(reconnect)
- 「このプロジェクトのアーキテクチャについて教えて」と依頼
→ 詳しい手順
その他の使い方
CLIツールとして使う
# グローバルインストール
npm install -g @search-docs/cli
# またはnpxで直接実行(インストール不要)
npx @search-docs/cli server start
npx @search-docs/cli search "検索クエリ"
→ ユーザーガイド
プログラムから使う
TypeScript/JavaScript APIとしても利用できます。
import { SearchClient } from '@search-docs/client';
const client = new SearchClient({ port: 24280 });
const results = await client.search('検索クエリ');
主な特徴
セクション分割検索
文書全体だけでなく、H1〜H4の見出し単位で検索。関連する章節をピンポイントで発見できます。
リアルタイム更新
ファイル変更を自動検知、バックグラウンドで再インデックス。常に最新の情報を検索できます。
プロジェクト独立
プロジェクトごとに独立したサーバとインデックス。複数プロジェクトを同時に使用できます。
日本語最適化
日本語に最適化された埋め込みモデル(Ruri)を使用。日本語文書の検索精度が高くなっています。
アーキテクチャ概要
search-docsはin-process構成(MCPサーバ) と クライアント・サーバ構成(HTTPサーバ) の2つのモードで動作します:
MCPサーバモード(Claude Code統合)
- MCP Server (
@search-docs/mcp-server): SearchDocsServerをin-processで直接保持- HTTPデーモン不要、高速起動
- SearchDocsServer(read-only)
- WatcherProcess(write、heartbeat調停)
- DBEngine(Python/LanceDB/Ruri)
- EmbeddingServerProcess(自動検出・起動)
HTTPサーバモード(外部クライアント向け)
- Server (
@search-docs/server):server startコマンドで起動- JSON-RPC API提供
- CLI Tool、Client Libraryから利用
- CLI Tool (
@search-docs/cli): コマンドライン - Client Library (
@search-docs/client): プログラマティックな利用
共通インターフェイス
- SearchDocsService: MCPサーバとHTTPクライアントの共通インターフェイス
- SearchDocsServer(in-process実装)
- SearchDocsClient(HTTP実装)
詳細: システムアーキテクチャ | データモデル
ドキュメント
📚 使い始める
🔧 詳しく知る
- システムアーキテクチャ - 技術スタックと実装
- データモデル - データ構造の設計
- アーキテクチャ決定記録 - 設計判断の記録
🤝 統合する
- Claude Code統合 - MCP Serverとして使う
- クライアントライブラリ - APIリファレンス
ライセンス
このプロジェクトはプライベートプロジェクトです。
関連プロジェクト
- sebas-chan: DBエンジンのアーキテクチャ参照元
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。