mcpField
O
Octocode

Octocode

ローカル
octocode.muvon.io開発ツール518今日更新

Octocode について

Octocode は、コードベースを扱う AI エージェント向けの MCP サーバー兼コードインデクサーです。tree-sitter によるシンボル・依存関係グラフとセマンティック検索を組み合わせ、任意でインデックス拡張や LSP ツールも利用できます。

主な機能

  1. 01セマンティック検索と BM25 コード検索
  2. 02AST ベースのファイル・シンボルグラフ
  3. 03シグネチャとコード構造の確認
  4. 04AST パターン検索
  5. 05オプションの LSP ナビゲーションツール
  6. 06オプションのインデックス型 GraphRAG 拡張

活用シーン

  1. 01概念や動作からコードを検索
  2. 02インポート、呼び出し、依存関係を追跡
  3. 03ファイル全体を読まずに構造を確認
  4. 04ワークスペース内のコードパターンを特定

MCP 対応

Octocode は、コード検索、シグネチャ表示、グラフナビゲーション、構造検索を MCP ツールとして公開します。オプションの LSP ツールでは定義ジャンプ、参照検索、ホバー情報、シンボル操作を利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
npm@muvon/octocode0.29.0
mcpboctocode-0.29.0-aarch64-apple-darwin.mcpb
mcpboctocode-0.29.0-aarch64-pc-windows-msvc.mcpb
mcpboctocode-0.29.0-aarch64-unknown-linux-musl.mcpb
mcpboctocode-0.29.0-x86_64-apple-darwin.mcpb
mcpboctocode-0.29.0-x86_64-pc-windows-msvc.mcpb
mcpboctocode-0.29.0-x86_64-unknown-linux-musl.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Octocode
AI エージェントのための構造的コードインテリジェンス — MCP サーバー + ナレッジグラフ + セマンティック検索

CI Coverage Crates.io GitHub stars License Rust Release

AI アシスタントに、コードベースを理解する力を与えましょう。 Octocode はプロジェクトをナビゲート可能なナレッジグラフに変換します。Claude、Cursor、その他の AI エージェントが検索、理解、ナビゲートできます。

🚀 クイックスタート • 🤖 MCP 統合 • 📖 ドキュメント • 🌐 ウェブサイト

Octocode MCP サーバー

🤖 AI エージェントのために構築

問題: AI アシスタントはコードベースを把握できません。ファイルを検索したり、依存関係を理解したり、セッションをまたいでコンテキストを記憶したりできません。

解決策: Octocode の MCP サーバーは、AI エージェントに次の機能を提供します。

  • 🔍 セマンティック検索 — キーワードではなく、意味からコードを検索
  • 🕸️ ナレッジグラフ — インポート、呼び出し、依存関係をたどる
  • 📝 コードシグネチャ — ファイル全体を読むことなく構造を確認
  • 🧭 LSP による高精度な検索 — 言語サーバーを通じた定義への移動、参照の検索、ホバードキュメント

対応環境: Claude Desktop • Cursor • Windsurf • MCP 対応の AI

AI アシスタントは次のことができるようになります。

You: "Where is authentication handled?"
AI: *searches your codebase* "Authentication is in src/middleware/auth.rs,
    which imports jwt.rs for token validation and calls user_store.rs for lookup."

You: "What files depend on the payment module?"
AI: *queries knowledge graph* "src/api/handlers/payment.rs imports payment/mod.rs,
    which is also used by src/workers/refund.rs and src/cron/billing.rs"

You: "Find every call site of this function"
AI: *uses LSP find-references* "process_payment() is called from 4 places:
    checkout.rs:87, refund.rs:134, billing.rs:56, and tests/payment_test.rs:23"

🤔 なぜ Octocode なのか?

一般的な RAG は、コードを平坦なテキストチャンクとして扱います。 似た表現のスニペットは見つけられても、auth_middleware.rs が jwt.rs をインポートし、user_store.rs を呼び出し、router.rs に組み込まれていることは把握できません。Octocode は 構造 を理解します。

# Semantic search finds the right code
octocode search "authentication middleware"
→ src/middleware/auth.rs — Similarity: 0.9234

# The GraphRAG CLI queries the optional persisted graph
octocode config --graphrag-enabled true
octocode index
octocode graphrag get-relationships --node-id src/middleware/auth.rs
Outgoing:
  imports → jwt (src/auth/jwt.rs): token validation logic
  calls   → user_store (src/db/user_store.rs): user lookup by token
Incoming:
  imports ← router (src/router.rs): wires auth into the request pipeline

Octocode は tree-sitter AST 解析を使用し、ファイル、シンボル、インポート、呼び出し、継承、実装のライブグラフを構築します。MCP の graphrag ツールは、インデックス、埋め込み、LLM を使わず、現在のソースツリーからオンデマンドでこのグラフを構築します。オプションのインデックス型 GraphRAG を追加すると、セマンティックなファイル検出、説明、より広範なアーキテクチャ上の関係を利用できます。

