mcpField
K
Kodit: A Code Indexing MCP Server

Kodit: A Code Indexing MCP Server

ローカル
docs.helix.ml開発ツール12518 週間前に更新

Kodit: A Code Indexing MCP Server について

Kodit は、Git リポジトリのインデックスを作成し、MCP と REST API を通じて検索を提供するコード・ドキュメント インテリジェンス サーバーです。自社プロジェクトの実例を必要とするコーディングアシスタント向けで、コードと文書の両方を扱います。

主な機能

  1. 01BM25 キーワード、セマンティック、正規表現、ビジュアル検索
  2. 02検索方式ごとに個別の MCP ツールとして公開
  3. 03検索とリポジトリ管理のための REST API
  4. 04任意で LLM による補足ドキュメントを生成
  5. 05PDF、Office 文書、画像のビジュアル検索
  6. 06内蔵の埋め込みモデルと SQLite で動作

活用シーン

  1. 01コーディングアシスタントに自社リポジトリの実例を提供
  2. 02コードと PDF・表計算ファイルを横断して検索
  3. 03共有サーバーで複数のリポジトリを一括インデックス化

MCP 対応

Kodit は MCP サーバーとして /mcp エンドポイントで検索、ファイル読み取り、ドキュメント関連のツールを公開し、Claude Code、Cursor、Cline などのクライアントから利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"kodit": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"registry.helix.ml/helix/kodit:latest"
]
}
}
}
起動コマンドdocker run -i --rm registry.helix.ml/helix/kodit:latest

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ociregistry.helix.ml/helix/kodit:latest

ツール

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

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

詳細

Kodit

Kodit

Git リポジトリをインデックス化し、MCP および REST API を通じて検索を提供する、コードとドキュメントのインテリジェンスサーバーです。

License Discussions

AI コーディングアシスタントは、コードベースの実例にアクセスできると、より適切に動作します。Kodit はリポジトリをインデックス化し、ソースファイルを検索可能なスニペットに分割して、MCP 対応のあらゆるアシスタントに提供します。アシスタントが新しいコードを書く必要があるときは、まず Kodit に問い合わせ、あなた自身のプロジェクトから取得した、関連性の高い最新の例を受け取ります。

Kodit はドキュメントにも対応しています。PDF、Word ファイル、PowerPoint の資料、スプレッドシートをラスタライズしてインデックス化するため、コードとドキュメントの両方を一か所で検索できます。

できること:

  • 複数の検索方法:BM25 キーワード検索、セマンティックベクトル検索、正規表現 grep、ビジュアルドキュメント検索を含み、それぞれが個別の MCP ツールとして公開されるため、アシスタントはクエリごとに適切な方法を選択できます
  • MCP サーバー:Claude Code、Cursor、Cline、Kilo Code など、MCP 対応のあらゆるアシスタントで動作します
  • REST API:検索、リポジトリ、エンリッチメント、インデックス化のステータスにプログラムからアクセスできます
  • AI エンリッチメント(オプション):アーキテクチャドキュメント、API ドキュメント、データベーススキーマ検出、クックブックの例、コミットの要約などを LLM で生成できます
  • ドキュメントインテリジェンス:マルチモーダル埋め込みを使用して、PDF のページ、Office ドキュメント、画像をビジュアル検索できます
  • 基本動作に外部依存関係は不要:組み込みの埋め込みモデルと SQLite ストレージを使用します

クイックスタート

Docker(推奨)
docker run -p 8080:8080 registry.helix.ml/helix/kodit:latest

これにより、SQLite ストレージと組み込みの埋め込みモデルを使用して Kodit が起動します。API キーは必要ありません。

ビルド済みバイナリ

リリースページからバイナリをダウンロードして、次のように実行します。

chmod +x kodit
./kodit serve
動作確認

http://localhost:8080/docsでインタラクティブな API ドキュメントを開きます。

または、小さなリポジトリをインデックス化して検索を実行します。

