npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@oomkapwn/enquire-mcp

v3.11.0

Published

MCP server giving AI agents (Claude Code, Claude Desktop, Cursor, ChatGPT, Codex, OpenClaw) persistent long-term memory backed by your local Obsidian markdown vault. Hybrid retrieval (BM25 + ML embeddings + BGE reranker, RRF-fused), HNSW + int8 quantizati

Readme

enquire-mcp

English · 中文 · Español · हिन्दी · العربية · Русский · Português · Français · 日本語

最先进的 Obsidian MCP。为 AI 智能体打造的长期记忆。

别再每次会话都向 Claude、Cursor、ChatGPT、Codex、OpenClaw 重新解释上下文。你的 Obsidian 笔记成为所有 MCP 兼容智能体之间共享、可检索的记忆——你的知识,任何模型,永远属于你。

npm stable build provenance MCP License

⚡ 30 秒安装 · 🧠 应用场景 · 📊 基准测试 · 📖 API 文档 · 💬 横向对比

Claude Code —— 一行命令:

claude mcp add obsidian -- npx -y @oomkapwn/enquire-mcp serve --vault ~/Documents/Obsidian\ Vault

📌 本文档是 README.md 的中文译本,便于中文读者阅读;如有出入,以英文版为准(英文版随每次发布更新)。


问题

每次 AI 会话都从零开始。你一遍遍重复你的项目、你的设计决策、上周调研的结论。各家厂商的"记忆"功能(Claude MemoryChatGPT Memory、Cursor memory)把你的知识锁进某一家的云端——当你切换工具时,它又忘得一干二净。你的知识总在重新开始。

解决方案

让你的 Obsidian 仓库(vault)成为任何 MCP 兼容智能体的持久、可查询的长期记忆。一次安装——你的知识立即可被 Claude Code、Claude Desktop、Cursor、ChatGPT 自定义 GPT、Codex、OpenClaw 以及其他所有 MCP 客户端访问。归你所有的纯 markdown 文件,本地建立索引,用完整的现代信息检索(IR)技术栈检索,跨越每一次会话、每一个模型被召回。

扎根于原文,而非抽取。 对话记忆类工具(mem0、Zep、Supermemory、Memobase)从你的聊天记录里抽取事实,存进一个你读不到的独立存储。enquire-mcp 恰恰相反:它扎根于你已经写下的知识——你自己的 .md 笔记,逐字逐句,附带引用——因此召回结果可审计、可在任意编辑器中编辑,绝不是对你半记得的某次聊天的有损摘要。而与服务端**集群记忆(fleet-memory)**平台(将各智能体的流量改写进共享数据库的多租户云存储)不同,enquire 是单用户、本地优先的——一个完全归你所有、可自行读取/编辑/删除的库,serve 期间零云端调用。

扎根——且具备时效感知。 召回一个事实只是一半;知道它是否仍然成立才是另一半。Memora 基准(2026 年 4 月)表明,记忆系统普遍在"陈旧事实复用"上失败——把一年前的笔记当作今天写的来召回。因为 enquire 的记忆就是你真实的 markdown 文件,每条检索结果都带有从笔记最后修改时间推导出的 age_days(天数)与 stale(是否陈旧)标记,你还可开启时效加权排序(--recency-weight),让较新的笔记优先浮现。你的知识,具备时效感知——而非一团没有时间的混沌。

enquire-mcp 的与众不同之处

  1. 厂商中立。 你的记忆存在 .md 文件里。从 Claude 换到 Cursor——记忆随你而来。
  2. 顶级检索。 混合 BM25 + 多语言向量嵌入 + BGE 交叉编码器重排,经 RRF 融合,配合 HNSW + int8 量化扩展。一个搜索创业公司会搭建的同款 IR 技术栈——开源,集成在一个二进制里。
  3. serve 期间零云端调用。 模型本地缓存(一次性从 HuggingFace 下载)。你的仓库内容永不离开本机。默认即可离线/隔离运行。
  4. 时效感知召回。 每条结果都报告笔记有多旧;可选的时效重排让智能体优先采用新知识,并把陈旧事实标记出来等待复核——这是"遗忘感知"前沿,建立在你的文件本就拥有的 mtime 之上。

