MCP Configurator Server
by Dheeraj32903
README.md
# MCP Configurator Server
A Model Context Protocol (MCP) server that provides tools to manage, edit, backup, and validate Claude Desktop and other client JSON configurations.
This application is built with the official `@modelcontextprotocol/sdk` and `zod` for argument schema validation, enabling client LLMs (like Claude or ChatGPT) to programmatically read and modify their own configuration and environment setups.
---
## Folder Structure
```
mcp-configurator/
├── lib/
│ ├── backup.js # Handles backup creation, listing, and restores
│ ├── config.js # Handles JSON loading, syntax validation, and updates
│ ├── validator.js # Checks system path command executable existence
│ └── utils.js # Filepath resolvers and cross-platform defaults
├── backups/ # Stores configuration backup files (.bak)
├── package.json # Project metadata and dependencies (type: module)
├── server.js # Server entry point running StdioServerTransport
└── README.md # Documentation
```
---
## Installation
1. **Install Dependencies**:
Open a terminal in the project directory and run:
```bash
npm install
```
---
## Running the Server
Since it uses Stdio transport, the server is meant to be spawned by an MCP host (such as Claude Desktop or Cursor). You can run it manually to check for syntax or launch issues:
```bash
npm start
```
*Note: This command will run and listen on stdin/stdout. You will see `MCP Configurator server running on stdio` outputted to `stderr` to avoid polluting the JSON-RPC channel.*
---
## Integration Setup
### 1. Claude Desktop Configuration
To add this configurator server to Claude Desktop on Windows, open your `%APPDATA%\Claude\claude_desktop_config.json` and add the `mcp-configurator` to your `mcpServers` list:
```json
{
"mcpServers": {
"mcp-configurator": {
"command": "node",
"args": [
"C:/Desktop/my workspace/work/server.js"
]
}
}
}
```
*Replace `C:/Desktop/my workspace/work/server.js` with the actual absolute path to where you saved this project.*
### 2. Cursor or other Local IDEs
For Cursor or VS Code, configure a new stdio-based MCP client with:
* **Command**: `node`
* **Arguments**: `C:/Desktop/my workspace/work/server.js`
---
## Tool Descriptions
The server registers the following tools:
### `get_config`
Reads a configuration JSON file.
* **Input**:
* `path` *(string, optional)*: Custom absolute path to the configuration JSON file. If omitted, defaults to the current system's Claude Desktop config file path.
* **Output**:
* The full JSON config payload.
### `save_config`
Saves configuration JSON after automatically creating a timestamped backup of the current state.
* **Input**:
* `path` *(string, required)*: Absolute path to the file to overwrite.
* `config` *(object, required)*: The new JSON configuration object.
* **Output**:
* Success message with the name of the backup created.
### `list_backups`
Lists all available configuration backups under the `backups/` workspace directory.
* **Input**: None.
* **Output**:
* Formatted list of all files detailing filename, backup date, and file size.
### `restore_backup`
Reverts the target configuration file using a selected backup file. Creates a new backup of the *current* state before overwriting as a safety measure.
* **Input**:
* `filename` *(string, required)*: Filename of the backup (e.g. `claude_desktop_config.json.bak-2026-07-08T11-04-05-123Z`).
* `path` *(string, optional)*: Custom absolute path to restore into. Defaults to the active configuration path.
* **Output**:
* Confirmation message of successful restoration.
### `validate_command`
Spawns standard shell diagnostic tools (`where` on Windows, `which` on macOS/Linux) or queries paths to confirm if an executable exists on the host machine. Helpful for verifying if custom MCP server commands (e.g. `npx`, `python`, `git`) are executable.
* **Input**:
* `command` *(string, required)*: The executable binary name or absolute path to check.
* **Output**:
* JSON object indicating success status, resolved PATH location, and descriptive message.
TDQS
A3.7/5.0
Scored across 5 tools
Disambiguation5/5
Each tool targets a distinct operation: reading config, listing backups, restoring, saving, and validating a command. No overlap in purpose.
Naming Consistency5/5
All tool names follow a consistent snake_case verb_noun pattern (get_config, list_backups, restore_backup, save_config, validate_command).
Tool Count5/5
5 tools is well-scoped for a configuration server, covering essential operations without excess or deficiency.
Completeness4/5
Core CRUD-like operations are present (read, save with backup, backup management, path validation). Missing a delete backup tool, but it's a minor gap.
Maintenance
ActivityMaintained
ResponsivenessSyncing