# Index a repository
curl http://localhost:8080/api/v1/repositories \
  -X POST -H "Content-Type: application/json" \
  -d '{
    "data": {
      "type": "repository",
      "attributes": {
        "remote_uri": "https://gist.github.com/philwinder/7aa38185e20433c04c533f2b28f4e217.git"
      }
    }
  }'

# Check indexing progress
curl http://localhost:8080/api/v1/repositories/1/status

# Search (once indexing is complete)
curl http://localhost:8080/api/v1/search \
  -X POST -H "Content-Type: application/json" \
  -d '{
    "data": {
      "type": "search",
      "attributes": {
        "keywords": ["orders"],
        "text": "code to get all orders"
      }
    }
  }'

AI アシスタントへの接続

Kodit は /mcp に MCP エンドポイントを公開しています。アシスタントを接続して、コード検索ツールとして Kodit を使い始めましょう。

Claude Code
claude mcp add --transport http kodit http://localhost:8080/mcp
Cursor

~/.cursor/mcp.jsonに追加します。

{
  "mcpServers": {
    "kodit": {
      "url": "http://localhost:8080/mcp"
    }
  }
}
Cline

MCP サーバー設定(Remote Servers タブ)に追加します。

{
  "mcpServers": {
    "kodit": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "type": "streamableHttp",
      "url": "http://localhost:8080/mcp"
    }
  }
}
Kilo Code

MCP 設定(Edit Project/Global MCP)に追加します。

{
  "mcpServers": {
    "kodit": {
      "type": "streamable-http",
      "url": "http://localhost:8080/mcp",
      "alwaysAllow": [],
      "disabled": false
    }
  }
}

リモートで実行している場合は、http://localhost:8080をサーバーの URL に置き換えてください。

アシスタントに Kodit を使わせる

アシスタントによっては、Kodit のツールを自動的に呼び出さないことがあります。使用を徹底するには、プロジェクトのルールまたはシステムプロンプトに次の内容を追加してください。

For every request that involves writing or modifying code, the assistant's first
action must be to call the kodit search MCP tools. Only produce or edit code after
the tool call returns results.

Cursor では、これをalwaysApply: trueのフロントマターを付けて.cursor/rules/kodit.mdcとして保存してください。

MCP ツール

Kodit は、接続された AI アシスタントに以下のツールを公開します。

ツール説明
kodit_repositoriesインデックス済みのすべてのリポジトリを一覧表示します
kodit_semantic_searchコード全体を対象に意味的類似性で検索します
kodit_keyword_searchBM25 キーワード検索を行います
kodit_visual_searchドキュメントのページ画像を検索します
kodit_grep正規表現パターンに一致するものを検索します
kodit_lsglob パターンでファイルを一覧表示します
kodit_read_resourceURI でファイルの内容を読み取ります
kodit_architecture_docsリポジトリのアーキテクチャドキュメント
kodit_api_docs公開 API ドキュメント
kodit_database_schemaデータベーススキーマのドキュメント
kodit_cookbook使用例とパターン
kodit_commit_descriptionコミットの説明
kodit_wikiWiki の目次
kodit_wiki_page特定の Wiki ページを読み取ります
kodit_versionサーバーのバージョン

エンリッチメントツール(architecture_docs、api_docs、database_schema、cookbook、wiki、commit_description)を使用するには、LLM プロバイダーの設定が必要です。「Configuration Reference」の「Enrichment Providers」を参照してください。

Go ライブラリ

Kodit は Go ライブラリとして直接組み込めます。Helix はこの方法で Kodit を自社プラットフォームに統合しています。

import "github.com/helixml/kodit"

client, err := kodit.New(
    kodit.WithSQLite(".kodit/data.db"),
)
if err != nil {
    log.Fatal(err)
}
defer client.Close()

// Index a repository
_, _, err = client.Repositories.Add(ctx, &service.RepositoryAddParams{
    URL: "https://github.com/kubernetes/kubernetes",
})

// Search
results, err := client.Search.Query(ctx, "create a deployment",
    service.WithLimit(10),
)