46 个工具 · 19 个 MCP 提示词 · 1427+ 单元测试 · 50+ 语言 · v3.11.x 稳定版 · 语义化版本约束 · MIT · npm 构建溯源(SLSA L2)。


⚡ 快速开始

npm install -g @oomkapwn/enquire-mcp
enquire-mcp serve --vault ~/Documents/Obsidian\ Vault

接入任意 MCP 客户端:

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": ["-y", "@oomkapwn/enquire-mcp", "serve", "--vault", "/path/to/vault"]
    }
  }
}

📂 开箱即用的配置见 examples/ —— Claude DesktopCursorChatGPT 自定义 GPT(通过 HTTP 的远程 MCP),以及一份评测用的示例查询集。

想要完整的混合检索能力? 一条命令,零配置上手:

enquire-mcp setup --vault <path>     # 下载模型,构建 FTS5 + 向量库
enquire-mcp serve --vault <path> --persistent-index --enable-reranker --use-hnsw
enquire-mcp doctor --vault <path>    # 彩色 ✓/⚠/✗ 健康检查

🧠 应用场景

1 —— 为 AI 智能体提供长期记忆。 把你的 Obsidian 仓库接入任意 MCP 兼容智能体(Claude Code、Claude Desktop、Cursor、ChatGPT、Codex、OpenClaw)。智能体随即拥有对你写过的每一条会议记录、日记、调研日志、决策文档的持久语义召回——跨会话、跨模型、跨厂商。与 Claude MemoryChatGPT Memory 不同,你的知识不被锁进某家云端;它存在你拥有、可自由迁移的纯 markdown 里。

2 —— 个人知识库 / 第二大脑。 混合检索能为任意措辞、50+ 语言中的任意一种找到正确的笔记。用英文询问两年前一篇俄文日记,也能命中。Wikilink 图增强会把处于你知识图谱中心的笔记上调排名。GraphRAG-light 发现主题社群——找回你早已忘记自己建立过的联系。PDF 融入检索并带 [page: N] 引用,让论文和会议纪要成为一等公民记忆。

3 —— 智能体 RAG / 上下文工程。 obsidian_search 暴露每路信号分数,让智能体看见每条命中为何这样排名。HyDE 在检索前把模糊查询改写成内容丰富的假设答案。子问题分解处理多跳问题,将其拆成相互独立的子查询再融合结果。内置评测套件(NDCG / Recall / MRR)让你在自己的查询上度量检索质量,而非盲信厂商基准。


🚫 何时 enquire-mcp 并不合适

诚实的非目标——遇到以下情况请另选工具:

  • 你要的是字面 / 正则搜索。 ripgrep / grep 对"精确找这个 token"更快更准。enquire 擅长概念性召回——近义词、跨语言、"我关于 X 说过什么"。两者并用:字面用 rg,语义用 enquire。
  • 你的知识在聊天记录里,而非笔记里。 enquire 扎根于你亲手写的 markdown。从聊天记录抽取事实到独立存储的对话记忆工具(mem0、Zep、Supermemory)是另一个品类——见对比
  • 你需要多用户 / 托管 / 同步搜索。 enquire 设计上是本地优先、单仓库的——没有服务端多租户索引。
  • 你的来源不是 Markdown 或 PDF。 .md / .canvas / .base / .pdf 是一等公民;其他格式需先转换。
  • 你想要图形界面或 Obsidian 内置插件。 enquire 是无界面的 MCP 服务 / CLI——它补充 Obsidian,而非取代。(Smart Connections 是内置插件选项。)
  • 你需要在数百万条笔记上做亚毫秒搜索。 HNSW 在大规模下提供 sub-10ms 的 top-K,但 enquire 面向个人 / 团队仓库,而非网页级语料。

