@oomkapwn/enquire-mcp 3.5.1 → 3.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -1
- package/README.md +10 -5
- package/SECURITY.md +4 -5
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
4
4
|
|
|
5
|
+
## [3.5.3] — 2026-05-09
|
|
6
|
+
|
|
7
|
+
**Patch — CHANGELOG cleanup.** No code or config changes. Removes references to internal operational notes from the v3.5.1 / v3.5.2 entries that are not relevant to consumers of the package. Repository-level admin items are tracked privately, not in the public CHANGELOG.
|
|
8
|
+
|
|
9
|
+
## [3.5.2] — 2026-05-09
|
|
10
|
+
|
|
11
|
+
**Patch — README marketing boost + SECURITY.md PVR mention.** Companion to v3.5.1. No code changes.
|
|
12
|
+
|
|
13
|
+
### Changed — README leads with a punchier value claim
|
|
14
|
+
|
|
15
|
+
- Hero callout (`> First and only Obsidian-MCP that ships hybrid retrieval, cross-encoder reranking, HNSW, int8 quantization, late-chunking, HyDE, GraphRAG-light, standalone .base, PDFs + OCR, and stateful remote MCP — together. In one binary. Under MIT. SLSA-3 signed.`) replaces the prior generic `What it is` lead. The factual claims are individually defensible from the v3.0 competitive audit + each subsequent sprint's CHANGELOG.
|
|
16
|
+
- Comparison table preamble: `Six features no other Obsidian-MCP has at all (GraphRAG-light, standalone .base execution, HyDE, int8 quantization, late-chunking, built-in eval harness). Plus the entire modern IR stack...` — quantifies the lead instead of generic superlatives.
|
|
17
|
+
- New comparison rows: **Standalone `.base` query execution** (✅ only here), **HyDE retrieval + sub-question decomposition** (✅ only here). These two were already in the feature inventory but weren't called out in the comparison table.
|
|
18
|
+
- Added npm-downloads badge for live discoverability signal.
|
|
19
|
+
|
|
20
|
+
### Changed — SECURITY.md leads with GitHub Private Vulnerability Reporting
|
|
21
|
+
|
|
22
|
+
Reporting a vulnerability now offers two channels: **GitHub PVR (preferred)** with a direct link to the advisory submission flow, plus the existing email fallback. Aligns with the GitHub Code Security recommendation for public repos.
|
|
23
|
+
|
|
24
|
+
### Tests
|
|
25
|
+
|
|
26
|
+
664 unit tests pass (unchanged from v3.5.1). Marketing-copy + security-doc changes don't affect the CI surface.
|
|
27
|
+
|
|
28
|
+
### Migration
|
|
29
|
+
|
|
30
|
+
**No-op for default users.** No CLI / response shape / schema changes.
|
|
31
|
+
|
|
32
|
+
### Repo About + topics
|
|
33
|
+
|
|
34
|
+
Repo About description synced to current v3.x feature set; topics rotated for discovery (high-signal additions: `obsidian-mcp`, `mcp-server`, `claude-desktop`, `chatgpt`, `rag`, `vector-search`, `hnsw`, `pdf`, `ocr`).
|
|
35
|
+
|
|
5
36
|
## [3.5.1] — 2026-05-09
|
|
6
37
|
|
|
7
38
|
**Patch — audit-driven public-claim sync.** No behavior changes. External audit identified drift between README, STABILITY.md, CONTRIBUTING.md, CLI help, and `package.json` numeric claims (tools, tests, gates, write tools, prompts, dependencies). Production-grade projects can't ship inconsistent public surfaces — this release fixes that and pins it under CI.
|
|
@@ -54,7 +85,7 @@ The audit also flagged three structural issues that need their own focused work,
|
|
|
54
85
|
|
|
55
86
|
1. **`src/index.ts` is 3,673 lines + excluded from coverage.** Splitting it into `cli.ts` / `server.ts` / `tool-registry.ts` / `prompts.ts` / `options.ts` is a multi-day refactor. Tracking for v3.6+.
|
|
56
87
|
2. **Machine-readable tool registry** (`tools.json` or similar) as single source of truth for README + docs/api.md + STABILITY.md + CLI help generation. Would replace the current invariant-tests-as-defense pattern with generation. Tracking for v3.6+.
|
|
57
|
-
3. **
|
|
88
|
+
3. **Repo-level configuration items** that require maintainer admin access (separate from code changes — handled out-of-band).
|
|
58
89
|
|
|
59
90
|
## [3.5.0] — 2026-05-09
|
|
60
91
|
|
package/README.md
CHANGED
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
|
|
7
7
|
### The most advanced Obsidian MCP server. Period.
|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**Every modern IR primitive. In one tool. For free.**
|
|
10
10
|
|
|
11
11
|
[](https://github.com/oomkapwn/enquire-mcp/actions/workflows/ci.yml)
|
|
12
12
|
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
13
|
-
[](https://www.npmjs.com/package/@oomkapwn/enquire-mcp)
|
|
14
|
+
[](#trust)
|
|
14
15
|
[](./STABILITY.md)
|
|
15
16
|
[](https://slsa.dev/spec/v1.0/levels#build-l3)
|
|
16
17
|
[](https://modelcontextprotocol.io/)
|
|
@@ -20,11 +21,13 @@
|
|
|
20
21
|
|
|
21
22
|
---
|
|
22
23
|
|
|
24
|
+
> **First and only Obsidian-MCP that ships hybrid retrieval, cross-encoder reranking, HNSW, int8 quantization, late-chunking, HyDE, GraphRAG-light community detection, standalone `.base` query execution, PDFs + OCR, and stateful remote MCP — together. In one binary. Under MIT. SLSA-3 signed.**
|
|
25
|
+
|
|
23
26
|
## What it is
|
|
24
27
|
|
|
25
|
-
A **production-ready MCP server** that gives any AI agent — Claude Code, Claude Desktop, Cursor, ChatGPT custom GPT, Codex, mobile MCP clients — structured access to your Obsidian vault. The umbrella `obsidian_search` tool fuses **BM25 + TF-IDF + multilingual ML embeddings** via Reciprocal Rank Fusion, reranks with a **BGE cross-encoder
|
|
28
|
+
A **production-ready MCP server** that gives any AI agent — Claude Code, Claude Desktop, Cursor, ChatGPT custom GPT, Codex, mobile MCP clients — structured access to your Obsidian vault. The umbrella `obsidian_search` tool fuses **BM25 + TF-IDF + multilingual ML embeddings** via Reciprocal Rank Fusion (Cormack et al, 2009), reranks with a **BGE cross-encoder** (5 model options), scales to millions of chunks via **HNSW with int8 quantization**, and returns blended markdown + PDF hits with `[page: N]` citations.
|
|
26
29
|
|
|
27
|
-
**44 tools · 19 MCP prompts · 664 unit tests · v3.5 · semver-bound · MIT · SLSA-3.**
|
|
30
|
+
**44 tools · 19 MCP prompts · 664 unit tests · 50+ languages · v3.5 · semver-bound · MIT · SLSA-3.**
|
|
28
31
|
|
|
29
32
|
---
|
|
30
33
|
|
|
@@ -62,7 +65,7 @@ enquire-mcp doctor --vault <path> # color-coded ✓/⚠/✗ health check
|
|
|
62
65
|
|
|
63
66
|
## 🏆 Why it's the best
|
|
64
67
|
|
|
65
|
-
|
|
68
|
+
**Six features no other Obsidian-MCP has at all** (GraphRAG-light, standalone `.base` execution, HyDE, int8 quantization, late-chunking, built-in eval harness). **Plus the entire modern IR stack** (BM25 + ML embeddings + cross-encoder reranking + HNSW) that competitors ship at most one or two of. Side-by-side:
|
|
66
69
|
|
|
67
70
|
| Capability | enquire-mcp | Smart Connections | Other Obsidian-MCPs |
|
|
68
71
|
|---|:---:|:---:|:---:|
|
|
@@ -82,6 +85,8 @@ The **leading Obsidian-MCP server — the only one shipping all of these capabil
|
|
|
82
85
|
| **Privacy filter** verified at every search + write path | ✅ | n/a | ❌ |
|
|
83
86
|
| **44 production tools** (33 always-on read tools + 4 opt-in + 7 gated writes) | ✅ | n/a | varies |
|
|
84
87
|
| **GraphRAG-light** (wikilink community detection via Louvain modularity) | ✅ **only here** | ❌ | ❌ |
|
|
88
|
+
| **Standalone `.base` query execution** (works without Obsidian running) | ✅ **only here** | ❌ | ❌ delegates to Obsidian |
|
|
89
|
+
| **HyDE retrieval** (Gao et al 2023) + sub-question decomposition | ✅ **only here** | ❌ | ❌ |
|
|
85
90
|
| **664 unit tests · 8 required + 4 advisory CI gates per PR** | ✅ | n/a | rare |
|
|
86
91
|
| **SLSA-3 build provenance** | ✅ | n/a | ❌ |
|
|
87
92
|
| **Semver-bound public surface** ([STABILITY.md](./STABILITY.md)) | ✅ | n/a | ❌ |
|
package/SECURITY.md
CHANGED
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## Reporting a vulnerability
|
|
4
4
|
|
|
5
|
-
If you've found a security issue in enquire, **please don't open a public GitHub issue**.
|
|
5
|
+
If you've found a security issue in enquire, **please don't open a public GitHub issue**. You have two equally-valid private channels:
|
|
6
6
|
|
|
7
|
-
1.
|
|
8
|
-
2. Include a reproducer if you have one — vault layout, exact CLI flags, the operation that triggered the issue.
|
|
9
|
-
3. Expect an acknowledgement within 72 hours.
|
|
7
|
+
1. **Preferred — GitHub Private Vulnerability Reporting.** Open a [private security advisory](https://github.com/oomkapwn/enquire-mcp/security/advisories/new) directly on the repo. GitHub keeps the report private until you and I jointly publish it; collaboration on the fix happens in the same advisory thread.
|
|
8
|
+
2. **Fallback — email.** `oomkapwn@gmail.com` with subject `enquire security`. Include a reproducer if you have one — vault layout, exact CLI flags, the operation that triggered the issue.
|
|
10
9
|
|
|
11
|
-
I
|
|
10
|
+
Either channel: expect an acknowledgement within **72 hours**. I work on a fix in private, cut a patch release, and then publicly disclose with credit (or anonymously, your call).
|
|
12
11
|
|
|
13
12
|
## Scope
|
|
14
13
|
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import { chunkContent, defaultIndexFile, FtsIndex } from "./fts5.js";
|
|
|
12
12
|
import { appendToNote, archiveNote, chatThreadAppend, chatThreadRead, contextPack, createNote, dataviewQuery, embeddingsSearch, findPath, findSimilar, frontmatterGet, frontmatterSearch, frontmatterSet, getBacklinks, getNoteNeighbors, getOpenQuestions, getOutboundLinks, getRecentEdits, getUnresolvedWikilinks, getVaultStats, lintWiki, listCanvases, listNotes, listPdfs, listTags, ocrPdf, openInUi, paperAudit, readCanvas, readNote, readPdf, renameNote, replaceInNotes, resolveWikilink, searchHybrid, searchText, semanticSearch, validateNoteProposal } from "./tools.js";
|
|
13
13
|
import { Vault } from "./vault.js";
|
|
14
14
|
import { VaultWatcher } from "./watcher.js";
|
|
15
|
-
const VERSION = "3.5.
|
|
15
|
+
const VERSION = "3.5.3";
|
|
16
16
|
/** Default location for the persistent embedding index, alongside .fts5.db. */
|
|
17
17
|
function embedDbPath(vaultRoot) {
|
|
18
18
|
// Match the FTS5 location convention by stripping the .fts5.db extension
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oomkapwn/enquire-mcp",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.3",
|
|
4
4
|
"description": "The most advanced MCP server for Obsidian vaults. Hybrid retrieval (BM25 + TF-IDF + multilingual ML embeddings, RRF-fused) with BGE cross-encoder reranking, HNSW vector index, int8 quantization, late-chunking, HyDE-augmented retrieval, sub-question decomposition, PDFs (with OCR), Bases (.base query execution, standalone — no Obsidian needed), GraphRAG-light (Louvain wikilink community detection), wikilinks, backlinks, Dataview, frontmatter, canvas. 44 tools, 19 MCP prompts, 5 cross-encoder reranker models, 664 tests, SLSA-3, semver-bound. Works with Claude Code, Claude Desktop, Cursor, ChatGPT custom GPT, Codex, and any MCP client.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|