for _, result := range results.Enrichments() {
    fmt.Println(result.Subtype(), result.Content())
}
ライブラリのオプション
オプション説明
WithSQLite(path)ストレージに SQLite を使用します
WithPostgresVectorchord(dsn)VectorChord を使用して PostgreSQL を使用します
WithOpenAI(apiKey)埋め込みとテキスト生成に OpenAI を使用します
WithAnthropic(apiKey)テキスト生成に Anthropic Claude を使用します(別途、埋め込みプロバイダーが必要です)
WithTextProvider(p)カスタムのテキスト生成プロバイダー
WithEmbeddingProvider(p)カスタムの埋め込みプロバイダー
WithRAGPipeline()LLM によるエンリッチメントを省略し、インデックス作成と検索のみを行います
WithFullPipeline()すべてのエンリッチメントを必須にします(テキストプロバイダーがない場合はエラーになります)
WithDataDir(dir)データディレクトリ(デフォルト:~/.kodit)
WithCloneDir(dir)リポジトリのクローン先ディレクトリ
WithAPIKeys(keys...)HTTP 認証用の API キー
WithWorkerCount(n)バックグラウンドワーカーの数(デフォルト:1)
WithPeriodicSyncConfig(cfg)リポジトリの自動同期設定
検索オプション
オプション説明
WithSemanticWeight(w)意味検索とキーワード検索の重み(0.0~1.0)
WithLimit(n)結果の最大数
WithOffset(n)ページネーションのオフセット
WithLanguages(langs...)プログラミング言語で絞り込みます
WithRepositories(ids...)リポジトリ ID で絞り込みます
WithMinScore(score)最小スコアのしきい値
WithEnrichmentTypes(types...)特定のエンリッチメントタイプに結果を絞り込みます
WithSnippets(include)結果にコードスニペットを含めます
WithDocuments(include)結果にエンリッチメントドキュメントを含めます
Go HTTP クライアント

Go からリモートの Kodit サーバーを呼び出すための、生成済み HTTP クライアントを利用できます。

go get github.com/helixml/kodit/clients/go
import koditclient "github.com/helixml/kodit/clients/go"

client, err := koditclient.NewClient("https://kodit.example.com")

// List repositories
resp, err := client.GetRepositories(ctx, nil)

// Search
text := "create a deployment"
resp, err := client.PostSearch(ctx, koditclient.PostSearchJSONRequestBody{
    Data: &koditclient.DtoSearchData{
        Attributes: &koditclient.DtoSearchAttributes{
            Text: &text,
        },
    },
})

型は OpenAPI 仕様から自動生成されます。すべてのエンドポイントの一覧については、/docs のインタラクティブ API ドキュメントを参照してください。

本番環境へのデプロイ

本番環境で使用する場合は、スケーラブルなベクトル検索のために PostgreSQL(VectorChord)を使用し、エンリッチメント用の専用 LLM プロバイダーとともにデプロイしてください。

Docker Compose

これを docker-compose.yaml として保存します。

services:
  kodit:
    image: registry.helix.ml/helix/kodit:latest
    ports:
      - "8080:8080"
    command: ["serve"]
    restart: unless-stopped
    depends_on:
      - vectorchord
    environment:
      DATA_DIR: /data
      DB_URL: postgresql://postgres:mysecretpassword@vectorchord:5432/kodit

      # Enrichment LLM (optional, enables AI-generated docs)
      ENRICHMENT_ENDPOINT_BASE_URL: http://ollama:11434
      ENRICHMENT_ENDPOINT_MODEL: ollama/qwen3:1.7b

      # External embedding provider (optional, replaces built-in model)
      # EMBEDDING_ENDPOINT_API_KEY: sk-proj-xxxx
      # EMBEDDING_ENDPOINT_MODEL: openai/text-embedding-3-small

      LOG_LEVEL: INFO
      API_KEYS: ${KODIT_API_KEYS:-}
    volumes:
      - kodit-data:/data

  vectorchord:
    image: tensorchord/vchord-suite:pg17-20250601
    environment:
      POSTGRES_DB: kodit
      POSTGRES_PASSWORD: mysecretpassword
    volumes:
      - vectorchord-data:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  kodit-data:
  vectorchord-data:
Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vectorchord
spec:
  replicas: 1
  selector:
    matchLabels:
      app: vectorchord
  template:
    metadata:
      labels:
        app: vectorchord
    spec:
      containers:
        - name: vectorchord
          image: tensorchord/vchord-suite:pg17-20250601
          env:
            - name: POSTGRES_DB
              value: kodit
            - name: POSTGRES_PASSWORD
              value: mysecretpassword
          ports:
            - containerPort: 5432