🏆 为什么它是最好的

六项其他 Obsidian-MCP 完全没有的能力(GraphRAG-light、独立 .base 执行、HyDE、int8 量化、late-chunking、内置评测套件),外加整套现代 IR 技术栈(BM25 + 向量嵌入 + 交叉编码器重排 + HNSW),而竞品至多只有其中一两项。横向对比:

| 能力 | enquire-mcp | Smart Connections | 其他 Obsidian-MCP | |---|:---:|:---:|:---:| | 混合检索(BM25 + TF-IDF + 向量嵌入,RRF 融合) | ✅ | ❌ | ❌ | | 交叉编码器重排(BGE,实测 +15.5 NDCG@10) | ✅ | ❌ | ❌ | | HNSW 向量索引(sub-10ms top-K,持久化) | ✅ | ❌ | ❌ | | int8 向量量化(向量库体积约 1/4) | ✅ | ❌ | ❌ | | 多语言语义搜索(50+ 语言,本地运行) | ✅ | 💰 付费 | ❌ | | PDF 融入混合检索[page: N] 引用 + OCR) | ✅ | ❌ | ❌ | | Wikilink 图增强检索信号 | ✅ | ❌ | ❌ | | 内置检索质量评测套件(NDCG、Recall、MRR) | ✅ | ❌ | ❌ | | 远程 MCP(HTTP + bearer 鉴权 + 有状态会话) | ✅ | ❌ | 部分 | | MCP 原生(Claude · Cursor · ChatGPT · Codex · OpenClaw · 任意客户端) | ✅ | ❌ 仅 Obsidian | 不一 | | 隐私过滤在每条检索 + 写入路径校验 | ✅ | 不适用 | ❌ | | 46 个生产级工具(34 常驻读 + 4 可选 + 7 受控写 + 1 反馈) | ✅ | 不适用 | 不一 | | GraphRAG-light(Louvain 模块度社群检测) | ✅ 独有 | ❌ | ❌ | | 独立 .base 查询执行(无需运行 Obsidian) | ✅ 独有 | ❌ | ❌ | | HyDE 检索 + 子问题分解 | ✅ 独有 | ❌ | ❌ | | 签名构建溯源(npm + Sigstore,SLSA L2) | ✅ | 不适用 | ❌ | | 独立运行(无需 Obsidian 插件) | ✅ | ❌ 需 Obsidian | 不一 | | 许可证 | MIT,免费 | 专有,付费 | 不一 |

对比基于各项目截至 v3.8.x 稳定版的公开能力。Smart Connections 是付费 Obsidian 插件(非 MCP 服务)。"其他 Obsidian-MCP"指撰写时 GitHub 上的公开开源 Obsidian-MCP 服务。enquire-mcp 的端到端检索基准发布于 docs/benchmarks.md——实测 rerank-bge 相对纯混合检索为 +24.7 MRR / +15.5 NDCG@10(60 条查询消融)。

战略定位:enquire-mcp 是构建在你现有 Obsidian 仓库之上的 Karpathy 式 LLM Wiki 的开源后端。可复利、可溯源的知识。


🏗️ 检索如何工作

obsidian_search 自动探测可用信号并优雅降级:BM25 / FTS5 + TF-IDF + 向量嵌入(HNSW)→ RRF 融合(k=60)→ Wikilink 图增强(α × 入度,单步个性化 PageRank)→ BGE 交叉编码器重排 → 带 per_signal 可观测性的排名结果。每条命中都返回 per_signal: { bm25, tfidf, embeddings },让你看见它为何这样排名。

可分层启用,按需取用:

