mcpField
D
docdex

docdex

本地服务
github.com/bekirdag开发工具151 周前更新

关于 docdex

docdex 是面向开发者和 AI Agent 的本地优先索引与搜索守护进程,可处理代码库文档和源代码。它结合结构化搜索、代码依赖分析及持久化记忆,代码无需上传到云端向量库。

主要功能

  1. 01本地代码库索引
  2. 02文档与代码排序搜索
  3. 03AST 与依赖影响分析
  4. 04代码库、Agent 和对话记忆
  5. 05共享 CLI、HTTP 与 MCP 守护进程

适用场景

  1. 01在代码库中查找相关文档与代码
  2. 02追踪函数或文件变更的影响
  3. 03存储并回忆项目事实与决策
  4. 04向 AI Agent 提供代码库上下文

MCP 相关

docdex 通过本地守护进程提供 MCP 端点,默认使用 HTTP/SSE,也支持本地 IPC。MCP 客户端可调用其搜索、代码分析和记忆能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bekirdag-docdex": {
"command": "npx",
"args": [
"-y",
"docdex"
]
}
}
}
启动命令npx -y docdex

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmdocdex0.2.99

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

网站 GitHub Actions 工作流状态 GitHub 许可证 GitHub 发布版本 使用 Rust 构建

Docdex

将你的代码仓库转变为快速、私密且值得人类与 AI 信赖的上下文。

Docdex 是一款本地优先的索引器和搜索守护进程,用于文档和源代码。它位于原始文件与 AI 助手之间,提供确定性搜索、代码智能和持久记忆,同时绝不将代码上传到云端向量存储。

⚡ 为什么选择 Docdex?

大多数 AI 工具依赖「grep」(速度快但不够智能)或托管式 RAG(速度慢且需要上传文件)。Docdex 在本地运行,能够理解代码结构,并为 AI Agent 提供持久记忆。

问题常见做法Docdex 的解决方案
查找上下文grep/rg(结果嘈杂,只匹配字面内容)基于意图提供排序后的结构化结果。
代码隐私托管式 RAG(需要上传代码)仅在本地建立索引。 代码始终保留在你的设备上。
搜索孤岛仅限 IDE 的搜索栏共享守护进程,可同时为命令行、HTTP 和 MCP 客户端提供服务。
代码理解能力字符串匹配AST 和影响关系图,用于理解依赖关系和定义。

🚀 功能

  • **📚 文档索引:**即时为代码仓库文档排序并生成摘要。
  • **🧠 AST 和影响关系图:**按函数意图搜索并追踪下游依赖(支持 Rust、Python、JS/TS、Go、Java、C++ 等)。
  • **💾 代码仓库记忆:**在本地存储项目事实、决策和笔记。
  • **👤 Agent 记忆:**在不同代码仓库间记住用户偏好(例如「使用简洁的项目符号」)。
  • **🗂️ 对话记忆:**导入对话记录,精简唤醒信息包,并生成限定于代码仓库的摘要、日志条目和工作记忆。
  • **🕸️ 时序知识图谱:**从归档对话中提取实体、边、事件和面向代码的链接,以便查询时间线和邻近关系。
  • **🧭 唤醒信息和项目地图上下文:**向兼容 OpenAI 的聊天补全接口注入精简的唤醒信息包、准确的用户画像,以及缓存的 Project map: 上下文。
  • **🔌 原生支持 MCP:**自动为 Claude Desktop、Cursor 和 Windsurf 等工具配置。
  • **🌐 Web 增强:**可选的网络搜索,并通过检测到的本地大模型服务进行本地 LLM 筛选。

📦 一次安装,持续运行

安装一次,将 Agent 指向 Docdex,它就会在后台持续运行。

1. 通过 npm 安装(推荐)

需要 Node.js >= 18。安装程序会为你的操作系统(macOS、Linux、Windows)下载正确的二进制文件。

npm i -g docdex

警告

**Windows 要求:**Docdex 使用 MSVC 运行库。运行 docdex/docdexd 前,请安装 Microsoft Visual C++ Redistributable 2015-2022 (x64)。

2. 自动配置

如果你安装了以下任一客户端,Docdex 会自动将其配置为使用本地 MCP 端点(守护进程 HTTP/SSE):

Claude Desktop、Cursor、Windsurf、Cline、Roo Code、Continue、VS Code、PearAI、Void、Zed、Codex。