---
apiVersion: v1
kind: Service
metadata:
  name: vectorchord
spec:
  selector:
    app: vectorchord
  ports:
    - port: 5432
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kodit
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kodit
  template:
    metadata:
      labels:
        app: kodit
    spec:
      containers:
        - name: kodit
          image: registry.helix.ml/helix/kodit:latest # pin to a specific version
          args: ["serve"]
          env: [] # see Configuration Reference for environment variables
          ports:
            - containerPort: 8080
          readinessProbe:
            httpGet:
              path: /
              port: 8080
            initialDelaySeconds: 10
            periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
  name: kodit
spec:
  type: LoadBalancer
  selector:
    app: kodit
  ports:
    - port: 8080
認証

API_KEYS 環境変数に、カンマ区切りのキー一覧を設定します。書き込みエンドポイント(リポジトリの作成、同期の開始)では、Authorization: Bearer <key> ヘッダーに有効なキーが必要です。検索エンドポイントはデフォルトで公開されています。

設定リファレンス

設定は環境変数で行います。.env ファイルも使用できます。

kodit serve --env-file .env
サーバー
変数デフォルト説明
HOST0.0.0.0リッスンアドレス
PORT8080リッスンポート
DATA_DIR~/.koditモデル、クローン、データベース用のデータディレクトリ
DB_URL(empty)PostgreSQL 接続文字列(空の場合は SQLite を使用)
LOG_LEVELINFOログの詳細度:DEBUG、INFO、WARN、ERROR
LOG_FORMATprettyログ形式:pretty または json
API_KEYS(empty)書き込みエンドポイント用の、カンマ区切りの API キー
WORKER_COUNT1バックグラウンドワーカーの数
SEARCH_LIMIT10デフォルトの検索結果数の上限
DISABLE_TELEMETRYfalse匿名の使用状況テレメトリーを無効化します
HTTP_CACHE_DIR(empty)HTTP POST レスポンスをディスクにキャッシュするディレクトリ。開発中に API が繰り返し呼び出されるのを防ぎます
REPORTING_LOG_TIME_INTERVAL5進捗を報告する間隔(秒)
埋め込みプロバイダー

これらは外部の埋め込みモデルを設定します。設定されていない場合、Kodit は組み込みモデルを使用します。

変数デフォルト説明
EMBEDDING_ENDPOINT_BASE_URL(empty)埋め込みサービスのベース URL
EMBEDDING_ENDPOINT_MODEL(empty)モデル識別子
EMBEDDING_ENDPOINT_API_KEY(empty)API キー
EMBEDDING_ENDPOINT_MAX_TOKENS0リクエストあたりの最大トークン数(0 = プロバイダーのデフォルト)
EMBEDDING_ENDPOINT_MAX_BATCH_CHARS160001 回の埋め込みバッチに含める文字数の合計上限
EMBEDDING_ENDPOINT_MAX_BATCH_SIZE1バッチあたりの最大項目数
EMBEDDING_ENDPOINT_TIMEOUT60リクエストのタイムアウト時間(秒)
EMBEDDING_ENDPOINT_NUM_PARALLEL_TASKS1同時に実行する埋め込みリクエスト数
EMBEDDING_ENDPOINT_EXTRA_PARAMS(empty)埋め込みプロバイダー用の追加パラメーター(JSON 形式)
EMBEDDING_ENDPOINT_QUERY_INSTRUCTION(empty)非対称検索用にクエリの先頭に付加する指示
EMBEDDING_ENDPOINT_DOCUMENT_INSTRUCTION(empty)非対称検索用にドキュメントの先頭に付加する指示
EMBEDDING_ENDPOINT_SOCKET_PATH(empty)ローカルプロバイダー用の Unix ソケットパス(BASE_URL の代替)
EMBEDDING_ENDPOINT_MAX_RETRIES5リクエスト失敗時の最大再試行回数
EMBEDDING_ENDPOINT_INITIAL_DELAY2.0再試行までの初期待機時間(秒)
EMBEDDING_ENDPOINT_BACKOFF_FACTOR2.0再試行のバックオフ倍率
ビジョン埋め込みプロバイダー

