mcpField
M
Melchizedek

Melchizedek

本地服务
github.com/louis49AI 与智能体730 周前更新

关于 Melchizedek

Melchizedek 为 Claude Code 提供本地持久记忆,自动索引会话记录,并通过混合搜索检索跨项目的历史内容。数据保存在单个 SQLite 文件中,可离线运行。

主要功能

  1. 01自动索引会话记录
  2. 02BM25 与向量混合搜索
  3. 03结果融合与重排序
  4. 04按文件、错误和相似工作搜索
  5. 05管理记忆、会话及项目索引

适用场景

  1. 01查找过去的调试记录与解决方案
  2. 02回顾不同项目中的架构决策
  3. 03检索涉及某个文件的历史对话
  4. 04手动保存或删除记忆内容

MCP 相关

该 MCP 服务向 Claude Code 提供会话搜索、上下文读取和记忆管理工具。钩子可在会话结束后触发自动索引。

配置

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

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

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

安装包
npmmelchizedek1.0.2

工具

还没有获取到工具列表

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

详细介绍

Melchizedek

npm version npm downloads CI License: MIT Donate Donate

Claude Code 的持久记忆。 自动索引每次对话,并通过 MCP 工具提供生产级混合搜索(BM25 + 向量 + 重排器)。100% 本地运行,无需配置、无需 API 密钥、无需账单。


为什么选择 Melchizedek?

Claude Code 会在不同会话之间忘记所有内容,也不了解你的其他项目。Melchizedek 同时解决这两个问题。

它会在后台静默运行,在你工作时为对话建立索引,然后让 Claude 能够搜索你的全部历史记录,涵盖所有项目:过去的调试会话、架构决策、错误解决方案、代码模式。

无云端服务。无需 API 密钥。无需配置。 即插即用,随问随答。

工作原理

~/.claude/projects/**/*.jsonl       (your conversation transcripts - read-only)
        |
        v
  SessionEnd hook                   (auto-triggers after each session)
        |
        v
  +-----------------+
  |  Indexer         |    Parse JSONL -> chunk pairs -> SHA-256 dedup
  |  (better-sqlite3)|    FTS5 tokenize -> vector embed (optional)
  +-----------------+
        |
        v
  ~/.melchizedek/memory.db           (single SQLite file, WAL mode)
        |
        v
  +-----------------+
  |  MCP Server      |    16 search & management tools
  |  (stdio)         |    Hybrid: BM25 + vectors + RRF + reranker
  +-----------------+
        |
        v
  Claude Code                       (searches your history via MCP)
搜索流程——4 级优雅降级

每一层都是可选的。插件可仅使用 BM25 运行,并会随着更多组件可用而不断改进。

级别组件功能依赖项
1BM25 (FTS5)带词干提取的关键词搜索无(始终启用)
2双向量 (sqlite-vec)语义搜索——文本(MiniLM 384d)+ 代码(Jina 768d)@huggingface/transformers(可选)
3RRF 融合通过倒数排名融合合并 BM25、文本向量和代码向量已启用向量
4重排器对排名靠前的结果进行交叉编码器重新评分Transformers.js 或 node-llama-cpp(可选)

性能

使用 npm run bench 测量,数据为 100 个会话、1 000 个块,存储于单个 SQLite 文件中。

指标结果目标
索引(100 个会话)~80 ms< 10 s
BM25 搜索(平均)~0.2 ms< 50 ms
数据库大小(100 个会话)~1.4 MB< 30 MB
每次搜索的 token 数~125< 2 000

快速开始

npm(推荐)
npm install -g melchizedek

将 MCP 服务添加到 Claude Code:

claude mcp add --scope user melchizedek -- melchizedek-server
npx(无需安装)
claude mcp add --scope user melchizedek -- npx melchizedek-server
从源代码安装
git clone https://github.com/louis49/melchizedek.git
cd melchizedek && npm install && npm run build
claude --mcp-config .mcp.json
Claude Code 插件市场 (即将推出)

插件审核尚未完成。在此期间,请使用上方的 npm 或 npx 安装方式。

claude plugin install melchizedek   # not yet available
设置钩子(自动索引)

MCP 服务提供搜索工具,但钩子会触发自动索引。如果不设置钩子,你就需要手动为会话建立索引。

通过市场安装时会自动配置钩子。通过 npm/npx/源代码安装时,请将钩子添加到 ~/.claude/settings.json。

完整的 JSON 配置、钩子参考和故障排查,请参阅 docs/installation.md。

完成设置后,重启 Claude Code。索引将自动开始。

MCP 工具

搜索(从这里开始)
工具描述
m9k_search搜索已索引的对话。返回精简片段。当前项目的结果会获得更高权重。支持 since/until 日期筛选和 order(score、date_asc、date_desc)。
m9k_context获取包含周边上下文的片段(同一会话中的相邻片段)。
m9k_full按 ID 获取片段的完整内容。

渐进式检索模式 - 搜索每个结果约返回 50 个 token,上下文约 200–300 个,完整内容约 500–1000 个。先使用 m9k_search,仅在需要时深入检索。相比加载全部内容,可节省 4 倍 token。

感知上下文的排序 - 当前项目(×1.5)和当前会话(×1.2)的结果会自动优先显示。跨项目的结果仍然可见。

