Token导航 LogoToken导航TokenDH.com
kodit (Helixml) logo
开发工具stdio官方级别未说明来源级核验

kodit (Helixml)

MCP Server

MCP server to index external repositories

工具数

15

提示词数

0

GitHub Stars

119

资源数

0
代码搜索搜索GoClaudeClaudeCursorCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

helixml

提供方

helixml

最后核验

2026/5/18 04:05

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 8080:8080 registry.helix.ml/helix/kodit:latest

详细介绍

Kodit

A code and document intelligence server that indexes Git repositories and provides search through MCP and REST APIs.

![License](./LICENSE) ![Discussions](https://github.com/helixml/kodit/discussions)

当AI编码助手能够访问您代码库中的真实示例时,他们的工作效果会更好。Kodit为您的存储库建立索引,将源文件拆分为可搜索的片段,并将其提供给任何兼容MCP的助手。当你的助手需要编写新代码时,它会首先查询Kodit,并从你自己的项目中获取相关的最新示例。

Kodit还处理文档。PDF、Word文件、PowerPoint演示文稿和电子表格都经过光栅化和索引,因此您可以在一个地方搜索代码和文档。

您将获得:

  • 多种搜索策略 包括BM25关键字搜索、语义向量搜索、正则表达式grep和可视化文档搜索,每个都作为单独的MCP工具公开,以便您的助手为每个查询选择正确的方法
  • MCP服务器 适用于Claude Code、Cursor、Cline、Kilo Code和任何其他MCP兼容助手
  • REST API 用于对搜索、存储库、丰富和索引状态进行程序化访问
  • 人工智能富集 (可选)包括体系结构文档、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

验证它是否正常工作

在上打开交互式API文档 http://localhost:8080/docs.

或者索引一个小型存储库并运行搜索:

# 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 mcp add --transport http kodit http://localhost:8080/mcp

光标

添加 ~/.cursor/mcp.json:

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

克莱恩

添加到MCP服务器配置(远程服务器选项卡):

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

千码

添加到MCP配置(编辑项目/全局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/rules/kodit.mdcalwaysApply: true 正面。

MCP工具

Kodit将这些工具暴露给连接的AI助手:

工具说明
kodit_repositories列出所有索引存储库
kodit_semantic_search跨代码语义相似性搜索
kodit_keyword_searchBM25关键字搜索
kodit_visual_search搜索文档页面图像
kodit_grep正则表达式模式匹配
kodit_ls按glob模式列出文件
kodit_read_resource按URI读取文件内容
kodit_architecture_docs仓库的架构文档
kodit_api_docsAPI公共文档
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提供程序。请参阅配置参考下的扩展提供程序。

去图书馆

Kodit可以直接作为Go库嵌入。就是这样 螺旋 将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)使用PostgreSQL和VectorChord
WithOpenAI(apiKey)用于嵌入和文本的OpenAI
WithAnthropic(apiKey)文本的拟人克劳德(需要单独的嵌入提供者)
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)在结果中包含丰富文档

转到HTTP客户端

生成的HTTP客户端可用于从Go调用远程Kodit服务器:

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规范自动生成的。请参阅上的交互式API文档 /docs 查看完整的端点列表。

生产部署

对于生产使用,请使用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 头球默认情况下,搜索端点是打开的。

配置参考

配置是通过环境变量完成的。您还可以使用 .env 文件:

kodit serve --env-file .env

服务器

变量默认值描述
HOST0.0.0.0收听地址
PORT8080监听端口
DATA_DIR~/.kodit模型、克隆和数据库的数据目录
DB_URL(空)PostgreSQL连接字符串(如果为空,则使用SQLite)
LOG_LEVELINFO日志详细程度: DEBUG, INFO, WARN, ERROR
LOG_FORMATpretty日志格式: prettyjson
API_KEYS(空)写入终结点用逗号分隔的API密钥
WORKER_COUNT1背景工人人数
SEARCH_LIMIT10默认搜索结果限制
DISABLE_TELEMETRYfalse禁用匿名使用遥测
HTTP_CACHE_DIR(空)用于将HTTP POST响应缓存到磁盘的目录;避免在开发过程中重复调用API
REPORTING_LOG_TIME_INTERVAL5进度报告间隔(秒)

嵌入提供商

这些配置了一个外部嵌入模型。如果未设置,Kodit将使用其内置模型。

