Newer
Older
TelosDB / README.md

🦀 SQLite Vector MCP Server (Tauri 2 Edition)

SQLite と Rust で構築された、ローカル向けベクトル検索サーバー

Tauri 2 Rust Gemma 3

📝 イントロダクション

Model Context Protocol (MCP) に準拠した、ローカル実行用のベクトル検索サーバーです。Tauri v2 および Rust をベースに構築されています。

Gemma 3 300M Embedding モデルや llama-server をサイドカーとして利用することで、外部ネットワークに依存せず、ローカル環境のみでテキストのベクトル化と検索を行うことができます。


✨ 主な機能

  1. Tauri v2 + Rust: 軽量で高速なバックエンド基盤。
  2. SQLite + sqlite-vec: リレーショナルデータとベクトルデータの一元管理。
  3. MCP 準拠: SSE プロトコルにより、外部エージェント(Claude 等)からのツール呼び出しに対応。
  4. Sidecar LLM: llama-server を内蔵し、オフラインでのテキスト処理が可能。
  5. SeaORM: 型安全なデータベース操作。
  6. 運用支援: 詳細なログ記録とステータス可視化。

📁 ディレクトリ構成

.
├── .agent/       # エージェント用ルール・ドキュメント
├── bin/          # 外部バイナリ (llama-server等)
├── data/         # データベースファイル (vector.db)
├── document/     # 仕様・設計ドキュメント
├── journals/     # 開発記録 (Git管理外)
├── logs/         # アプリケーションログ
├── resources/    # アセット類
├── scripts/      # ユーティリティスクリプト (analyze_nesting, count_lines等)
├── src/
│   ├── backend/  # Rust / Tauri バックエンド
│   └── frontend/ # Webview UI
└── test/         # テストコード

🏗️ システム構造

graph TD
    subgraph "Frontend Layer (WebView2)"
        UI["Status UI (JS/HTML)"]
    end
    
    subgraph "Tauri Backend Layer (Rust)"
        Axum["MCP Server (SSE/JSON-RPC)"]
        Tray["System Tray Manager"]
        Sidecar["Sidecar Manager"]
        ORM["SeaORM Layer"]
        Llama["Llama API Client"]
    end
    
    subgraph "External Process Layer"
        LS["llama-server.exe (Sidecar)"]
    end
    
    subgraph "Data Layer"
        DB[("SQLite + sqlite-vec")]
        Model["Gemma 3 300M (GGUF)"]
    end
    
    UI <--> Axum
    Axum <--> ORM
    ORM <--> DB
    Llama <--> LS
    Sidecar --> LS
    LS --> Model

🚀 セットアップ

bun install
bun setup
bun dev

詳細は document/development_guide.md を参照してください。


🛠️ MCP ツール

ツール名 用途
save_document 文書の追加とベクトル化
find_documents 文書の類似検索
llm_generate テキスト生成
... (詳細は mcp_specification.md 参照)

📜 ライセンス

ISC License.