画像およびテキストのビジョン埋め込みを行うリモートサービスを設定します。設定されていない場合、Kodit は組み込みの SigLIP2 モデルを使用します。

変数デフォルト説明
VISION_EMBEDDING_ENDPOINT_BASE_URL(empty)ビジョン埋め込みサービスのベース URL
VISION_EMBEDDING_ENDPOINT_MODEL(empty)モデル識別子
VISION_EMBEDDING_ENDPOINT_API_KEY(empty)API キー
VISION_EMBEDDING_ENDPOINT_MAX_TOKENS0リクエストあたりの最大トークン数(0 = プロバイダーのデフォルト)
VISION_EMBEDDING_ENDPOINT_MAX_BATCH_CHARS16000埋め込みバッチあたりの最大合計文字数
VISION_EMBEDDING_ENDPOINT_MAX_BATCH_SIZE1バッチあたりの最大項目数
VISION_EMBEDDING_ENDPOINT_TIMEOUT60リクエストのタイムアウト(秒)
VISION_EMBEDDING_ENDPOINT_NUM_PARALLEL_TASKS1同時に実行するビジョン埋め込みリクエスト数
VISION_EMBEDDING_ENDPOINT_EXTRA_PARAMS(empty)ビジョン埋め込みプロバイダー用の JSON エンコードされた追加パラメーター
VISION_EMBEDDING_ENDPOINT_QUERY_INSTRUCTION(empty)非対称検索のためにクエリの先頭に付加する指示
VISION_EMBEDDING_ENDPOINT_DOCUMENT_INSTRUCTION(empty)非対称検索のためにドキュメントの先頭に付加する指示
VISION_EMBEDDING_ENDPOINT_SOCKET_PATH(empty)ローカルプロバイダー用の Unix ソケットパス(BASE_URL の代替)
VISION_EMBEDDING_ENDPOINT_MAX_RETRIES5リクエスト失敗時の最大再試行回数
VISION_EMBEDDING_ENDPOINT_INITIAL_DELAY2.0初回再試行までの遅延時間(秒)
VISION_EMBEDDING_ENDPOINT_BACKOFF_FACTOR2.0再試行のバックオフ倍率
エンリッチメントプロバイダー

アーキテクチャドキュメント、API ドキュメント、データベーススキーマ、クックブック、コミットの要約、Wiki ページを生成するための LLM を設定します。設定しない場合、Kodit はコードのインデックス作成と検索を行いますが、AI ドキュメントは生成しません。