🔬 仕組み

Current Source → Tree-sitter AST → Live Symbol Graph ──────────────→ MCP `graphrag`
                                           ↑                              ↑
Indexed Code → Embeddings + Optional LLM → Persisted File Enrichment ─────┘
  1. ライブ AST グラフ — tree-sitter が現在のソースから直接、ファイルとシンボルのノードに加え、決定論的な contains、imports、calls、extends、implements の関係を抽出します
  2. 常時利用可能なグラフナビゲーション — MCP のグラフ検索、関係のたどり、パス検索、概要表示は、[graphrag].enabled = false の場合でも機能します
  3. オプションの拡張 — インデックス型 GraphRAG を有効にすると、セマンティックなファイル照合、LLM による説明、より広範なファイルレベルのアーキテクチャ関係が追加されます。シンボルが埋め込みや LLM 生成の対象になることはありません
  4. ハイブリッド検索 — セマンティック類似度 + BM25 全文検索 + 再ランキングにより、意味に基づくコード検索を別途処理します
  5. MCP サーバー — semantic_search、view_signatures、graphrag、structural_search を、あらゆる MCP 対応クライアントに提供します

✨ 他との違い

標準的な RAGドキュメント検索ツールOctocode
インデックス対象テキストチャンク外部ライブラリのドキュメントコードベースの構造(AST)
理解するもの類似したテキストAPI 仕様と使用方法関数、インポート、依存関係
ファイル横断いいえいいえはい — 依存関係グラフをたどります
関係性いいえいいえimports、calls、implements、extends など
AI 連携さまざまMCPネイティブ MCP サーバー + LSP

ドキュメントツールは、AI に使用するライブラリのマニュアルを提供します。Octocode は、それらをどのように組み合わせたかを示す設計図を AI に提供します。

パフォーマンスを重視して Rust で構築。プライバシーを重視した ローカルファースト。透明性を重視した オープンソース(Apache 2.0)。

📊 検索品質

Octocode には、再現可能な検索ベンチマーク(benchmark/)が付属しています。行範囲の正解データを含む、厳選された 127 件のコード検索クエリを octocode 自身のソースに対して実行します(注釈がずれないよう、b1771ba に固定しています)。以下の数値は、fastembed 経由の jina-embeddings-v2-base-code を使用し、リランキングなしの 完全ローカルで API キー不要の構成によるものです。そのため、これらは上限ではなく下限の値です。

構成Hit@5Hit@10MRRNDCG@10Recall@10
密ベクトルのみ0.5980.7170.4850.5280.671
ハイブリッド、デフォルトの RRF 重み(0.7/0.3)0.5980.7170.4850.5280.671
ハイブリッド、キーワード調整済み(0.3/0.7)0.7320.8350.5720.6200.807

BM25/キーワードのシグナルに向けて RRF 融合の重みを調整すると、コードの正確な識別子を大きく捉えるこのシグナルの効果により、追加コストなしで Hit@5 が +22%、Recall@10 が +20% 向上します。

このベンチマークでは、ここで効果がないものも明らかにしています(6 種類すべての結果は benchmark/RESULTS.md を参照)。汎用のローカルクロスエンコーダーリランカー(bge-reranker-base)は、実際には結果を悪化させました(Hit@5 が 0.732 → 0.598)。コード検索には、市販の汎用モデルではなく、voyage:rerank-2.5 などの コードを考慮した リランカーが必要です。

git clone https://github.com/Muvon/octocode && cd octocode
git worktree add /tmp/corpus b1771ba   # pin the corpus to the ground-truth commit
CORPUS=/tmp/corpus python3 benchmark/run_matrix.py   # set OCTO_BIN to use a custom binary

手法と指標の定義については、benchmark/README.md を参照してください。

🚀 クイックスタート

1. インストール
# Universal installer (Linux, macOS, Windows)
curl -fsSL https://raw.githubusercontent.com/Muvon/octocode/master/install.sh | sh

# macOS with Homebrew
brew install muvon/tap/octocode
その他のインストール方法
# From crates.io
cargo install octocode

# Or from source (latest)
cargo install --git https://github.com/Muvon/octocode

# Download binary from releases
# https://github.com/Muvon/octocode/releases

プラットフォーム固有の手順については、インストールガイド を参照してください。

2. API キーを設定
# Optional: embedding provider (defaults to local FastEmbed — no key needed)
export VOYAGE_API_KEY="your-voyage-api-key"

# Optional: LLM for commit messages, code review
export OPENROUTER_API_KEY="your-openrouter-api-key"

Voyage API キーの取得先: voyageai.com(無料枠あり)

