@oomkapwn/enquire-mcp 0.8.0 → 0.8.1

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 CHANGED
@@ -2,6 +2,18 @@
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
+ ## [0.8.1] — 2026-05-03
6
+
7
+ ### Fixed
8
+ - **`npm install -g github:oomkapwn/enquire-mcp` left a broken symlink in `node_modules`**: `dist/` is `.gitignore`d, so a fresh git clone has no compiled output. npm runs the `prepare` script automatically on git-source installs, but `package.json` had none — so npm completed the clone, found no `bin` target, silently cleaned up the tmp clone, and the global symlink ended up pointing at a now-deleted path.
9
+
10
+ Fix: added `"prepare": "tsc && chmod +x dist/index.js"` to `package.json` `scripts`. Git-source installs now build automatically. Registry installs (`npm install -g @oomkapwn/enquire-mcp`) were unaffected — the npm tarball already ships `dist/`.
11
+
12
+ Reported by an early user. Thank you 🙏
13
+
14
+ ### CI
15
+ - v0.8.1 is the first release published via the new `.github/workflows/release.yml` workflow — `npm publish --provenance` runs in CI on `v*` tag push, no manual `npm publish` needed. The published package now carries the npm "Published with provenance" trust badge.
16
+
5
17
  ## [0.8.0] — 2026-05-03
6
18
 
7
19
  Closes the v0.8 backlog from the post-launch audit pass: one DQL semantic correction, four P0 test gaps, and the standard Code of Conduct.
