Major enhancement: Add 12 new tools with active notes, periodic notes, commands, and critical path encoding fixes#77
Open
batalhao wants to merge 9 commits intoMarkusPfundstein:mainfrom
Conversation
…s and preserve directory structure
Owner
|
This is a pretty awesome PR. let me check it in the coming days! Good work! Glad to see those contributions |
|
i'd be really happy to add templater support since i zettlekasten with it |
|
Thanks for this PR! I've merged it into my maintained fork at https://github.com/ernestkoe/mcp-obsidian |
ernestkoe
added a commit
to ernestkoe/mcp-obsidian-ek
that referenced
this pull request
Dec 29, 2025
- Active Note tools (get, append, replace, patch, delete) - Periodic Notes management (append, replace, patch, delete) - Commands & UI control (list commands, execute command, open file) 27 new tests, 68 total 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
ernestkoe
added a commit
to ernestkoe/mcp-obsidian-ek
that referenced
this pull request
Dec 29, 2025
- Add Windows UTF-8 STDIO encoding fix (PR MarkusPfundstein#75) - Add ensure_ascii=False to json.dumps for proper Unicode (PR MarkusPfundstein#74) - Add Dataview query tool for arbitrary DQL queries (PR MarkusPfundstein#53) Skipped (already fixed by PR MarkusPfundstein#77): - PR MarkusPfundstein#87: dirpath trailing slashes - PR MarkusPfundstein#67: list_files_in_dir slash Skipped (not needed): - PR MarkusPfundstein#89: env var defaults (our approach works) - PR MarkusPfundstein#69: too large, needs review 70 tests passing, 26 tools total. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Major Enhancement: Comprehensive Obsidian Integration Expansion
Executive Summary
This PR delivers a significant expansion of the MCP Obsidian server, implementing 12 additional tools + 2 critical improvements, growing the server from 13 to 25 total tools. This transforms the server into a complete Obsidian
automation platform with real-time note management, full periodic notes lifecycle support, and universal command execution capabilities.
Implementation Details
Phase 1: Active Note Operations (5 tools)
obsidian_get_active- Retrieve content of currently active note in Obsidianobsidian_post_active- Append content to active noteobsidian_put_active- Replace entire content of active noteobsidian_patch_active- Modify specific sections relative to headings/blocks/frontmatterobsidian_delete_active- Delete currently active notePhase 2: Periodic Notes Management (5 tools)
obsidian_get_periodic_note- Access current periodic note (daily/weekly/monthly/quarterly/yearly) -> Improvedobsidian_post_periodic- Append content to periodic notesobsidian_put_periodic- Replace entire periodic note contentobsidian_patch_periodic- Modify specific sections of periodic notesobsidian_delete_periodic- Delete current periodic notePhase 3: Commands & UI Control (3 tools)
obsidian_get_commands- List all available Obsidian commands from command paletteobsidian_execute_command- Execute any Obsidian command programmaticallyobsidian_open_file- Open files in current tab or new tab/panePhase 4: Critical Path Encoding Fix
Problem Solved: The original implementation failed with filenames containing spaces, Unicode characters, special characters, or emojis - a critical limitation for real-world usage.
Implementation: Added comprehensive
encode_path()helper method with:Edge Cases Handled:
"Projects/2024 Q1/notes.md"→"Projects/2024%20Q1/notes.md""Área/São Paulo.md"→"%C3%81rea/S%C3%A3o%20Paulo.md""File (test) #1 & More.md"→"File%20%28test%29%20%231%20%26%20More.md""📘 Notes 🚀.md"→"%F0%9F%93%98%20Notes%20%F0%9F%9A%80.md""already%20encoded.md"→"already%20encoded.md"Functions Updated: 6 core file operations now use robust path encoding:
list_files_in_dir(),get_file_contents(),append_content(),patch_content(),put_content(),delete_file()Quality Assurance & Testing
Comprehensive Testing Coverage
Production Readiness
Key Benefits
This enhancement transforms the MCP server into a complete Obsidian automation platform:
Test Plan
Core Functionality
Path Encoding & Edge Cases
Integration & Error Handling
🚀 Ready for production use with comprehensive real-world testing coverage