MCP Server Updater
by JayceeB1
A PowerShell tool to analyze and update Model Context Protocol (MCP) servers for Claude Desktop. It automates the process of detecting, analyzing, and updating MCP servers, ensuring they are up-to-date and compatible.
Last updated: N/A
MCP Server Updater
A PowerShell tool to analyze and update Model Context Protocol (MCP) servers for Claude Desktop.
MCP Server Updater Banner
🌟 Features
- Automatic MCP Server Detection: Reads your Claude Desktop configuration to find all configured MCP servers.
- Smart Repository Analysis: Detects Git repositories even if they're in parent directories.
- Multi-Technology Support: Handles various project types including Node.js, Python, Go, Java, Rust, .NET, and C/C++.
- Detailed Reporting: Provides comprehensive analysis of all your MCP servers.
- Automatic Update Check: Identifies servers with available updates.
- User-Confirmed Updates: Prompts for confirmation before applying updates.
- Safe Updates: Creates backup branches before applying updates (if local changes exist).
- Intelligent Build Process: Automatically runs the correct build commands based on project type after updating.
- Standardized Localization: Uses PowerShell's standard localization system (
.psd1files), easily extensible.
📋 Requirements
- Windows 10/11
- PowerShell 5.1 or later
- Git installed and in your PATH
- Claude Desktop installed
- Package managers for your MCP servers (npm, pip, etc.)
🚀 Quick Start
-
Download the latest release or clone this repository:
git clone https://github.com/JayceeB1/mcp-server-updater.git cd mcp-server-updater -
Run the script from PowerShell:
# Allow script execution (if needed, run PowerShell as Admin) # Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Run the updater .\Update-MCP-Servers.ps1The script will analyze your servers, report the status, and ask if you want to update any servers that have pending changes.
-
To use a specific language (e.g., French):
.\Update-MCP-Servers.ps1 -Language fr-FR(See the Localization section for more details)
📊 What It Does
The tool performs these operations sequentially:
-
Analysis Phase:
- Reads the Claude Desktop configuration file (
%APPDATA%\Claude\claude_desktop_config.json) to identify all MCP servers. - Detects the location of each server on disk.
- Finds the Git repository associated with each server (searching parent directories if needed).
- Determines the project type and required build tools.
- Checks if updates are available from the remote repository (
git fetch+git rev-list).
- Reads the Claude Desktop configuration file (
-
Reporting Phase:
- Displays detailed information and the update status for each server.
- Generates a detailed JSON report (
mcp-detailed-analysis.json). - Generates an operations log (
mcp-updater-log.txt).
-
Update Confirmation Phase:
- If any servers have updates available, it lists them.
- Prompts the user for confirmation (
Y/N) before proceeding with updates.
-
Update Phase (if confirmed by the user):
- For each server confirmed for update:
- Backs up uncommitted local changes using
git stash(optional, if changes exist). - Pulls the latest changes from the remote repository (
git pull). - Installs dependencies using the appropriate package manager (npm, pip, etc.).
- Builds the updated code using the correct build system (npm run build, mvn install, etc.).
- Backs up uncommitted local changes using
- Reports the success or failure of each update.
- For each server confirmed for update:
🛠️ Supported Project Types
| Type | Detection Method | Update Commands |
| :--------- | :-------------------------------- | :---------------------------------- |
| Node.js | package.json | npm install, npm run build |
| TypeScript | tsconfig.json | npm install, npm run build |
| Python | requirements.txt, Pipfile, setup.py | pip install, pipenv install |
| Go | go.mod | go mod download, go build |
| Java | pom.xml, gradlew | mvn clean install, ./gradlew build |
| Rust | Cargo.toml | cargo build |
| .NET | *.csproj | dotnet restore, dotnet build |
| C/C++ | Makefile, CMakeLists.txt | make, cmake |
🔧 Configuration
No special configuration is required for the script itself. It automatically reads your Claude Desktop configuration from:
%APPDATA%\Claude\claude_desktop_config.json
Ensure this file correctly lists your MCP servers.
🌐 Localization
The tool uses PowerShell's standard localization mechanism. User-facing strings are stored in .psd1 files within language-specific subdirectories under the Strings folder (e.g., Strings\en-US, Strings\fr-FR).
-
Supported Languages:
- English (
en-US) - Default - French (
fr-FR)
- English (
-
Language Selection:
- Parameter: Use the
-Languageparameter with a supported culture code (e.g.,.\Update-MCP-Servers.ps1 -Language fr-FR). - System Default: If
-Languageis not provided, the script attempts to use your system's current UI culture ($PSUICulture.Name). - Fallback: If neither the specified language nor the system culture has a corresponding
.psd1file, it falls back toen-US.
- Parameter: Use the
-
Adding a New Language:
- Create a new subdirectory in
Stringsusing the appropriate culture code (e.g.,es-ESfor Spanish). - Copy
Strings\en-US\Update-MCP-Servers.psd1into your new directory. - Translate the string values within the copied
.psd1file. - You can now use the new language via the
-Languageparameter (e.g.,-Language es-ES).
- Create a new subdirectory in
🔍 Advanced Usage
Command Line Arguments
.\Update-MCP-Servers.ps1 [-Language <cultureCode>]
-Language <cultureCode>: Sets the display language. Use standard culture codes likeen-US,fr-FR, etc.
(Note: -Update and -ForceUpdate arguments have been removed. The script now automatically checks for updates and prompts for confirmation.)
Environment Variables
MCP_UPDATER_BACKUP_DIR: (Not currently implemented) Custom location for backups.MCP_UPDATER_LOG_LEVEL: (Not currently implemented) Set to DEBUG for more verbose logging.
🚀 Main Improvements
Compared to basic update methods, this tool provides:
- Intelligent Git Repository Detection - Searches parent directories.
- Enhanced User Interface - Clear display with color coding.
- Standardized Localization - Easily extensible using
.psd1files. - Simplified Execution - No complex arguments needed for basic operation.
- Deep Project Analysis - Automatic detection of project type and build commands.
- Local Changes Protection - Stashes local changes before updating.
- Cross-platform Compatibility - Works with various types of MCP servers.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. Consider adding translations for new languages!
☕ Support Development
If you find this module useful, consider buying me a coffee to support further development!
Your support is greatly appreciated and helps keep this project maintained and improved!
📣 Acknowledgements
This tool was created with the help of Claude, an AI assistant from Anthropic.
