Skip to content

v1.9.0

Choose a tag to compare

@ergut ergut released this 13 Sep 05:23
· 8 commits to main since this release
c319688

Highlights

  • mcp 2.x support. mcp 2.0 removed the low-level decorator API this server was built on, so every fresh install resolved mcp 2.x and crashed on import before serving a single request (#92). The server is now ported to the 2.x API, keeps in-band error results and argument validation that the 2.x runner no longer does on a handler's behalf, and the dependency is capped at mcp>=2.0,<3 so this cannot repeat (#93). If you added --with "mcp<2" as a workaround, drop it.
  • Block uuids survive page rewrites. update_page in replace mode used to mint fresh uuids for every block, which left ((uuid)) references elsewhere in the graph dangling and let Logseq rewrite them as plain text in the referring files. Blocks now keep their id:: on rewrite (#93).
  • Embedding API key from an environment variable. Set vector.embedder.api_key_env to the name of a variable and the key never has to be written to config.json. Plaintext api_key keeps working (#82, closes #81).
  • Oversized blocks no longer break vector sync. Blocks longer than the new vector.max_chunk_length (default 10000, in line with Logseq's own large-block handling) are skipped at chunk time instead of being sent to the embedder, and a failed batch is retried one chunk at a time so a single bad block no longer drops its fifteen neighbours (#97, closes #76).
  • Privacy-first logging. Logging is no longer configured at import time and the server no longer writes ~/.cache/mcp-logseq/mcp_logseq.log by default. The CLI configures stderr logging at INFO, tunable with LOGSEQ_LOG_LEVEL, with file logging opt-in via LOGSEQ_LOG_FILE. Tool arguments and results are redacted, so page and block content never lands in plaintext logs (#90).

Changed

  • LogSeq(...) now defaults to verify_ssl=True. The bundled server is unaffected; external code constructing the client against a self-signed HTTPS endpoint must pass verify_ssl=False explicitly (#89).
  • Tech-debt cleanup: LanceDB list_tables(), committed uv.lock, dead code removed, list parser unified (#89).

Documentation

  • README: Codex CLI (#94) and OpenCode (#95, from #73) client setup sections.
  • VECTOR_SEARCH.md: how to index multiple graphs (#96, closes #75).

Contributors

Thanks as well to @franckbrl for the precise #92 report, @gabrc52 for #76, and @extrospective for #73, #74 and #75.

Full changelog: https://github.com/ergut/mcp-logseq/blob/main/CHANGELOG.md