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 (
.psd1
files), 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.ps1
The 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
-Language
parameter with a supported culture code (e.g.,.\Update-MCP-Servers.ps1 -Language fr-FR
). - System Default: If
-Language
is 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
.psd1
file, it falls back toen-US
.
- Parameter: Use the
-
Adding a New Language:
- Create a new subdirectory in
Strings
using the appropriate culture code (e.g.,es-ES
for Spanish). - Copy
Strings\en-US\Update-MCP-Servers.psd1
into your new directory. - Translate the string values within the copied
.psd1
file. - You can now use the new language via the
-Language
parameter (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
.psd1
files. - 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.