その他の埋め込みプロバイダー

Octocode は複数の埋め込みプロバイダーに対応しています。

# OpenAI
export OPENAI_API_KEY="your-key"
octocode config --code-embedding-model "openai:text-embedding-3-small"

# Jina AI
export JINA_API_KEY="your-key"
octocode config --code-embedding-model "jina:jina-embeddings-v3"

# Google
export GOOGLE_API_KEY="your-key"
octocode config --code-embedding-model "google:text-embedding-005"

対応するすべてのプロバイダーについては、API キーガイド を参照してください。

3. コードベースにインデックスを作成
cd /your/project
octocode index
# → ✓ Indexing complete! 342 of 342 files processed (342 new, 0 unchanged)
4. コードを検索
# Natural language search
octocode search "authentication middleware"

# Multi-query for broader results
octocode search "auth" "middleware" "session"

# Filter by language
octocode search "database connection pool" --language rust

# Search commit history
octocode search "authentication refactor" --mode commits
5. AI アシスタントを接続

MCP クライアントの設定(Claude Desktop、Cursor、Windsurf)に追加します。

{
  "mcpServers": {
    "octocode": {
      "command": "octocode",
      "args": ["mcp", "--path", "/your/project"]
    }
  }
}

これで完了です。AI アシスタントがコードベースの構造を理解できるようになりました。

🔌 MCP サーバー連携

Octocode には、コードベースを AI アシスタント向けのツールとして公開する組み込み MCP サーバーが含まれています。これは Octocode の主な利用方法です。AI アシスタントにコードを検索してたどるための直接アクセスを提供できます。

利用可能なツール
ツール機能
semantic_search意味からコードを検索します — 「認証フロー」、「エラー処理」、「データベースクエリ」
view_signaturesファイル構造を表示します — 関数シグネチャ、クラス定義、インポート
graphrag常時利用可能なファイル/シンボルグラフ — インデックス作成なしでノードを検索し、関係を調べ、パスを見つけます
structural_searchAST パターンマッチング — .unwrap() 呼び出し、new のインスタンス化、特定のパターンを検索します
lsp_goto_definitionシンボルの定義に移動します(--with-lsp が必要です)
lsp_find_referencesワークスペース全体からシンボルのすべての使用箇所を検索します(--with-lsp が必要です)
lsp_hoverシンボルの型情報とドキュメントを表示します(--with-lsp が必要です)
lsp_document_symbols / lsp_workspace_symbols / lsp_completionファイル内のシンボル、ワークスペース全体のシンボル検索、補完(--with-lsp が必要です)

言語サーバーを指定してサーバーを起動すると、LSP ツールが有効になります。

octocode mcp --path /your/project --with-lsp="rust-analyzer"
会話型 AI の使用例

接続すると、AI アシスタントがコードベースに関する質問に回答できます。

You: "Where is user authentication implemented?"
AI: *uses semantic_search* "Found in src/auth/login.rs. The authenticate() function
    validates credentials against the database, generates a JWT token, and stores
    the session in Redis."

You: "What files depend on the payment module?"
AI: *uses graphrag* "src/api/handlers/payment.rs imports payment/mod.rs, which is also
    used by src/workers/refund.rs and src/cron/billing.rs. The payment module exports
    process_payment() and validate_transaction() functions."

You: "Show me all error handling in the API layer"
AI: *uses structural_search* "Found 23 error handling patterns in src/api/:
    - 15 use Result<T, ApiError> with explicit error types
    - 8 use .unwrap() (potential panics in handlers/user.rs:42, handlers/auth.rs:87)
    - 3 use .expect() with custom messages"
クイックセットアップ

Octomind(推奨) — セットアップ不要。Octocode が事前設定されています:

curl -fsSL https://raw.githubusercontent.com/muvon/octomind/master/install.sh | bash
octomind run developer:rust

Claude Code(CLI) — コマンドラインでのセットアップ:

claude mcp add octocode -- octocode mcp --path /path/to/your/project

Claude Desktop / Cursor / Windsurf — 設定に追加します:

{
  "mcpServers": {
    "octocode": {
      "command": "octocode",
      "args": ["mcp", "--path", "/path/to/your/project"]
    }
  }
}

設定ファイルの場所:

  • Claude Desktop:~/Library/Application Support/Claude/claude_desktop_config.json(macOS)
  • Cursor:~/.cursor/mcp.json または「Settings → MCP Servers」
  • Windsurf:「Settings → MCP」

📖 MCP クライアントの完全セットアップガイド — VS Code(Cline/Continue)、Zed、Replit など、15 以上のクライアントの詳細な手順を説明しています。

🌐 対応言語

tree-sitter による完全な AST 解析に対応した 17 言語:

