@bitbonsai/mcpvault 0.15.0 → 0.16.0

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/README.md CHANGED
@@ -1012,6 +1012,8 @@ This MCP server implements several security measures to protect your Obsidian va
1012
1012
  4. Ensure all tests pass: `npm test`
1013
1013
  5. Submit a pull request
1014
1014
 
1015
+ Maintainers: production publishing is driven by GitHub Releases. See [RELEASING.md](RELEASING.md).
1016
+
1015
1017
  ## License
1016
1018
 
1017
1019
  MIT
package/dist/server.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
2
+ import { serveStdio } from "@modelcontextprotocol/server/stdio";
3
3
  import { createServer } from "./src/createServer.js";
4
4
  import { parseCliArgs } from "./src/cli.js";
5
5
  import { readFileSync } from "fs";
@@ -50,9 +50,9 @@ Examples:
50
50
  // unquoted vault paths with spaces. When omitted, use the current directory.
51
51
  const { vaultPathArg, readOnly } = parseCliArgs(cliArgs);
52
52
  const vaultPath = resolve(vaultPathArg || process.cwd());
53
- const server = createServer(vaultPath, { version: VERSION, readOnly });
54
- const transport = new StdioServerTransport();
55
- await server.connect(transport);
53
+ // Serve both the legacy handshake-based protocol and MCP 2026-07-28 from the
54
+ // same process. The opening exchange selects the era for this connection.
55
+ const serverHandle = serveStdio(() => createServer(vaultPath, { version: VERSION, readOnly }), { onerror: (error) => console.error(error) });
56
56
  // Exit when the client disconnects (stdin EOF) or the process is asked to
57
57
  // terminate. Hosts that don't send an MCP shutdown request otherwise leave
58
58
  // this process running forever, orphaned once stdin closes (#159).
@@ -62,7 +62,7 @@ async function shutdown() {
62
62
  return;
63
63
  isShuttingDown = true;
64
64
  try {
65
- await server.close();
65
+ await serverHandle.close();
66
66
  }
67
67
  catch {
68
68
  // Best-effort: exit regardless of transport close errors.
@@ -1,4 +1,4 @@
1
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
1
+ import { Server } from "@modelcontextprotocol/server";
2
2
  import { FrontmatterHandler } from "./frontmatter.js";
3
3
  import { PathFilter } from "./pathfilter.js";
4
4
  export interface CreateServerOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"createServer.d.ts","sourceRoot":"","sources":["../../src/createServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAMnE,OAAO,EAAE,kBAAkB,EAAoB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAYD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,CAsezF"}
1
+ {"version":3,"file":"createServer.d.ts","sourceRoot":"","sources":["../../src/createServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAoB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAYD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,CAsezF"}
@@ -1,5 +1,4 @@
1
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
- import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
1
+ import { Server } from "@modelcontextprotocol/server";
3
2
  import { FileSystemService } from "./filesystem.js";
4
3
  import { FrontmatterHandler, parseFrontmatter } from "./frontmatter.js";
5
4
  import { PathFilter } from "./pathfilter.js";
@@ -23,7 +22,7 @@ export function createServer(vaultPath, options = {}) {
23
22
  const server = new Server({ name, version }, {
24
23
  capabilities: { tools: {} },
25
24
  });
26
- server.setRequestHandler(ListToolsRequestSchema, async () => {
25
+ server.setRequestHandler("tools/list", async () => {
27
26
  const tools = [
28
27
  {
29
28
  name: "read_note",
@@ -272,7 +271,7 @@ export function createServer(vaultPath, options = {}) {
272
271
  : tools,
273
272
  };
274
273
  });
275
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
274
+ server.setRequestHandler("tools/call", async (request) => {
276
275
  const { name: toolName, arguments: args } = request.params;
277
276
  const trimmedArgs = trimPaths(args);
278
277
  if (readOnly && MUTATING_TOOLS.has(toolName)) {
@@ -1,4 +1,4 @@
1
- import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
1
+ import type { CallToolResult } from '@modelcontextprotocol/server';
2
2
  import type { FileSystemService } from '../filesystem.js';
3
3
  export interface WikiLinkToolArgs {
4
4
  document: string;
@@ -1 +1 @@
1
- {"version":3,"file":"wikiLinkTool.d.ts","sourceRoot":"","sources":["../../../src/wikilink/wikiLinkTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,cAAc,CAAC,CAiDzB"}
1
+ {"version":3,"file":"wikiLinkTool.d.ts","sourceRoot":"","sources":["../../../src/wikilink/wikiLinkTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,cAAc,CAAC,CAiDzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitbonsai/mcpvault",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Universal AI bridge for Obsidian vaults - connect any MCP-compatible assistant",
5
5
  "homepage": "https://mcpvault.org",
6
6
  "author": "bitbonsai",
@@ -33,15 +33,20 @@
33
33
  "prepack": "npm install",
34
34
  "publish:dry": "npm publish --dry-run",
35
35
  "publish:beta": "npm publish --tag beta",
36
- "publish:latest": "npm publish"
36
+ "publish:latest": "npm publish",
37
+ "ship": "bun scripts/ship.ts",
38
+ "ship:setup": "bun scripts/ship.ts --setup",
39
+ "ship:update": "bun scripts/ship.ts --update"
37
40
  },
38
41
  "dependencies": {
39
- "@modelcontextprotocol/sdk": "^1.30.0",
42
+ "@modelcontextprotocol/server": "^2.0.0",
40
43
  "gray-matter": "^4.0.3",
41
44
  "trash": "^10.1.1",
42
45
  "yaml": "^2.9.0"
43
46
  },
44
47
  "devDependencies": {
48
+ "@clack/prompts": "^0.7.0",
49
+ "@modelcontextprotocol/client": "^2.0.0",
45
50
  "@types/node": "^26.1.2",
46
51
  "tsx": "^4.23.9",
47
52
  "typescript": "^7.0.2",