feat: add optional features for large vaults and SSL certificate support #97
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
Feature Additions: Enhanced Configuration and Debugging
Apologies for the Multi-Feature PR
I apologize for submitting multiple features in one PR - I realize this isn't ideal for review. I'm happy to split this into separate PRs if you prefer. Each feature is in its own commit which should make review easier, but please let me know if you'd like me to split them up.
Summary
This PR adds several optional features to improve usability for different vault sizes and deployment scenarios:
All features are opt-in via environment variables and maintain full backward compatibility.
1. Optional Journaling Tool (
62be425)Problem: Agents working on complex tasks benefit from articulating their thinking (rubber duck debugging), and cross-session continuity requires capturing the messy reality of development.
Solution: Adds
obsidian_journal_entrytool (gated behindOBSIDIAN_ENABLE_JOURNALING=true) that automates timestamps, formatting, and file organization for agent reflection logs.Documentation: Extensive guidance in
JOURNALING.mdon getting value from agent journaling.Why opt-in: Requires thoughtful prompting to be valuable - not useful for everyone.
2. Patch Content Tool Improvements (
46f983b)Problem: The
patch_contenttool's heading path requirements caused frequent errors - users weren't building full paths from h1 down.Solution: Enhanced tool description with explicit instructions and examples showing correct vs incorrect usage.
Impact: Reduces agent errors and user frustration with heading-based patches.
3. Disable Simple Search (
76bfe4c)Problem: For large vaults,
simple_searchreturns excessive context that can overwhelm token limits, making the tool unusable.Solution: Add
OBSIDIAN_DISABLE_SIMPLE_SEARCH=trueto hide the simple search tool while keeping complex search available.Why opt-in: Most users benefit from simple search - only large vaults need this.
4. Custom SSL Certificate Support (
bbf03a0)Problem: The Obsidian Local REST API uses self-signed certificates. Currently, users must either:
verify=False)Solution: Support custom SSL certificates without system keychain:
OBSIDIAN_SSL_CERT_BASE64- Base64-encoded certificate (recommended)OBSIDIAN_SSL_CERT_PATH- Path to certificate fileBenefits:
5. Debug Logging (
5f9f817)Problem: MCP servers use stdio for communication, making it extremely difficult to debug connection issues, SSL errors, or configuration problems.
Solution: Add
OBSIDIAN_DEBUG_LOG=/path/to/debug.logto write diagnostic information to a separate file:Why needed: This was essential for debugging the SSL certificate feature and helped identify a real issue where tilde expansion in paths failed silently.
Documentation: Added warning about using full paths instead of
~in configs.Testing
All features tested with:
python3 -m py_compile)Breaking Changes
None - all features are opt-in and maintain full backward compatibility.
Again, I apologize for the multi-feature PR. Please let me know if you'd like me to:
Thank you for maintaining this excellent MCP server!