About MCP Server Updater
A PowerShell utility for Claude Desktop users that inspects configured MCP servers and checks their Git repositories for updates. It can update selected servers, install dependencies, build projects, and protect local changes.
Key features
- 01Finds servers in Claude Desktop configuration
- 02Detects Git repositories and project types
- 03Checks for available updates
- 04Confirms updates before applying them
- 05Stashes local changes and builds projects
Use cases
- 01Review update status for configured MCP servers
- 02Update selected servers and rebuild their projects
MCP support
It reads the MCP server entries in Claude Desktop's configuration, then analyzes and updates the associated server repositories.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Server Updater
A PowerShell tool to analyze and update Model Context Protocol (MCP) servers for Claude Desktop.
🌟 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.
📝 Other Languages
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.