变量默认值描述
EMBEDDING_ENDPOINT_BASE_URL(空)嵌入服务的基本URL
EMBEDDING_ENDPOINT_MODEL(空)型号标识符
EMBEDDING_ENDPOINT_API_KEY(空)API键
EMBEDDING_ENDPOINT_MAX_TOKENS0每个请求的最大令牌数(0=提供程序默认值)
EMBEDDING_ENDPOINT_MAX_BATCH_CHARS16000每个嵌入批次的最大总字符数
EMBEDDING_ENDPOINT_MAX_BATCH_SIZE1每批最大项目数
EMBEDDING_ENDPOINT_TIMEOUT60请求超时(秒)
EMBEDDING_ENDPOINT_NUM_PARALLEL_TASKS1并发嵌入请求
EMBEDDING_ENDPOINT_EXTRA_PARAMS(空)嵌入提供程序的JSON编码额外参数
EMBEDDING_ENDPOINT_QUERY_INSTRUCTION(空)非对称检索查询前附加的指令
EMBEDDING_ENDPOINT_DOCUMENT_INSTRUCTION(空)为非对称检索在文档前添加了说明
EMBEDDING_ENDPOINT_SOCKET_PATH(空)本地提供程序的Unix套接字路径(BASE_URL的替代方案)
EMBEDDING_ENDPOINT_MAX_RETRIES5请求失败时的最大重试次数
EMBEDDING_ENDPOINT_INITIAL_DELAY2.0初始重试延迟(秒)
EMBEDDING_ENDPOINT_BACKOFF_FACTOR2.0重试退避倍数

视觉嵌入提供商

这些配置了用于图像和文本视觉嵌入的远程服务。如果未设置,Kodit将使用其内置的SigLIP2模型。

变量默认值描述
VISION_EMBEDDING_ENDPOINT_BASE_URL(空)视觉嵌入服务的基本URL
VISION_EMBEDDING_ENDPOINT_MODEL(空)型号标识符
VISION_EMBEDDING_ENDPOINT_API_KEY(空)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(空)视觉嵌入提供者的JSON编码额外参数
VISION_EMBEDDING_ENDPOINT_QUERY_INSTRUCTION(空)非对称检索查询前附加的指令
VISION_EMBEDDING_ENDPOINT_DOCUMENT_INSTRUCTION(空)为非对称检索在文档前添加了说明
VISION_EMBEDDING_ENDPOINT_SOCKET_PATH(空)本地提供程序的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(空)LLM服务的基本URL
ENRICHMENT_ENDPOINT_MODEL(空)型号标识符
ENRICHMENT_ENDPOINT_API_KEY(空)API键
ENRICHMENT_ENDPOINT_NUM_PARALLEL_TASKS1并发富集请求
ENRICHMENT_ENDPOINT_TIMEOUT60请求超时(秒)
ENRICHMENT_ENDPOINT_EXTRA_PARAMS(空)LLM的JSON编码额外参数
ENRICHMENT_ENDPOINT_MAX_TOKENS0每个响应的最大令牌数(0=提供程序默认值)
ENRICHMENT_ENDPOINT_SOCKET_PATH(空)本地提供程序的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(空)非对称检索查询前附加的指令
ENRICHMENT_ENDPOINT_DOCUMENT_INSTRUCTION(空)为非对称检索在文档前添加了说明

富集通常是索引中最慢的部分,因为每次富集都需要往返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_SIZE1500每块字符数
CHUNK_OVERLAP200相邻块之间的重叠
CHUNK_MIN_SIZE50最小块大小

REST API

完整的API以交互方式记录在 /docs 在正在运行的Kodit实例上。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/ls按glob列出文件

所有写入端点都需要 Authorization: Bearer 标题时 API_KEYS 已设置。

索引如何工作

添加存储库时,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:token@github.com/username/repo.git

# SSH (ensure your SSH key is configured)
git@github.com:username/repo.git

隐私

Kodit尊重 .gitignore.noindex 文件夹。与这些模式匹配的文件将被排除在索引之外。

存储后端

SQLite(默认)

无需配置。Kodit使用FTS5在数据目录中创建SQLite数据库,用于关键字搜索和进程内向量存储。适用于单用户和小团队部署。

PostgreSQL与VectorChord

对于较大的部署,请使用PostgreSQL VectorChord 扩展。这提供了可扩展的矢量搜索和并发访问。设置 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连接错误: 如果你看到 No valid session ID provided 重启Kodit服务器后,在助手中重新加载MCP客户端。MCP会话在服务器重新启动后无法存活。

没有搜索结果: 通过调用来检查索引是否已完成 GET /api/v1/repositories/{id}/status。如果状态显示错误,请使用检查服务器日志 LOG_LEVEL=DEBUG.

未产生的富集: 丰富需要LLM提供者。检查 ENRICHMENT_ENDPOINT_BASE_URLENRICHMENT_ENDPOINT_MODEL 设置。没有这些,Kodit会索引和搜索代码,但不会生成AI文档。

遥测

Kodit收集有限的匿名遥测数据(仅使用元数据,没有用户数据)来指导开发。使用以下命令禁用它:

DISABLE_TELEMETRY=true

商业支持

螺旋 提供了一个基于Kodit构建的托管平台,具有其他功能,包括管理UI、存储库浏览、团队协作和托管基础设施。如需商业支持或企业集成,请联系 founders@helix.ml.

贡献

贡献.md 作为指导方针。

许可证

Apache 2.0

目录标签

目录标签

代码搜索搜索GoClaudedeveloper-toolsaimcpai-code-generationai-codingmcp-server本地部署文档智能Git索引AI编程助手语义搜索

支持客户端

ClaudeCursorCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

15

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP