Skip to content

Releases: cyanheads/obsidian-mcp-server

v3.2.8: Install-deeplink fix, description normalization, mcp-ts-core ^0.10.9

20 Jun 08:43
v3.2.8
5f73ef7

Choose a tag to compare

Install-deeplink fix, description normalization, mcp-ts-core ^0.10.9

Fixed:

  • Cursor & VS Code install badges passed the scoped @cyanheads/obsidian-mcp-server arg; this package publishes unscoped, so the scoped arg 404s on install. Both deeplinks now use obsidian-mcp-server.

Changed:

  • Package descriptions normalized to one phrasing across package.json, manifest.json, server.json, README, Dockerfile OCI label, and both plugin manifests.
  • @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9 adopts the check-dependency-specifiers devcheck step, lint:packaging plugin-marketplace checks (gated by devcheck.config.json packaging.pluginManifests), and fresh-scaffold git-guard fixes.
  • 14 project skills synced to their mcp-ts-core 0.10.7–0.10.9 versions.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9
  • undici ^8.4.1 → ^8.5.0
  • @biomejs/biome ^2.4.16 → ^2.5.0
  • @types/node ^25.9.3 → ^26.0.0
  • vitest ^4.1.8 → ^4.1.9

403 tests pass; bun run devcheck clean.

v3.2.7: mcp-ts-core ^0.10.6 adoption, post-pack bundle cleaner, packaging linter checks 8-9

11 Jun 21:08
v3.2.7
0960b50

Choose a tag to compare

mcp-ts-core ^0.10.6 adoption, post-pack bundle cleaner, packaging linter checks 8-9

Adopts mcp-ts-core 0.10.6: adds a post-pack bundle cleaner that strips dependency-shipped agent docs from .mcpb bundles, and two new packaging linter checks — check 8 guards bundle content post-build, check 9 validates name/title identity in createApp() and manifest.json.

Changed:

  • @cyanheads/mcp-ts-core ^0.10.5 → ^0.10.6
  • bundle script appends scripts/clean-mcpb.ts after mcpb pack — prunes dev deps and strips agent-doc entries that .mcpbignore cannot reach
  • src/index.ts — adds explicit name: 'obsidian-mcp-server' to complete the createApp() identity pair (check 9)
  • scripts/lint-packaging.ts — adopted updated version with checks 8 and 9
  • scripts/clean-mcpb.ts (new) — post-pack bundle cleaner from mcp-ts-core 0.10.6
  • skills/orchestrations v1.3, skills/polish-docs-meta v2.7 — synced from framework

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.5 → ^0.10.6

403 tests pass; bun run devcheck clean.

v3.2.6: Explicit server title for MCP initialize serverInfo

11 Jun 18:42
v3.2.6
a6a351f

Choose a tag to compare

Explicit server title for MCP initialize serverInfo

Passes title: 'obsidian-mcp-server' to createApp() so MCP clients
display the server's machine name in initialize serverInfo instead
of falling back to the package name.

Fixed:

  • createApp() title — explicit title: 'obsidian-mcp-server' sets the display name in MCP initialize serverInfo.

403 tests pass; bun run devcheck clean.

v3.2.5: strict env-booleans, empty-string URL guards, server identity fields, OMNISEARCH_URL in manifests

11 Jun 17:51
v3.2.5
cf1ac96

Choose a tag to compare

strict env-booleans, empty-string URL guards, server identity fields, OMNISEARCH_URL in manifests

Adopts mcp-ts-core ^0.10.5 and tightens configuration parsing.

Changed:

  • Env-boolean parsing strict: OBSIDIAN_VERIFY_SSL, OBSIDIAN_ENABLE_COMMANDS, OBSIDIAN_READ_ONLY now use z.stringbool() — unrecognized values (e.g. maybe) throw a ConfigurationError at startup instead of silently coercing to false; yes/on now parse truthy.
  • Empty-string URL guards: blank MCPB config fields for OBSIDIAN_BASE_URL and OBSIDIAN_OMNISEARCH_URL fall back to defaults instead of failing .url() validation at startup.
  • Server identity on initialize + /.well-known/mcp.json: description and websiteUrl passed to createApp(), consistent with server.json.
  • OBSIDIAN_OMNISEARCH_URL declared in server.json and manifest.json: install scaffolds now include the override; manifest.json optional user_config entries gain default: "".
  • .mcpbignore patterns anchored to root: /skills/, /.agents/, /.claude/, etc. — prevents accidental matching of nested runtime paths.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.21 → ^0.10.5
  • undici 8.3.0 → 8.4.1
  • @types/node ^25.9.1 → ^25.9.3

403 tests pass; bun run devcheck clean.

v3.2.4: mcp-ts-core ^0.9.16 → ^0.9.21; plugin marketplace manifests; MCP config key rename

02 Jun 09:44
v3.2.4
0dfeafe

Choose a tag to compare

mcp-ts-core ^0.9.16 → ^0.9.21; plugin marketplace manifests; MCP config key rename

Picks up five framework releases: per-request HTTP log context fix, ctx.fail retryable auto-population, fetchWithTimeout query-string redaction, error-contract lint scoped to construction sites, list-changed notifications under HTTP, MirrorService, two new devcheck gates. Adds plugin marketplace manifests for Claude Code and Codex. Renames the MCP client config key from 'obsidian' to 'obsidian-mcp-server'.

Added:

  • Plugin marketplace manifests — .claude-plugin/plugin.json (Claude Code) and .codex-plugin/plugin.json + mcp.json (Codex)
  • release:github script — constructs GitHub Release title from tag subject, attaches .mcpb bundle
  • api-mirror skill — MirrorService / SQLite+FTS5 API reference (mcp-ts-core 0.9.17)
  • orchestrations skill — gated multi-phase pipeline chains (mcp-ts-core 0.9.19, external in 0.9.21)

Changed:

  • MCP client config key renamed from obsidian to obsidian-mcp-server in README install snippets
  • Skills resynced from mcp-ts-core 0.9.21 (add-tool, add-service, api-canvas, api-context, api-linter, api-utils, design-mcp-server, release-and-publish)
  • scripts/devcheck.ts updated with skill-version and open-indexed-named interface gates

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.16 → ^0.9.21
  • js-yaml ^4.1.1 → ^4.2.0
  • vitest ^4.1.7 → ^4.1.8 (dev)

398 tests pass; bun run devcheck clean.

v3.2.3: Enrichment block on search/list tools; mcp-ts-core ^0.9.16; AGENTS.md

30 May 06:50
v3.2.3
8d16829

Choose a tag to compare

Enrichment block on search/list tools; mcp-ts-core ^0.9.16; AGENTS.md

obsidian_search_notes, obsidian_list_notes, and obsidian_list_tags now emit an
enrichment block with agent-facing context (effectiveQuery echo, no-results and
empty-set notices). Redundant hardcoded guidance removed from format().

Added:

  • Enrichment block on obsidian_search_notes (effectiveQuery + no-results notice), obsidian_list_notes (empty/capped notice), obsidian_list_tags (empty notice)
  • AGENTS.md at repo root — byte-identical to CLAUDE.md, for agent runtimes that prefer that filename
  • skills/code-simplifier and skills/git-wrapup synced from framework 0.9.15
  • MCP_HTTP_MAX_BODY_BYTES documented in .env.example

Changed:

  • Redundant empty-state guidance removed from format() on the three tools above
  • format script made safe-by-default; unsafe autofixes moved to format:unsafe
  • .mcpbignore now excludes skills/ and .agents/
  • server.json description aligned to other surfaces
  • skills/migrate-mcp-ts-template removed (pruned upstream)
  • Remaining skills and framework scripts resynced from mcp-ts-core 0.9.15
  • README.md MCP spec version updated to 2025-11-25
  • manifest.json gains repository/homepage/license fields
  • package.json keywords trimmed (llm, llm-agent removed)
  • Install badge configs normalized

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.6 → ^0.9.16
  • @biomejs/biome ^2.4.15 → ^2.4.16

398 tests pass; bun run devcheck clean.

v3.2.2: mcp-ts-core ^0.9.1 → ^0.9.6, format-parity fixes, MCPB bundle support

23 May 12:28
v3.2.2
8c28a8a

Choose a tag to compare

Framework refresh with format-parity fixes on search_notes and get_note, plus MCPB bundle scaffolding.

Changed:

  • @cyanheads/mcp-ts-core ^0.9.1 → ^0.9.6
  • obsidian_search_notes format() now includes logic and query fields in content[]
  • obsidian_get_note format() now includes path and format fields

Added:

  • MCPB bundle support — manifest.json + .mcpbignore scaffolded
  • Install badges (MCPB, VS Code)

bun run devcheck clean.