変数デフォルト説明
ENRICHMENT_ENDPOINT_BASE_URL(empty)LLM サービスのベース URL
ENRICHMENT_ENDPOINT_MODEL(empty)モデル識別子
ENRICHMENT_ENDPOINT_API_KEY(empty)API キー
ENRICHMENT_ENDPOINT_NUM_PARALLEL_TASKS1同時に実行するエンリッチメントリクエスト数
ENRICHMENT_ENDPOINT_TIMEOUT60リクエストのタイムアウト(秒)
ENRICHMENT_ENDPOINT_EXTRA_PARAMS(empty)LLM 用の JSON エンコードされた追加パラメーター
ENRICHMENT_ENDPOINT_MAX_TOKENS0レスポンスあたりの最大トークン数(0 = プロバイダーのデフォルト)
ENRICHMENT_ENDPOINT_SOCKET_PATH(empty)ローカルプロバイダー用の Unix ソケットパス(BASE_URL の代替)
ENRICHMENT_ENDPOINT_MAX_RETRIES5リクエスト失敗時の最大再試行回数
ENRICHMENT_ENDPOINT_INITIAL_DELAY2.0初回再試行までの遅延時間(秒)
ENRICHMENT_ENDPOINT_BACKOFF_FACTOR2.0再試行のバックオフ倍率
ENRICHMENT_ENDPOINT_MAX_BATCH_CHARS16000バッチあたりの最大合計文字数
ENRICHMENT_ENDPOINT_MAX_BATCH_SIZE1バッチあたりの最大項目数
ENRICHMENT_ENDPOINT_QUERY_INSTRUCTION(empty)非対称検索のためにクエリの先頭に付加する指示
ENRICHMENT_ENDPOINT_DOCUMENT_INSTRUCTION(empty)非対称検索のためにドキュメントの先頭に付加する指示

各エンリッチメントで LLM プロバイダーへの往復通信が必要になるため、インデックス作成で最も時間がかかるのは通常エンリッチメントです。NUM_PARALLEL_TASKS を増やすと処理を高速化できますが、プロバイダーのレート制限を守ってください。低い値から始め、時間をかけて増やしてください。

プロバイダーの例:

# OpenAI
ENRICHMENT_ENDPOINT_BASE_URL=https://api.openai.com/v1
ENRICHMENT_ENDPOINT_MODEL=gpt-4o-mini
ENRICHMENT_ENDPOINT_API_KEY=sk-proj-xxxx

# Ollama (local)
ENRICHMENT_ENDPOINT_BASE_URL=http://localhost:11434
ENRICHMENT_ENDPOINT_MODEL=ollama/qwen3:1.7b

# Helix (private cloud)
ENRICHMENT_ENDPOINT_BASE_URL=https://app.helix.ml/v1
ENRICHMENT_ENDPOINT_MODEL=Qwen/Qwen3-8B
ENRICHMENT_ENDPOINT_API_KEY=your-helix-key
定期同期
変数デフォルト説明
PERIODIC_SYNC_ENABLEDtrue一定間隔でリポジトリを自動同期する
PERIODIC_SYNC_INTERVAL_SECONDS1800同期間隔(デフォルト:30 分)
PERIODIC_SYNC_RETRY_ATTEMPTS3同期失敗時の再試行回数
チャンク分割
変数デフォルト説明
CHUNK_SIZE15001 チャンクあたりの文字数
CHUNK_OVERLAP200隣接するチャンク間の重複文字数
CHUNK_MIN_SIZE50チャンクの最小サイズ

REST API

API の詳細なドキュメントは、Kodit の実行中のインスタンスで /docs からインタラクティブに確認できます。OpenAPI 3.0 仕様は /docs/openapi.json で利用できます。

主なエンドポイント:

メソッドパス説明
POST/api/v1/repositoriesインデックス作成するリポジトリを追加します
GET/api/v1/repositoriesインデックス作成済みのリポジトリを一覧表示します
GET/api/v1/repositories/{id}/statusインデックス作成の進捗を確認します
POST/api/v1/repositories/{id}/sync同期を開始します
DELETE/api/v1/repositories/{id}リポジトリを削除します
POST/api/v1/searchキーワード検索とセマンティック検索を組み合わせて実行します
GET/api/v1/search/semanticセマンティック検索のみを実行します
GET/api/v1/search/keywordキーワード検索のみを実行します
GET/api/v1/search/visualドキュメントページを対象にビジュアル検索を実行します
GET/api/v1/search/grep正規表現パターンで検索します
GET/api/v1/search/lsglob パターンでファイルを一覧表示します

API_KEYS が設定されている場合、すべての書き込みエンドポイントで Authorization: Bearer <key> ヘッダーが必要です。

インデックス作成の仕組み