package/README.md CHANGED
@@ -13,7 +13,7 @@
13
13
  [![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](./LICENSE)
14
14
  [![Node](https://img.shields.io/badge/node-%E2%89%A520-brightgreen.svg)](#develop)
15
15
  [![MCP](https://img.shields.io/badge/MCP-1.29-8A2BE2.svg)](https://modelcontextprotocol.io/)
16
- [![tests](https://img.shields.io/badge/tests-142%20passing-brightgreen.svg)](#develop)
16
+ [![tests](https://img.shields.io/badge/tests-159%20passing-brightgreen.svg)](#develop)
17
17
  [![coverage](https://img.shields.io/badge/coverage-82%25%20lines-brightgreen.svg)](#develop)
18
18
  [![lint](https://img.shields.io/badge/lint-biome-60a5fa.svg)](https://biomejs.dev/)
19
19
 
@@ -53,7 +53,7 @@ There are several Obsidian-MCP servers out there. enquire differentiates on thre
53
53
  | **Read-only by default** (write tools require explicit flag) | ❌ usually write-default | ✅ `--enable-write` |
54
54
  | Symlink-escape safety, realpath-checked reads & writes | rare | ✅ |
55
55
  | Persistent on-disk cache for warm cold-starts | ❌ | ✅ `--persistent-cache` |
56
- | TypeScript strict + Biome lint + 142 unit tests | varies | ✅ |
56
+ | TypeScript strict + Biome lint + 159 unit tests | varies | ✅ |
57
57
 
58
58
  That's the gap. enquire closes it in ~2000 lines of TypeScript and four runtime dependencies.
59
59
 
@@ -71,53 +71,53 @@ That's the gap. enquire closes it in ~2000 lines of TypeScript and four runtime
71
71
 
72
72
  ## Quick start
73
73
 
74
- ```bash
75
- # 1. Get the code
76
- git clone https://github.com/oomkapwn/enquire-mcp
77
- cd enquire-mcp && npm install && npm run build
78
-
79
- # 2. Wire into Claude Code (~/.claude.json or .mcp.json)
80
- ```
74
+ **Recommended: zero-install via `npx` — no clone, no build.** Add this to your MCP client's config:
81
75
 
82
76
  ```json
83
77
  {
84
78
  "mcpServers": {
85
79
  "obsidian": {
86
- "command": "node",
87
- "args": [
88
- "/absolute/path/to/enquire-mcp/dist/index.js",
89
- "serve",
90
- "--vault", "/Users/you/Documents/Obsidian Vault"
91
- ]
80
+ "command": "npx",
81
+ "args": ["-y", "@oomkapwn/enquire-mcp", "serve", "--vault", "/Users/you/Documents/Obsidian Vault"]
92
82
  }
93
83
  }
94
84
  }
95
85
  ```
96
86
 
87
+ **Where to drop that JSON, by client:**
88
+
89
+ | Client | Config file |
90
+ |---|---|
91
+ | **Claude Desktop** | macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`<br>Windows: `%APPDATA%\Claude\claude_desktop_config.json` |
92
+ | **Claude Code (CLI)** | `~/.claude.json` (global) or `.mcp.json` (per-project) |
93
+ | **Cursor** | `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (per-project) |
94
+ | **Codex / Codex CLI** | per-project `.mcp.json` or environment-specific config |
95
+ | **Any MCP client** | wherever your client expects MCP server JSON |
96
+
97
+ To enable write tools (`obsidian_create_note`, `obsidian_append_to_note`), add `"--enable-write"` to the `args` array.
98
+
97
99
  <details>
98
- <summary><b>Or use <code>npx</code> (no global install)</b></summary>
100
+ <summary><b>Alternative: global npm install</b></summary>
99
101
 
100
- ```json
101
- {
102
- "mcpServers": {
103
- "obsidian": {
104
- "command": "npx",
105
- "args": ["-y", "@oomkapwn/enquire-mcp", "serve", "--vault", "/Users/you/Documents/Obsidian Vault"]
106
- }
107
- }
108
- }
102
+ ```bash
103
+ npm install -g @oomkapwn/enquire-mcp
104
+ enquire-mcp serve --vault ~/Documents/Obsidian\ Vault
109
105
  ```
110
106
 
107
+ Then in your client config use `"command": "enquire-mcp"` instead of `"command": "npx"`.
108
+
111
109
  </details>
112
110
 
113
111
  <details>
114
- <summary><b>Or install globally</b></summary>
112
+ <summary><b>Alternative: from source (development)</b></summary>
115
113
 
116
114
  ```bash
117
- npm install -g @oomkapwn/enquire-mcp
118
- enquire-mcp serve --vault ~/Documents/Obsidian\ Vault
115
+ git clone https://github.com/oomkapwn/enquire-mcp
116
+ cd enquire-mcp && npm install && npm run build
119
117
  ```
120
118
 
119
+ Then `"command": "node"` with `"args": ["/absolute/path/to/dist/index.js", "serve", "--vault", "..."]`.
120
+
121
121
  </details>
122
122
 
123
123
  Restart your client. The server logs `enquire <version> ready (read-only, vault=…)` on stderr — that's your "it's connected" signal.
Binary file
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ import { Command } from "commander";
8
8
  import { z } from "zod";
9
9
  import { appendToNote, createNote, dataviewQuery, getBacklinks, getOutboundLinks, getRecentEdits, getUnresolvedWikilinks, listNotes, listTags, readNote, resolveWikilink, searchText } from "./tools.js";
10
10
  import { Vault } from "./vault.js";
11
- const VERSION = "0.8.0";
11
+ const VERSION = "0.8.1";
12
12
  async function main() {
13
13
  const program = new Command();
14
14
  program
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oomkapwn/enquire-mcp",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "enquire — MCP server for Obsidian vaults. Named after Tim Berners-Lee's 1980 prototype of the World Wide Web. Wikilinks, frontmatter, backlinks, basic Dataview, MCP resources & prompts. Read-only by default; opt-in writes.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -29,6 +29,7 @@
29
29
  "lint:fix": "biome check --write",
30
30
  "format": "biome format --write",
31
31
  "render:preview": "node scripts/render-social-preview.mjs",
32
+ "prepare": "tsc && chmod +x dist/index.js",
32
33
  "prepublishOnly": "npm run lint && npm run build && npm test"
33
34
  },
34
35
  "keywords": [