言語拡張子機能
Rust.rs完全な AST 解析、pub/use の検出、モジュール構造
Python.pyインポート/クラス/関数の抽出、docstring の解析
TypeScript/JavaScript.ts、.tsx、.js、.jsxES6 のインポート/エクスポート、型定義
Go.goパッケージ/インポートの分析、構造体/インターフェースの解析
PHP.phpクラス/関数の抽出、名前空間のサポート
C++.cpp、.cc、.cxx、.c++、.c、.h、.hpp、.hxx、.cppm、.ixx、.mxx、.ccm、.cxxminclude の分析、クラス/関数の抽出、C++20 モジュールのサポート
Ruby.rbクラス/モジュールの抽出、メソッド定義
Elixir.ex、.exsモジュール/プロトコルの抽出、関数とマクロの定義
Java.javaインポートの分析、クラス/メソッドの抽出
Swift.swiftクラス/構造体/プロトコルの抽出、インポートの分析
Svelte.svelteコンポーネント構造、script/style ブロックの抽出
Lua.lua関数とテーブルの抽出
CSS.css、.scss、.sassルールとセレクターの抽出
JSON.json構造の分析、キーの抽出
Bash.sh、.bash関数と変数の抽出
Markdown.md、.markdownドキュメントセクションのインデックス作成、見出しの抽出

📚 ドキュメント

🔒 プライバシーとセキュリティ

  • 🏠 ローカル優先 — fastembed による完全ローカルの埋め込み(API キー不要)。クラウドプロバイダーも任意で利用できます
  • 🔐 セキュア — API キーはローカルに保存され、環境変数にも対応しています
  • 🚫 .gitignore を尊重 — 機密ファイルはインデックス化されません
  • 🛡️ MCP セキュリティ — ローカル専用サーバーで、検索に外部ネットワークを使用しません
  • 📤 クラウドでも安全 — クラウドプロバイダーに送信されるのは、埋め込み対象のコードチャンクのみです。完全にオフラインでインデックス化するにはローカルモデルを使用してください
📊 検索品質ベンチマーク

正確な行範囲の注釈が付いた、手作業でラベル付けした正解データセット(254 件のクエリ、コード 127 件+ドキュメント 127 件)を使って、セマンティック検索の品質を測定しています。各クエリには、関連度で評価された期待される結果が 1〜3 件あります。

この数値は、コミット b1771ba でのクラウドスタック全体(コンテキスト検索、Voyage リランカー、RaBitQ 量子化)を使用したものです。ベンチマーク設定を参照してください。完全ローカルのベースラインと全バリアントの比較については、上記の検索品質およびbenchmark/RESULTS.mdを参照してください。

ドキュメント検索(--mode docs)— Hit@10: 0.953、MRR: 0.776
指標スコア
Hit@50.929 (118/127)
Hit@100.953 (121/127)
MRR0.776
NDCG@100.801
Recall@50.902
Recall@100.921

見つからなかったクエリ(127 件中 6 件):

#クエリ期待される結果取得結果(トップ 1)
43複数のリポジトリを管理するための MCP プロキシの設定方法doc/MCP_INTEGRATION.md:286-311doc/MCP_INTEGRATION.md:286-4
51octocode を使用する前の前提条件doc/GETTING_STARTED.md:6-12doc/CONTRIBUTING.md:7-33
59API のレート制限に達した場合の対処方法doc/GETTING_STARTED.md:209-216doc/PERFORMANCE.md:304-356
75小規模、中規模、大規模プロジェクトの一般的なパフォーマンス指標doc/PERFORMANCE.md:4-13doc/PERFORMANCE.md:414-14
112さまざまな OS で octocode をインストールする方法INSTALL.md:4-14INSTALL.md:49-70
115macOS Gatekeeper によってバイナリがブロックされる場合の解決方法INSTALL.md:199-206INSTALL.md:198-119
コード検索(--mode code)— Hit@10: 0.992、MRR: 0.895
指標スコア
Hit@50.992 (126/127)
Hit@100.992 (126/127)
MRR0.895
NDCG@100.906
Recall@50.962
Recall@100.974

見つからなかったクエリ(127 件中 1 件):

#クエリ期待される結果取得結果(トップ 1)
1052 人の開発者が同じデータベースパスを取得することをシステムはどのように保証するのかsrc/storage.rs:60-83src/mcp/proxy.rs:631-644

指標:Hit@k(回答が見つかったか?)、MRR(順位はどの程度か?)、NDCG@10(最良の結果が上位にランク付けされているか?)、Recall@k(いくつ見つかったか?)。手法、スコアリングスクリプト、データセット全体についてはbenchmark/を参照してください。

🤝 コミュニティとサポート

⚖️ ライセンス

Apache License 2.0 — 詳細はLICENSEを参照してください。


香港のMuvonが🦀 Rustで開発

⭐ スター • 🍴 フォーク • 📣 シェア

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。