リポジトリを追加すると、Kodit は次のパイプラインを実行します。

  1. Git リポジトリをローカルストレージにクローンします
  2. コミット、ブランチ、タグをスキャンしてメタデータを抽出します
  3. ソースファイルを重複するテキストチャンクに分割してスニペットを抽出します
  4. BM25(キーワード)とベクトル埋め込み(セマンティック)を使用して検索インデックスを構築します
  5. LLM プロバイダーが設定されている場合、拡充情報を生成します(アーキテクチャドキュメント、API ドキュメント、データベーススキーマ、クックブックの例、コミットの要約、Wiki ページ)

Kodit は同期の間に変更されたファイルを追跡し、変更されたコンテンツのみを再処理します。リポジトリは設定可能な間隔(デフォルト:30 分ごと)で自動的に同期されます。

対応ソース

Kodit は、HTTPS、SSH、または Git プロトコル経由でアクセスできるあらゆる Git リポジトリをインデックス化します。GitHub、GitLab、Bitbucket、Azure DevOps、セルフホストサーバーが含まれます。

プライベートリポジトリ

プライベートリポジトリは、個人アクセストークンまたは SSH キーを使って利用できます。

# HTTPS with token
https://username:[email protected]/username/repo.git

# SSH (ensure your SSH key is configured)
[email protected]:username/repo.git
プライバシー

Kodit は .gitignore ファイルと .noindex ファイルに従います。これらのパターンに一致するファイルはインデックス作成から除外されます。

ストレージバックエンド

SQLite(デフォルト)

設定は不要です。Kodit はデータディレクトリに、キーワード検索用の FTS5 とプロセス内ベクトルストレージを備えた SQLite データベースを作成します。単一ユーザーや小規模チームでのデプロイに適しています。

VectorChord を使用した PostgreSQL

大規模なデプロイでは、VectorChord 拡張機能を備えた PostgreSQL を使用してください。これにより、スケーラブルなベクトル検索と同時アクセスが可能になります。DB_URL 環境変数に接続文字列を設定してください。

推奨される Docker イメージは tensorchord/vchord-suite:pg17-20250601 です。PostgreSQL 17 に VectorChord、vchord_bm25、pg_tokenizer が同梱されています。

ソースからのビルド

git clone https://github.com/helixml/kodit.git
cd kodit
make tools          # Install development tools
make download-model # Download the built-in embedding model
make build          # Build the binary
./bin/kodit version
./bin/kodit serve

テストを実行します。

make test                         # All tests
make test PKG=./internal/foo/...  # Specific package
make check                        # Format, vet, lint, and test

トラブルシューティング

再起動後に MCP 接続エラーが発生する場合: Kodit サーバーの再起動後に No valid session ID provided が表示された場合は、アシスタント内で MCP クライアントを再読み込みしてください。MCP セッションはサーバーの再起動後も維持されません。

検索結果が見つからない場合: GET /api/v1/repositories/{id}/status を呼び出して、インデックス作成が完了していることを確認してください。ステータスにエラーが表示される場合は、LOG_LEVEL=DEBUG を指定してサーバーログを確認してください。

拡充情報が生成されない場合: 拡充情報の生成には LLM プロバイダーが必要です。ENRICHMENT_ENDPOINT_BASE_URL と ENRICHMENT_ENDPOINT_MODEL が設定されていることを確認してください。これらが設定されていない場合、Kodit はコードのインデックス作成と検索を行いますが、AI ドキュメントは生成しません。

テレメトリ

Kodit は開発の指針とするため、限定的な匿名テレメトリ(使用状況のメタデータのみで、ユーザーデータは含まれません)を収集します。次の方法で無効にできます。

DISABLE_TELEMETRY=true

商用サポート

Helix は、管理 UI、リポジトリの閲覧、チームでのコラボレーション、ホスト型インフラストラクチャなどの追加機能を備えた、Kodit ベースのマネージドプラットフォームを提供しています。商用サポートまたはエンタープライズ向けの統合については、[email protected] までお問い合わせください。

コントリビューション

ガイドラインについては、CONTRIBUTING.md をご覧ください。

ライセンス

Apache 2.0

コメント

MCP は初めてですか?

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

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