专项搜索
工具描述
m9k_file_history查找曾涉及特定文件的历史对话。
m9k_errors查找针对错误消息的历史解决方案。
m9k_similar_work查找针对类似任务的历史处理方法。优先显示元数据丰富的结果。
内存管理
工具描述
m9k_save手动保存内存备注,以供日后检索。
m9k_sessions列出所有已索引的会话,可按项目筛选。
m9k_info显示内存索引信息:语料库大小、搜索流程、嵌入工作进程、使用指标。
m9k_config查看或更新插件配置。
m9k_forget从索引中永久移除一个片段。
m9k_delete_session从索引中删除一个会话。
m9k_ignore_project将一个项目排除在索引之外。后续会话不会被索引,也可选择清除已有会话。
m9k_unignore_project为先前忽略的项目重新启用索引。已清除的数据不会恢复。
m9k_restart重启 MCP 服务,以便在执行 npm run build 后加载新代码。支持使用 force: true 处理卡住的进程。
使用指南
工具描述
__USAGE_GUIDE幻影工具。其描述会向 Claude 介绍检索模式和可用工具。

配置

默认无需配置。所有选项都可通过 m9k_config 或环境变量进行调整。

设置默认值环境变量
数据库路径~/.melchizedek/memory.dbM9K_DB_PATH
守护进程模式已启用使用 M9K_NO_DAEMON=1 禁用
日志级别warnM9K_LOG_LEVEL
启用嵌入true使用 M9K_EMBEDDINGS=false 禁用
启用重排序true使用 M9K_RERANKER=false 禁用

完整设置参考(20 多个选项、环境变量、配置文件示例)请参阅 docs/configuration.md。

增强搜索

Melchizedek 开箱即用,支持 BM25 关键词搜索。首次使用时会自动下载文本嵌入模型(MiniLM),以支持语义搜索。

有关 GPU 加速的代码嵌入(Ollama)、交叉编码器重排序(GGUF 模型)、特定平台的设置指南和完整的模型参考,请参阅 增强搜索设置。

有何不同?

Melchizedekclaude-historian-mcpclaude-memepisodic-memorymcp-memory-service
GitHub stars npmGitHub stars npmGitHub stars npmGitHub starsGitHub stars PyPI
理念搜索引擎 - 为所有内容建立索引,供你搜索搜索引擎 - 按需扫描 JSONL笔记本 - AI 压缩并保存搜索引擎笔记本 - AI 决定存储哪些内容
索引原始对话是(JSONL 转录)是(直接读取 JSONL,不建立持久索引)压缩摘要是(JSONL)否(手动调用 store_memory)
安装后追溯处理是(补全所有历史记录)是(读取已有文件)否是否(初始为空)
搜索BM25 + 向量 + RRF + 重排序器TF-IDF + 模糊匹配FTS5 + ChromaDB仅向量BM25 + 向量
渐进式检索3 层(搜索/上下文/完整内容)否否否否
100% 离线是是否(压缩需要 API)是是
单文件存储SQLite无(读取原始 JSONL)SQLite + ChromaDBSQLiteSQLite-vec
零配置是是是是是
MCP 工具16104212
许可证MITMITAGPL-3.0MITApache-2.0
双重嵌入(文本 + 代码)是(MiniLM + Jina Code)否否否否
可配置模型是(Transformers.js 或 Ollama)否否(Chroma 内部)否(硬编码)是(ONNX、Ollama、OpenAI、Cloudflare)
重排序器交叉编码器(ONNX、GGUF 或 HTTP)否否否质量评分器(不是搜索重排序器)
隐私全部在本地处理,<private> 标签脱敏全部在本地处理向 Anthropic API 发送数据全部在本地处理全部在本地处理
多实例单例守护进程 - N 个 Claude 窗口共享 1 个进程(Unix 套接字 / Windows 命名管道,本地回退方案)N 个独立进程共享 HTTP 工作进程(:37777)N 个独立进程共享 HTTP 服务
灵感来源

本项目承蒙他人奠基。以下是我们借鉴的关键理念:

项目我们借鉴的内容
CASSRRF 混合融合、SHA-256 去重、自动模糊回退GitHub stars
claude-historian-mcp专用 MCP 工具(file_history、error_solutions)GitHub stars npm
claude-diaryPreCompact 钩子(在执行 /compact 前归档)GitHub stars

已知问题

  • 会话加权未生效 - Claude Code 当前会在 SessionStart 钩子的 stdin 负载中发送空的 session_id,导致 ×1.2 会话加权无法生效。×1.5 项目加权不受影响,并提供主要的上下文感知排序。相关上游问题:#13668(transcript_path 为空)、#9188(session_id 过期)。Melchizedek 的会话加权代码已通过测试并准备就绪,上游修复发布后将自动启用。

隐私

  • 零遥测。 无跟踪、无分析、无网络调用(可选的模型延迟下载除外)。
  • 仅以只读方式处理对话记录。 绝不写入 ~/.claude/projects/。所有数据均位于 ~/.melchizedek/。
  • 支持 <private> 标签。 索引前,<private>...</private> 之间的内容会替换为 [REDACTED]。
  • 仅限本地。 您的对话绝不会离开您的设备。

要求

  • Node.js >= 20
  • Claude Code >= 2.0
  • macOS、Linux 或 Windows

许可证

MIT


“无父无母,无族谱,既无生之始,也无命之终。”

  • 希伯来书 7:3

由 @louis49 构建

评论

支持 Markdown

第一次接触 MCP?

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

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