注意:安装后请重启 AI 客户端。


🛠️ 使用工作流

1. 为代码仓库建立索引

运行一次即可构建索引和图数据。

docdexd index --repo /path/to/my-project

2. 启动守护进程

启动共享服务。它负责处理 HTTP 请求和 MCP 连接。

docdex start
# or: docdexd daemon --host 127.0.0.1 --port 28491

3. 提问(命令行)

你可以直接在终端中聊天。

docdexd chat --repo /path/to/my-project --query "how does auth work?"


🔌 模型上下文协议(MCP)

Docdex 专为充当 AI Agent 的“大脑”而设计。它提供一个供 Agent 连接的 MCP 端点。

架构
flowchart LR
  Repo[Repo on disk] --> Indexer[Docdex Indexer]
  Indexer --> Daemon[Docdex Daemon]
  Daemon -->|HTTP + SSE| MCPClient[MCP Client]
  MCPClient --> Host[AI Agent / Editor]

使用守护进程的 HTTP/SSE 端点。对于沙盒客户端,Docdex 也可通过本地 IPC(Unix 套接字或 Windows 命名管道)提供 MCP 服务,而 HTTP/SSE 仍是大多数 MCP 客户端的默认方式。

手动配置

如果需要手动配置客户端:

JSON(Claude/Cursor/Continue):

{
  "mcpServers": {
    "docdex": {
      "url": "http://127.0.0.1:28491/v1/mcp/sse"
    }
  }
}

Claude Code(CLI)JSON(~/.claude.json 或项目 .mcp.json):

{
  "mcpServers": {
    "docdex": {
      "type": "http",
      "url": "http://127.0.0.1:28491/v1/mcp"
    }
  }
}

TOML(Codex):

[mcp_servers.docdex]
url = "http://127.0.0.1:28491/v1/mcp"
tool_timeout_sec = 300
startup_timeout_sec = 300


🤖 功能与示例

1. AST 与影响分析

不要只查找字符串“addressGenerator”,还要找到它的定义以及它会影响什么。

# Find definition
curl "http://127.0.0.1:28491/v1/ast?name=addressGenerator&pathPrefix=src"

# Track downstream impact (what breaks if I change this?)
curl "http://127.0.0.1:28491/v1/graph/impact?file=src/app.ts&maxDepth=3"

2. 记忆系统

Docdex 允许你存储“事实”,以便之后通过检索帮助回忆。

仓库记忆(针对特定项目):

# Teach the repo a fact
docdexd memory-store --repo . --text "Payments retry up to 3 times with backoff."

# Recall it later
docdexd memory-recall --repo . --query "payments retry policy"

Agent 记忆(用户偏好):

# Set a style preference
docdexd profile add --agent-id "default" --category style --content "Use concise bullet points."

3. 对话记忆

对话记忆默认按仓库范围划分,且为可选功能。无仓库会话必须使用明确的对话命名空间,以免意外复用仓库归档。该子系统会导入对话记录,存储情景摘要和工作记忆,将日记条目和时间知识图谱事实派生到 knowledge.db,并严格控制唤醒预算内的回忆操作。

CLI 归档、日记和钩子命令都是由 HTTP 支持的封装,因此请先启动 docdex start 或 docdexd daemon。

# Archive and inspect transcripts
docdexd conversations import --repo . ./session.txt --format plain_text --agent-id codex
docdexd conversations list --repo . --agent-id codex
docdexd conversations search --repo . "timeline_index"
docdexd conversations read --repo . <session_id>

# Import into an explicit global conversation namespace instead of a repo archive
docdexd conversations import --conversation-namespace shared-team ./session.txt --format plain_text --agent-id codex
docdexd conversations search --conversation-namespace shared-team "timeline_index"

# Keep agent diary notes alongside imported sessions
docdexd diary write --repo . --agent-id codex "Wake-up rollout validated against knowledge.db timeline output."
docdexd diary read --repo . --agent-id codex

# Trigger durable summarization from an external transcript
docdexd hook conversation --repo . \
  --action session_close_summarization \
  --source codex \
  --agent-id codex \
  --transcript ./session.txt \
  --format plain_text \
  --wait-for-processing

