Releases: yotsuda/PowerShell.MCP
Release list
PowerShell.MCP v1.3.5 - Enhanced Developer Experience & System Insights
Enhanced Developer Experience & System Insights
This release focuses on improving developer experience with syntax highlighting, automatic color output, and comprehensive system information for better context awareness.
✨ What's New
🎨 Syntax Highlighting for Commands
Commands executed in the console now display with PSReadLine-style syntax highlighting, making it easier to read and understand the executed PowerShell code.
🌈 Automatic Color Output for CLI Tools
Popular development tools (Git, npm, yarn, cargo, pytest) now automatically enable ANSI color output, providing richer visual feedback while respecting your existing configurations.
📊 Comprehensive System Information
The get_current_location tool now returns detailed system context (OS version, PowerShell version, hostname, timezone, execution policy) to help Claude better understand your environment.
📝 Improved Create Work Procedure Built-in Prompts
Enhanced Create Work Procedure prompt with better markdown table formatting and clearer examples for VS Code preview compatibility.
📊 What's Changed Since v1.3.4
Core Enhancements
System Information:
- Added comprehensive system context (OS, PowerShell version, hostname, user, privileges, culture, timezone, execution policy)
- Renamed machine_name to host_name using System.Net.Dns API
- Restructured JSON output with system and available_drives sections
Visual Improvements:
- Syntax highlighting for executed commands with token-based coloring
- Automatic ANSI color output for Git, npm, yarn, cargo, pytest
Prompt Templates:
- Improved markdown table formatting in Create Work Procedure prompt
- Simplified column naming (effort_remaining → effort)
- Added clear table format examples
Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
Report Issues: GitHub Issues
⚠ Security Notice: Provides complete PowerShell access. Use in trusted environments only.
PowerShell.MCP v1.3.4 - Prompt Consolidation & Enhanced Workflow
Prompt Consolidation & Enhanced Workflow
This release focuses on consolidating learning prompts and streamlining task execution workflows for better flexibility and usability.
✨ What's New
🎯 Unified Two Learning Built-in Prompts
Consolidated Learn Programming Language and Learn CLI Tools into a single, more powerful Learn Programming & CLI prompt for more flexible parameter design and better learning experience.
🗑️ Removed Two Built-in Prompts
Removed System Administration and Software Development built-in prompts to encourage use of Create Work Procedure and Execute Work Procedure instead for better results.
🔧 Improved Three Built-in Prompts
- Create Work Procedure and Execute Work Procedure - Simplified with clearer status workflow
- Analyze Content - Enhanced with chart type selection
- HTML Generation Guidelines for AI - Clarified CSS color rules and session persistence
📊 What's Changed Since v1.3.3
Prompt Changes
Consolidated:
- Learn Programming Language + Learn CLI Tools → Learn Programming & CLI
Removed:
- System Administration
- Software Development
Improved:
- Create Work Procedure and Execute Work Procedure
- Analyze Content
- HTML Generation Guidelines for AI
Other Changes
- Standardized prompt descriptions across all 19 supported languages (822 lines removed from .resx files)
Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
Report Issues: GitHub Issues
⚠ Security Notice: Provides complete PowerShell access. Use in trusted environments only.
PowerShell.MCP v1.3.3 - Modular Prompts
Modular Prompts
This release focuses on built-in prompt modularity for better usefulness and maintainability.
✨ What's New
🧩 Modular Prompt Architecture
HTML generation guidelines are now available as a separate, reusable built-in prompt.
Benefits:
- ✅ Better separation of concerns
- ✅ Improved maintainability and reusability
- ✅ Users can combine prompts as needed
New Prompt:
- HTML Generation Guidelines for AI - Technical guidelines for generating high-quality HTML reports with proper formatting, charts, and styling
The AnalyzeContent prompt now suggests using this companion prompt for visual HTML reports.
📊 What's Changed Since v1.3.2
- Separated HTML generation guidelines from Analyze Content into standalone prompt
- Improved prompt cross-referencing with localized names
- Enhanced code maintainability and modularity
No Breaking Changes - All v1.3.2 scripts work unchanged.
Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
Report Issues: GitHub Issues
⚠ Security Notice: Provides complete PowerShell access. Use in trusted environments only.
PowerShell.MCP v1.3.2 - Stability Fix + PowerShell.Map v1.0.1 Support
Stability Fix + PowerShell.Map v1.0.1 Support
This release prioritizes engine stability by reverting the v1.3.1 stream capture feature and adds PowerShell.Map v1.0.1 support with 3D maps and location descriptions.
✨ What's New
🛡️ Engine Stability Restored
v1.3.1's complete stream capture (including Verbose and Debug) caused instability in production. This release reverts to the proven v1.3.0 implementation.
Trade-off:
- ✅ Significantly improved stability and reliability
⚠️ Verbose and Debug streams no longer automatically captured- 💡 Users can manually share Verbose/Debug output when needed
Four critical streams remain captured: Success, Error, Warning, Information.
🗺️ PowerShell.Map v1.0.1 Support
Updated Create Interactive Map built-in prompt for PowerShell.Map v1.0.1 features:
- 3D Map Display - Create immersive 3D interactive maps
- Location Descriptions - Detailed descriptions for each location (visible on hover/click)
- Improved Workflow - Console starts first, then suggests module updates
📊 What's Changed Since v1.3.1
- Reverted stream capture to v1.3.0 implementation for stability
- PowerShell.Map v1.0.1 support with 3D maps and location descriptions
- Improved module update workflow
No Breaking Changes - All v1.3.1 scripts work unchanged.
Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
Report Issues: GitHub Issues
⚠ Security Notice: Provides complete PowerShell access. Use in trusted environments only.
PowerShell.MCP v1.3.1 - Complete Stream Capture + Context Display Everywhere
Complete Stream Capture + Context Display Everywhere
This release delivers complete stream capture for all PowerShell output and extends context display from Show-TextFile to all file editing cmdlets. Zero breaking changes—just better reliability and visibility.
✨ What's New
🛡️ Complete Stream Capture
All PowerShell output streams (Success, Error, Warning, Info, Verbose, Debug) are now reliably captured. v1.3.0 could not capture Verbose and Debug streams, which is now fixed. This also eliminates duplicate error messages and ensures no output is lost.
🔍 Context Display for All File Operations
v1.3.0 introduced context display for Show-TextFile. Now all file editing cmdlets show context with 2 lines before/after each change:
# All of these now show context automatically
Update-MatchInFile config.json -Pattern "old" -Replacement "new"
Update-LinesInFile script.ps1 -LineRange 10,15 -Content $newCode
Add-LinesToFile functions.ps1 -LineNumber 42 -Content $newFunction
Remove-LinesFromFile old-code.cs -LineRange 100,200Features:
- 2 lines of context before and after each change
- Grep-style formatting with visual highlighting
- Smart range merging for nearby changes
- Consistent formatting across all cmdlets
📊 What's Changed Since v1.3.0
- Complete stream capture for all PowerShell output
- Context display for all file editing cmdlets
- Enhanced test coverage
No Breaking Changes - All v1.3.0 scripts work unchanged.
Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
Report Issues: GitHub Issues
⚠ Security Notice: Provides complete PowerShell access. Use in trusted environments only.
PowerShell.MCP v1.3.0 - Context-Aware Search with Visual Highlights
Context-Aware Search with Visual Highlights
This release transforms Show-TextFile into a powerful context-aware search tool with visual highlighting and flexible range specification.
✨ What's New
🔍 Smart Context Display
When searching with -Contains or -Pattern, matching lines now automatically display with 3 lines of context before and after:
# See TODO items with surrounding code
Show-TextFile Program.cs -Contains "TODO"
# Find errors with context
Show-TextFile error.log -Pattern "ERROR|FATAL"Key Benefits:
- Understand code context without opening editors
- Multiple nearby matches automatically merged into single blocks
- Perfect for AI code analysis and human code review
✨ Visual Search Highlighting
Matched text is now highlighted with reverse video using ANSI escape sequences for instant visibility in modern terminals.
# Highlights every occurrence
Show-TextFile source.cs -Contains "TODO"
Show-TextFile app.log -Pattern "ERROR|FATAL"📏 Flexible End-of-File Range
New syntax for reading to the end of large files without counting lines:
# From line 100 to end of file
Show-TextFile log.txt -LineRange 100,-1
# Skip first 10000 lines, show rest with errors
Show-TextFile system.log -LineRange 10000,-1 -Pattern "ERROR"Why this matters:
- Log files: Skip startup messages, read recent entries
- Large files: Tail without loading everything first
- Growing files: Same command works regardless of file size
📊 What's Changed Since v1.2.9
Major Enhancements:
- Context display (3 lines before/after) for search results
- ANSI reverse video highlighting for matched text
- Negative LineRange values for "to end of file"
- Smart range merging for nearby matches
Testing:
- 280 lines of advanced feature tests
- 165 lines of edge case tests
- Integration test coverage expanded
No Breaking Changes:
- Full backward compatibility maintained
- All v1.2.9 scripts work unchanged
Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
Report Issues: GitHub Issues
⚠ Security Notice: Provides complete PowerShell access. Use in trusted environments only.
PowerShell.MCP v1.2.9 - Text Deletion and Architecture Improvements
Text Deletion and Architecture Improvements
This release introduces text deletion capabilities through empty replacement strings and improves the module architecture with IModuleAssemblyInitializer.
✨ What's New
🗑️ Text Deletion with Empty Replacement
You can now delete text by using an empty string for the -Replacement parameter in Update-MatchInFile:
# Remove port numbers from configuration
Update-MatchInFile config.txt -Contains ":8080" -Replacement ""
# Delete all digits from a string
Update-MatchInFile data.txt -Pattern '\d+' -Replacement ""
# Clean up debug statements
Update-MatchInFile app.log -Contains "DEBUG " -Replacement ""Key Benefits:
- Simple text removal without complex regex
- Works with both
-Contains(literal) and-Pattern(regex) modes - Preserves file encoding and newlines
🏗️ Architecture Refactoring
The module initialization has been modernized from CmdletProvider to IModuleAssemblyInitializer:
Benefits:
- Improved module loading performance
- Better PowerShell 7+ compatibility
- Cleaner initialization architecture
- Reduced memory footprint
Note: This is an internal change with no impact on cmdlet usage.
🗺️ Built-in Interactive Map Prompt
New MCP custom prompt that automatically creates interactive maps - no PowerShell.Map knowledge required:
Usage: Simply tell Claude what you want to see:
"Create a map of famous temples in Kyoto with PowerShell.Map module"
"Show me hot springs in Hakone area"
"Map popular ramen shops in Tokyo"
That's it! Claude automatically:
- Researches and validates locations
- Creates color-coded markers with emoji labels
- Displays the interactive map
- Offers an automated tour of all spots
Example Themes:
- Hot springs (♨️), Ramen shops (🍜), Tourist spots (temples⛩️, museums🏛️, parks🌳)
Key Benefits:
- No need to learn PowerShell.Map commands
- Automatic coordinate validation
- Beautiful emoji-enhanced maps
- Interactive tour feature
- Map opens automatically at http://localhost:8765/
💡 Usage Examples
Text Deletion
# Remove sensitive data
Update-MatchInFile secrets.txt -Pattern 'API_KEY=\S+' -Replacement ""
# Clean up log files
Update-MatchInFile app.log -Contains "[TRACE] " -Replacement ""
# Remove comments from code
Update-MatchInFile script.ps1 -Pattern '#.*$' -Replacement ""Combined Operations
# Remove old entries and add new ones
Update-MatchInFile config.ini -Contains "old_setting=" -Replacement ""
Add-LinesToFile config.ini -Content "new_setting=value"📊 What's Changed Since v1.2.8
New Features:
- Text deletion with empty
-Replacementparameter - Built-in interactive map generation prompt
- MCP custom prompts with HTML report generation guidelines
Improvements:
- Refactored to IModuleAssemblyInitializer architecture
- Updated NuGet dependencies
- Added comprehensive integration tests
No Breaking Changes:
- Full backward compatibility maintained
- All v1.2.8 scripts work unchanged
Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
Report Issues: GitHub Issues
⚠ Security Notice: Provides complete PowerShell access. Use in trusted environments only.
PowerShell.MCP v1.2.8 - Quality & Encoding Enhancement
Quality & Encoding Enhancement
This release fixes the v1.2.7 performance regression, adds automatic console startup, extends automatic encoding upgrade to all cmdlets, adds comprehensive encoding aliases, and establishes a complete test suite.
✨ What's New
🔧 Performance Fix
Fixed v1.2.7 performance regression:
- File metadata detection is now 19-22x faster through partial reading
- Restores performance to pre-v1.2.7 levels
⚡ Automatic PowerShell Console Start
get_current_location and invoke_expression now automatically start the PowerShell console if not running:
- get_current_location: Starts console and returns location
- invoke_expression: Starts console but skips execution (AI verifies location first)
If console is already running, both tools execute immediately.
🔄 Automatic Encoding Upgrade - Now Complete
Automatic ASCII to UTF-8 encoding upgrade, previously available in Add-LinesToFile and Update-LinesToFile (v1.2.7), is now also supported in Update-MatchInFile:
# Start with ASCII file
"Server=localhost" | Set-Content config.txt -Encoding ASCII
# Replace with non-ASCII - automatically upgrades to UTF-8
Update-MatchInFile config.txt -Pattern 'localhost' -Replacement '日本サーバー'
# ℹ Info: Content contains non-ASCII characters. Upgrading encoding to UTF-8.All text file cmdlets now support automatic encoding upgrade when adding non-ASCII content.
🌍 Comprehensive Encoding Aliases
Added 100+ encoding aliases for better compatibility:
New Aliases:
- East Asian:
cp932(Shift-JIS),cp936(GB2312),cp949(EUC-KR),cp950(Big5) - BOM-explicit:
utf8-sig,utf16-sig,utf32-sig(Python-standard) - Regional:
sjis,shift-jis,gbk,euc-kr,windows-1252, and many more
# All these work now
Show-TextFile file.txt -Encoding sjis
Show-TextFile file.txt -Encoding cp932
Show-TextFile file.txt -Encoding utf8-sig📊 Comprehensive Test Coverage
Established complete test suite:
- 268 tests with 100% pass rate
- 87 unit tests (C#/xUnit) - 100% method coverage
- 169 integration tests (PowerShell/Pester)
- Covers all cmdlets, encodings, edge cases, and error handling
🔧 Code Quality Improvements
Major refactoring for maintainability:
- -35.2% code reduction (614 → 398 lines in TextFileUtility)
- Extracted specialized helpers:
EncodingHelper,FileMetadataHelper,FileOperationHelper - Fixed resource leaks
- Improved error handling
💡 Usage Examples
Extended Encoding Aliases
# Japanese Shift-JIS - multiple aliases supported
Show-TextFile legacy.txt -Encoding sjis
Show-TextFile legacy.txt -Encoding cp932
Show-TextFile legacy.txt -Encoding shift-jis
# Python-standard BOM handling
Show-TextFile data.csv -Encoding utf8-sig
# Chinese encodings
Show-TextFile chinese.txt -Encoding gbk
Show-TextFile chinese.txt -Encoding cp936Automatic Encoding Upgrade (All Cmdlets)
# Add-LinesToFile / Update-LinesInFile (v1.2.7~)
"Settings:" | Set-Content config.txt -Encoding ASCII
Add-LinesToFile config.txt -Content "名前: テスト"
# Update-MatchInFile (NEW in v1.2.8)
"Server=localhost" | Set-Content server.txt -Encoding ASCII
Update-MatchInFile server.txt -Pattern 'localhost' -Replacement '日本サーバー'
# All automatically upgrade to UTF-8 when needed📊 What's Changed Since v1.2.7
Fixed
- ✅ Performance regression in file metadata detection (19-22x faster)
- ✅ Resource leaks in start_powershell_console
- ✅ Various test failures and edge cases
Added
- ✅ Automatic encoding upgrade in
Update-MatchInFile - ✅ 100+ encoding aliases (East Asian, BOM-explicit, regional)
- ✅ Comprehensive test suite (268 tests, 100% pass rate)
- ✅ Automatic console start in
get_current_locationandinvoke_expression - ✅ Always show file path in
Show-TextFileoutput
Improved
- ✅ Code maintainability (-35.2% code reduction)
- ✅ Error handling and messages
- ✅ Pipeline performance with lazy evaluation
- ✅ Resource management
Breaking Changes
- ❌ None - Full backward compatibility maintained
🎯 Quality Assurance
- 268 tests with 100% pass rate
- 87 unit tests (C#/xUnit)
- 169 integration tests (PowerShell/Pester)
- ~87% code coverage
- All cmdlets, encodings, edge cases, and error handling validated
📚 Resources
- Repository: https://github.com/yotsuda/PowerShell.MCP
- Questions? GitHub Discussions
- Report Issues: GitHub Issues
⚠ Security Notice
PowerShell.MCP provides complete PowerShell access to Claude Desktop. Use only in trusted environments.
Best Practices:
- Review commands before execution
- Use
-WhatIffor testing - Enable
-Backupfor important files
Full Changelog: v1.2.7...v1.2.8
PowerShell.MCP v1.2.7 - Intelligent Encoding Management and Localized MCP Prompts
Intelligent Encoding Management and Localized MCP Prompts
This release introduces intelligent encoding management that automatically upgrades ASCII files when adding non-ASCII content, along with localized MCP custom prompts for 17 languages.
✨ What's New
🔄 Automatic Encoding Upgrade
PowerShell.MCP now intelligently manages file encodings by automatically upgrading from ASCII to UTF-8 when non-ASCII characters are added:
# Start with an ASCII file
"Hello World" | Set-Content test.txt -Encoding ASCII
# Add Japanese text - automatically upgrades to UTF-8
Add-LinesToFile test.txt -Content "こんにちは世界"
# ℹ Info: Content contains non-ASCII characters. Upgrading encoding to UTF-8.Key Benefits:
- Prevents data loss when adding multi-byte characters to ASCII files
- Original ASCII files remain ASCII until non-ASCII content is added
- UTF-8 files remain UTF-8 (no unnecessary conversions)
🌐 Localized MCP Custom Prompts
MCP custom prompts are now localized for 17 languages (en-US, ja-JP, es-ES, fr-FR, de-DE, zh-CN, zh-TW, ko-KR, pt-BR, ru-RU, it-IT, nl-NL, pl-PL, tr-TR, ar-SA, hi-IN, sv-SE).
Example: "Software Development" → "ソフトウェア開発" (Japanese)
Note: Prompts are displayed in your operating system's display language.
💡 Usage Examples
Automatic Encoding Upgrade
# Create ASCII file and add multi-language content
"Project Notes" | Set-Content notes.txt -Encoding ASCII
Add-LinesToFile notes.txt -Content "Japanese: こんにちは世界", "Chinese: 你好世界", "Emoji: 🌍🎉"Line Range Operations
Show-TextFile config.json -LineRange 10,50
Update-LinesInFile app.config 25,30 -Content $newConfig -Backup
Test-TextFileContains log.txt -LineRange 1000,2000 -Pattern "ERROR"Pattern-Based Updates
Update-MatchInFile appsettings.json -Pattern '"Port":\s*\d+' -Replacement '"Port": 8080'📊 What's Changed Since v1.2.6
New Features:
- Automatic ASCII to UTF-8 encoding upgrade
- Localized MCP custom prompts for 17 languages
No Breaking Changes:
- Full backward compatibility maintained
- All v1.2.6 scripts work unchanged
Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
Report Issues: GitHub Issues
PowerShell.MCP v1.2.6 - Enhanced Text File Operations with Automatic Encoding Detection
Enhanced Text File Operations with Automatic Encoding Detection
This release focuses on improving cmdlet naming clarity and automatic encoding detection.
✨ What's New
🔄 Renamed Cmdlets for Better Clarity
Text file cmdlets have been renamed to better reflect their functionality:
# Pattern-based text replacement (formerly Update-TextFile)
Update-MatchInFile config.txt -Contains "old" -Replacement "new"
Update-MatchInFile code.cs -Pattern "var (\w+)" -Replacement "string $1"
# Line-based replacement (formerly Set-LinesToFile)
Update-LinesInFile file.txt 10,20 -Content $newCode
Update-LinesInFile output.txt -Content "Line 1", "Line 2"Migration Guide:
Update-TextFile→Update-MatchInFileSet-LinesToFile→Update-LinesInFile
🔧 Enhancements
🌐 Automatic Encoding Detection
All text file cmdlets now automatically detect and preserve file encoding, ensuring data integrity across different character sets:
# Automatically detects UTF-8, UTF-16, Shift-JIS, etc.
Add-LinesToFile "日本語ファイル.txt" -Content "新しい行"
Update-MatchInFile "config.ini" -Contains "設定" -Replacement "新設定"
# Encoding is preserved when modifying files
Show-TextFile "legacy_sjis.txt" # Detects Shift-JIS
Update-LinesInFile "legacy_sjis.txt" 5 -Content "更新" # Maintains Shift-JISKey Benefits:
- ✅ No manual encoding specification needed
- ✅ Preserves original file encoding automatically
- ✅ Handles multi-byte characters correctly (Japanese, Chinese, etc.)
- ✅ Supports UTF-8, UTF-16, Shift-JIS, and other encodings
🐛 Bug Fixes
UTF-8 Encoding Preservation
- Fixed issue where UTF-8 files without BOM were incorrectly getting BOM added during file modifications
- Now correctly preserves the original BOM/no-BOM attribute of UTF-8 files
- Ensures file encoding remains unchanged when editing UTF-8 content
📚 Dependencies
Added Ude.NetStandard (Universal Charset Detector)
- Integrated Ude.NetStandard 1.2.0 for accurate encoding detection
- Based on Mozilla's Universal Charset Detector
- Enables automatic detection of UTF-8, UTF-16, Shift-JIS, and other encodings
- License: Mozilla Public License 2.0 (MPL-2.0)
- Package: Ude.NetStandard on NuGet
Improved Positional Parameters
Update-LinesInFile - LineRange is now positional for cleaner syntax:
# Before
Update-LinesInFile file.txt -LineRange 10,20 -Content $newLines
# After
Update-LinesInFile file.txt 10,20 -Content $newLinesImportant: When replacing multiple lines, pass an array with matching number of elements:
# Replace lines 5-7 with three new lines (preserves line count)
Update-LinesInFile file.txt 5,7 -Content @("New Line 5", "New Line 6", "New Line 7")
# Replace lines 5-7 with single line (reduces file to fewer lines)
Update-LinesInFile file.txt 5,7 -Content "Single replacement line"Backup Feature
All modification cmdlets support the -Backup parameter:
Update-LinesInFile file.txt 5 -Content "New" -Backup
# Creates: file.txt.YYYYMMDDHHMMSS.bakBackup files are named with timestamp suffix, allowing multiple backup versions.
📋 Complete Feature Set
All Text File Cmdlets
- Show-TextFile - Display with line numbers
- Test-TextFileContains - Boolean text check
- Add-LinesToFile - Insert lines
- Update-LinesInFile - Line-based replacement (renamed)
- Update-MatchInFile - Pattern-based replacement (renamed)
- Remove-LinesFromFile - Delete line ranges
💡 Usage Examples
# Pattern-based replacement
Update-MatchInFile config.ini -Pattern "Port\s*=\s*(\d+)" -Replacement "Port = 9000"
# Line-based replacement (cleaner syntax)
# Replace multiple lines with array (preserves line count)
Update-LinesInFile app.config 5,7 -Content @("Line 5", "Line 6", "Line 7")
# Create/replace entire file
Update-LinesInFile notes.txt -Content "Task 1", "Task 2", "Task 3"
# Multi-byte character handling (automatic encoding detection)
Add-LinesToFile "日本語.txt" -Content "🎉 絵文字も対応"Full Documentation: https://github.com/yotsuda/PowerShell.MCP
Questions? GitHub Discussions
⚠ Security Notice: Provides complete PowerShell access. Use in trusted environments only.