| 层级 | 启用方式 | 你得到什么 | |---|---|---| | 1 | serve --vault <path> | TF-IDF 余弦(零配置,即时) | | 2 | + --persistent-index | + BM25 / FTS5(sub-100ms top-10) | | 3 | + setup(下载模型 + 构建向量库) | + 多语言 ML 向量嵌入 | | 4 | + --enable-reranker | + BGE 交叉编码器(实测 +15.5 NDCG@10) | | 5 | + --use-hnsw | + 百万级 chunk 规模下 sub-10ms top-K | | 6 | + --include-pdfs | + PDF 融入以上全部 | | 7 | serve-http --bearer-token … | + 远程 MCP(Claude.ai 网页、ChatGPT、Cursor HTTP、移动端) |


🛠️ 全部 46 个工具

共 46 个工具:34 个常驻读(含总入口 obsidian_search)+ 4 个可选读 + 7 个受控写 + 1 个闭环反馈。完整参考见 docs/api.md,涵盖:搜索与检索、Wikilink 与图、Frontmatter 与 Dataview、Canvas、Obsidian Bases、PDF + OCR、社群检测、写入工具(需 --enable-write)等。


🛡️ 信任

| 维度 | 策略 | |---|---| | 默认 | 只读——7 个写工具需 --enable-write 才启用 | | 最小权限 | --disabled-tools / --enabled-tools 可暴露最小工具面(如只读研究智能体仅获 obsidian_search + obsidian_read_note) | | 路径安全 | 每次读写都做 realpath 校验;拒绝指向仓库外的符号链接 | | 隐私过滤 | 在 FTS5 + 向量库 + chunk 资源路径校验;空白名/黑名单时按"失败即拒绝"处理 | | HTTP 传输 | Bearer 鉴权(常量时间 SHA-256 + timingSafeEqual)、按 token 限流、严格 CORS | | 构建发布 | 每个 tag 发布到 npm + GitHub Release · 语义化版本 · 签名构建溯源(npm + Sigstore,SLSA L2) |

完整安全模型见 SECURITY.md · 稳定性边界见 STABILITY.md · 漏洞反馈:[email protected]


❓ 常见问题

需要安装 Obsidian 吗? 不需要。直接读取 .md + .canvas + .pdf。可对任意 Obsidian 格式的仓库工作。

会写入我的仓库吗? 除非你传 --enable-write,否则不会。全部 7 个写工具受控;破坏性操作支持 dry_run

会把数据发到哪里吗? 仅在 enquire-mcp install-model 时(一次性从 HuggingFace 下载 ONNX 权重)。serve 模式从不发起对外 HTTP。向量嵌入与重排都在本地 CPU 运行。

性能如何? 冷构建 FTS5:约 5s/1k 笔记、约 30s/50k。BM25 查询:始终 <100ms。HNSW top-10:任意规模 sub-10ms。 启用 HNSW 持久化时 serve 冷启动约 50ms。

支持哪些语言? 默认 paraphrase-multilingual-MiniLM-L12-v2(50+ 语言),多语言交叉编码器。CJK / 泰文 / 高棉文分词通过 Intl.Segmenter

能远程运行吗? 可以——serve-http 通过 Streamable HTTP 暴露同一个服务。用 Tailscale Funnel 或 Cloudflare Tunnel 套 HTTPS。可配合 claude.ai 网页、ChatGPT 自定义 GPT、Cursor HTTP 模式、移动端 MCP 客户端。见 docs/http-transport.md


🚀 发布

通道:npm install @oomkapwn/enquire-mcp → 最新稳定版(@latest = v3.11.x)。预览版:npm install @oomkapwn/enquire-mcp@rc(最新候选版)。完整变更日志见 CHANGELOG.md · 路线图见 ROADMAP.md

🤝 参与贡献

欢迎 issue 与 PR。开发工作流见 CONTRIBUTING.md;面向智能体的仓库说明见 AGENTS.md

📜 许可证

MIT © Alex (@OomkaBear)