# Build a compact wake-up bundle over recent context
curl -X POST http://127.0.0.1:28491/v1/wakeup \
  -H "Content-Type: application/json" \
  -d '{"agent_id":"codex","query":"timeline_index","max_tokens":96}'

# Address the same archive over HTTP without repo_id
curl -X POST http://127.0.0.1:28491/v1/wakeup \
  -H "Content-Type: application/json" \
  -H "x-docdex-conversation-namespace: shared-team" \
  -d '{"agent_id":"codex","query":"timeline_index","max_tokens":96}'

# Explore derived repo-scoped knowledge facts and provenance
curl "http://127.0.0.1:28491/v1/kg/query?q=knowledge.db&limit=10"
curl "http://127.0.0.1:28491/v1/kg/search/nodes?q=knowledge&limit=10"
curl "http://127.0.0.1:28491/v1/kg/neighborhood?entity=knowledge.db&limit=10"
curl "http://127.0.0.1:28491/v1/kg/timeline?entity=knowledge.db&limit=10"

# Chat with wake-up + project-map context and inspect reasoning trace metadata
curl -X POST http://127.0.0.1:28491/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "fake-model",
    "messages": [{"role": "user", "content": "What changed around knowledge.db?"}],
    "docdex": {
      "agent_id": "codex",
      "limit": 6,
      "include_libs": true,
      "dag_session_id": "session-123"
    }
  }'
4. 本地大模型服务

Docdex 会先检测受支持的本地大模型服务,再建议安装任何内容。若 Ollama、vLLM、兼容 llama.cpp 的 OpenAI 端点、LM Studio、LocalAI、SGLang、兼容 TGI 的部署以及运行正常的本地 mcoda Agent 已存在,Docdex 可以复用它们。Ollama 仍是推荐的备用方案,因为它是最简单的引导式设置方式。

  • **设置:**运行 docdex setup,启动交互式向导,查看检测到的服务、模型、嵌入候选项和本地委派 Agent。
  • **检查:**运行 docdexd llm detect --json 或 docdexd llm diagnostics --json,查看服务/模型被选中、跳过或标记为不健康的原因。
  • **手动使用 Ollama 备用方案:**如果未安装可用的服务,请使用 ollama pull nomic-embed-text 拉取备用嵌入模型。
  • 自定义 Ollama URL:
DOCDEX_OLLAMA_BASE_URL=http://127.0.0.1:11434 docdex start --host 127.0.0.1 --port 28491


⚙️ 配置与 HTTP API

Docdex 以本地守护进程的形式运行,提供:

  • CLI 命令:docdexd chat
  • HTTP API:/search、/v1/capabilities、/v1/search/rerank、/v1/search/batch、/v1/chat/completions、/v1/ast、/v1/graph/impact、/v1/conversations/*、/v1/diary/*、/v1/hooks/conversation、/v1/wakeup、/v1/kg/*
  • MCP 端点:/v1/mcp 和 /v1/mcp/sse
  • 能力协商工具:docdex_capabilities、docdex_rerank、docdex_batch_search、docdex_conversation_*、docdex_diary_*、docdex_conversation_hook、docdex_wakeup、docdex_kg_*
多仓库设置

运行单个守护进程,并按需挂载其他仓库。

docdex start --port 28491

# Mount repos and capture repo_id values
curl -X POST "http://127.0.0.1:28491/v1/initialize" \
  -H "Content-Type: application/json" \
  -d '{"rootUri":"file:///path/to/repo-a"}'

curl -X POST "http://127.0.0.1:28491/v1/initialize" \
  -H "Content-Type: application/json" \
  -d '{"rootUri":"file:///path/to/repo-b"}'

注意:

  • 挂载了多个仓库(或守护进程启动时未指定默认仓库)时,请在 HTTP 请求中包含 x-docdex-repo-id: <sha256>。
  • MCP 会话会绑定到 initialize.rootUri 中提供的仓库,并自动复用该仓库。
安全
  • **安全模式:**默认情况下,Docdex 会对非环回绑定强制启用 TLS。
  • **环回:**本地 Agent 可在不使用 TLS 的情况下访问 127.0.0.1。
  • 如需对网络开放(请谨慎使用),请使用 --expose 和 --auth-token。

📚 了解更多

  • 详细用法:docs/usage.md
  • API 参考:docs/http_api.md
  • MCP 规范:docs/mcp/errors.md
README 配图

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。