Aikd Indexed Semantic & Bm25 Code Search For Ai Agents. Give Your Ai Instant Memory Of Your Codebase. Rust | Mcp Server. について
AIKDは、AIコーディングエージェント向けのローカルコードベース索引・検索サーバーです。Rust製で、BM25とベクトル検索を組み合わせ、CLI、REST API、永続的なセッションメモリを備えています。
主な機能
- 01BM25とベクトルのハイブリッド検索
- 02コードベースの増分インデックス
- 03永続的なセッションメモリ
- 04ファイル変更時の再インデックス
- 05CLIとREST API
活用シーン
- 01キーワードや意味からコードを検索
- 02コーディングエージェントに継続的なコードベース情報を提供
- 03プロジェクトファイルの変更時にインデックスを更新
MCP 対応
AIKDはMCPサーバーとして動作し、スキャン、検索、埋め込み、統計、メモリ、状態確認のツールを提供します。記載されているコーディングエージェントへの自動登録にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🧠 AIKD
AI コーディングエージェントのための超高速ローカルメモリレイヤー
Claude、Cursor、Cline にコードベース全体の情報をすぐに思い出させます。 Rust で記述。クラウドへの依存はゼロ。10,000 チャンクを 0.21ms で検索。
🤔 なぜ AIKD なのか?
問題点: AI コーディングエージェントは強力ですが、忘れっぽいものです。新しい会話を始めるたびに、すべてがゼロからになります。コードベースやコーディングパターン、アーキテクチャの情報は引き継がれません。
| 課題 | AIKD なし | AIKD あり |
|---|---|---|
| 😵 コンテキストの喪失 | 毎回のセッションで、エージェントが「このファイルは何をするの?」と質問する | コードベース全体の情報を即座に呼び出し |
| 🐌 検索の遅さ | Python ベースの RAG では、クエリごとに 500ms 以上かかる | Rust による BM25+Vector で 0.21ms |
| ☁️ クラウドへの依存 | コードが外部サーバーに送信される | 100% ローカル。データがマシンの外に出ることはありません |
| 🔧 複雑なセットアップ | Python、pip、CUDA、モデルなどのインストールが必要 | 単一バイナリ。1 つのコマンドでインストール |
AIKD の比較
| 機能 | grep | LlamaIndex | ai-devkit | AIKD |
|---|---|---|---|---|
| 速度 | 高速 | 低速 | 普通 | ⚡ 0.21ms |
| セマンティック検索 | ❌ | ✅ | ✅ | ✅ ハイブリッド |
| ローカルのみ | ✅ | ❌ | ❌ | ✅ 100% |
| MCP ネイティブ対応 | ❌ | ❌ | ❌ | ✅ 標準搭載 |
| メモリ使用量 | 低 | 高(Python) | 高 | 📊 RAM の 27% |
| セットアップ時間 | 0 秒 | 約 10 分 | 約 5 分 | ⏱️ 30 秒 |
✨ 主な機能
🔍 検索エンジン
- ハイブリッド検索:BM25(Tantivy)+ ベクトル(ONNX all-MiniLM-L6-v2、384d)
- 逆順位融合:キーワード検索とセマンティック検索の結果を賢く統合
- 増分インデックス作成:Blake3 ハッシュを使用し、重複のないスキャンを実現
- リソースに応じた最適化:CPU/GPU を自動検出し、バッチサイズを調整
🤖 AI 連携
- MCP プロトコル:Model Context Protocol をネイティブサポート
- 組み込みツール 7 種:
scan、query、embed、stats、remember、recall、status - 自動登録:Claude Code、Cursor、Cline、Continue、Windsurf、MiMoCode で動作
- セッションメモリ:セッションをまたいで会話のコンテキストを保持
🛠️ 開発者向け機能
- 単一バイナリ:Python、Node、依存関係は不要
- ファイル監視:ファイル変更時にインデックスを自動再作成
- REST API:独自の連携向けにポート 9090 で HTTP エンドポイントを提供
- CLI 優先:ターミナルからすべてを操作
🎬 動作を見る

$ aikd init
✅ AIKD initialized for project
$ aikd scan
📊 Indexed 847 files, 12,453 chunks in 1.2s
$ aikd query "authentication flow"
1. src/auth/login.rs (Lines 45-89, Score: 0.923)
Implements JWT-based authentication with refresh tokens...
2. src/middleware/auth.rs (Lines 12-34, Score: 0.871)
Validates Bearer tokens on protected routes...
3. docs/architecture/auth.md (Lines 1-25, Score: 0.845)
Authentication flow diagram and security considerations...
📦 インストール
推奨(ワンライナー)
Linux / macOS:
curl -sSf https://raw.githubusercontent.com/gelutjari/aikd/main/install.sh | bash
Windows(PowerShell):
irm https://raw.githubusercontent.com/gelutjari/aikd/main/install.ps1 | iex
その他の方法
📦 crates.io からインストール(Rust がインストール済みの場合)
cargo install aikd
🍺 Homebrew(macOS/Linux)
brew install gelutjari/tap/aikd
🔧 ソースからビルド
git clone https://github.com/gelutjari/aikd.git
cd aikd
cargo build --release
cp target/release/aikd ~/.local/bin/
🐳 Docker
docker run -v $(pwd):/workspace -p 9090:9090 ghcr.io/gelutjari/aikd:latest
⚡ クイックスタート(3 分)
ステップ 1:初期化
cd your-project
aikd init
aikd init は何をしますか?
プロジェクトの種類(Rust、Node、Python、Go)に応じた適切なデフォルト設定で ~/.aikd/config.yaml を作成します。.git、Cargo.toml、package.json などを検出し、適切なファイルフィルターを設定します。
スキャン中に何が行われますか?
- ディレクトリツリーを走査します(
node_modules、.git、targetなどはスキップします) - 意味的な境界(関数、見出し)に基づいてファイルを分割します
- BM25 インデックス(Tantivy)とベクトル埋め込み(ONNX)を生成します
- すべてをローカルの SQLite データベースに保存します
ステップ 3:検索する
# Keyword search (fast)
aikd query "error handling"
# Semantic search (smart)
aikd query "how does login work" --hybrid
# Get JSON output for scripting
aikd query "database connection" --json
ステップ 4:AI エージェントに接続する
Claude Code / Cursor / Cline
AIKD は MCP 経由で自動登録されます。aikd scan を実行した後、AI エージェントを再起動するだけです。
MCP の設定は ~/.aikd/mcp.json にあります:
{
"mcpServers": {
"aikd": {
"command": "aikd",
"args": ["serve"]
}
}
}
REST API
# Start the daemon
aikd daemon
# Query via HTTP
curl "http://localhost:9090/api/query?q=authentication&limit=5"
🎛️ 使用モード
┌─────────────────┐
│ How to use │
│ AIKD? │
└────────┬────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ CLI │ │ MCP │ │ REST API │
│ Mode │ │ Server │ │ Daemon │
└──────────┘ └──────────┘ └──────────┘
Best for: Best for: Best for:
• Quick search • AI agents • Web apps
• Scripts • Claude Code • Custom UIs
• CI/CD • Cursor • Team shared
CLI モード(デフォルト):
aikd query "rust error handling" --limit 5
aikd stats
aikd status
MCP サーバー(AI エージェント向け):
aikd serve # Starts stdio MCP server
REST デーモン(バックグラウンドサービス):
aikd daemon # Start in background
aikd daemon foreground # Start in foreground
aikd daemon-stop # Stop daemon
📊 ベンチマーク結果

ハードウェア: AMD EPYC 7B13、7.8GB RAM、NVMe SSD
| 操作 | 時間 | スループット |
|---|---|---|
| 1,000 ファイルのインデックス作成 | 144ms | 6,934 ファイル/秒 |
| BM25 検索 | 0.21ms | 4,762 クエリ/秒 |
| ハイブリッド検索 | 0.35ms | 2,857 クエリ/秒 |
| 並行処理(500) | 28ms | 17,669 クエリ/秒 |
| 埋め込み(バッチ) | 12ms/バッチ | 約800 チャンク/秒 |
リソース使用量:
CPU: ████████░░░░░░░░░░░░ 22.9%
RAM: █████░░░░░░░░░░░░░░░ 27.4%
💡 実環境での目安: 人間のまばたきには約300msかかります。その間に、AIKD はコードベース全体を対象に857 回のハイブリッド検索を完了できます。
⚙️ 設定
デフォルト設定(~/.aikd/config.yaml):
version: 2.0.0
scan:
include_paths: ["."]
exclude_paths: ["node_modules", ".git", "target"]
include_extensions: ["rs", "ts", "py", "md", "json"]
follow_symlinks: false
chunk:
max_tokens: 1000
min_tokens: 100
embedding:
enabled: true
model: all-MiniLM-L6-v2
batch_size: auto
server:
rest_port: 9090
auth_token: null
cors_origins: ["*"]
🐌 低速なマシン(4GB RAM、2 コア)
embedding:
enabled: true
batch_size: 8
device: cpu
resource:
mode: Low
💪 高性能なマシン(32GB RAM、16 コア、GPU)
embedding:
enabled: true
batch_size: 64
device: gpu
resource:
mode: Max
📝 ドキュメントのみのプロジェクト
scan:
include_extensions: ["md", "txt", "rst"]
exclude_paths: [".git"]
filter:
max_file_size: 524288 # 512KB
👥 チームでの共有
server:
rest_port: 9090
auth_token: "your-secret-token"
cors_origins:
- "https://your-team-app.com"
🏗️ アーキテクチャ

┌─────────────────────────────────────────────────────────────┐
│ AIKD v2.0.0 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │
│ │ CLI │ │ MCP │ │ REST │ │ File Watcher│ │
│ │ (clap) │ │ (rmcp) │ │ (axum) │ │ (notify) │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └──────┬──────┘ │
│ │ │ │ │ │
│ └────────────┴────────────┴───────────────┘ │
│ │ │
│ ┌─────────────────────────┴──────────────────────────┐ │
│ │ Core Engine │ │
│ ├─────────────┬─────────────┬─────────────────────────┤ │
│ │ Scanner │ Chunker │ Session Manager │ │
│ │ (walkdir) │(pulldown- │ (conversation DB) │ │
│ │ │ cmark) │ │ │
│ └──────┬──────┴──────┬──────┴─────────────────────────┘ │
│ │ │ │
│ ┌──────┴──────┐ ┌────┴─────┐ ┌──────────────────────┐ │
│ │ Indexer │ │ Embedder │ │ Storage │ │
│ │ (Tantivy) │ │ (ONNX) │ │ (SQLite + WAL) │ │
│ │ BM25 + │ │ 384d │ │ + r2d2 pool │ │
│ │ HNSW ANN │ │ MiniLM │ │ + blake3 hashing │ │
│ └─────────────┘ └──────────┘ └──────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
詳しい説明については、docs/ARCHITECTURE.md をご覧ください。
🆘 トラブルシューティング
診断コマンド:
aikd status --json # System info
aikd stats # Index statistics
aikd daemon-pid # Check if daemon running
「結果が見つかりません」
- まず
aikd scanを実行します aikd statsを実行し、ファイルがインデックス化されていることを確認します- より広範な検索語を試します
- 設定の
include_extensionsを確認します
「モデルがダウンロードされていません」
aikd model download
これにより、約90MBの ONNX モデルが ~/.local/share/aikd/model/ にダウンロードされます。
「ポート 9090 はすでに使用されています」
# Change port in config
# ~/.aikd/config.yaml
server:
rest_port: 9091
または、既存のプロセスを停止します:aikd daemon-stop
メモリ使用量が多い
リソースモードを Low に設定します:
resource:
mode: Low
max_memory_mb: 512
MCP が Claude/Cursor に接続できない
~/.aikd/mcp.jsonが存在することを確認します- AI エージェントを再起動します
aikd serveが動作することを確認します:echo '{"jsonrpc":"2.0","method":"initialize","id":1}' | aikd serve
Windows:「vcruntime140.dll が見つかりません」
Visual C++ Redistributable をインストールします。
🤝 コミュニティ
サポートを受ける:
- 💬 GitHub Discussions — 質問する
- 🐛 Issues — バグを報告する
- 📧 メール:[email protected]
コントリビューター:
| 貢献内容 | 担当 |
|---|---|
| 🏗️ アーキテクチャとコア機能 | @gelutjari |
| 🔒 セキュリティ監査 | AI 支援(MiMo) |
| ⚡ パフォーマンス最適化 | コミュニティ |
| 📖 ドキュメント | コミュニティ |
貢献方法については、CONTRIBUTING.md をご覧ください。
📄 ライセンス
MIT ライセンス — 詳細については LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。