loading…
Search for a command to run...
loading…
Enables AI agents to automate local software management workflows including installation, uninstallation, updates, and environment recommendations. It provides
Enables AI agents to automate local software management workflows including installation, uninstallation, updates, and environment recommendations. It provides a standardized, non-interactive interface for managing system applications and tracking software versions safely.
A local Model Context Protocol (MCP) server that empowers AI coding agents to manage software on a computer in a safe, automated, and non-interactive way.
This project focuses on system automation: it enables AI agents to execute common software management workflows through explicit MCP tools, from installing applications to checking updates and recommending software for specific tasks.
Modern AI coding agents excel at understanding requirements and automating tasks, but they often lack standardized, non-interactive access to system software management workflows.
This project bridges that gap by exposing software management capabilities as explicit MCP tools, allowing AI agents to manage system software safely and predictably without relying on terminal prompts or interactive installers.
The project follows a clean layered architecture inspired by best practices from modern MCP servers:
main.py (MCP Tool Endpoints)
↓ Async/Sync Bridge (asyncio.to_thread)
services/ (Business Logic)
↓
utils/ (Low-level Utilities)
↓
models/ (Data Validation)
software/
├── main.py # MCP tool endpoints
├── settings.py # Configuration management
├── pyproject.toml # Project metadata
├── requirements.txt # Python dependencies
├── README.md # This file
├── models/ # Data validation & response models
│ ├── __init__.py
│ ├── result.py # ToolResult, ErrorInfo
│ ├── cmd_result.py # CmdResult (command execution)
│ └── software_models.py # Input validators (Pydantic)
├── services/ # Business logic layer
│ ├── __init__.py
│ └── software_service.py # SoftwareService class
├── utils/ # Utility functions
│ ├── __init__.py
│ ├── errors.py # Error code constants
│ ├── paths.py # Path utilities
│ └── validate.py # Input validation helpers
└── tests/ # Test suite (future)
install_softwareInstall a software application with automatic version management and tracking.
Parameters:
software_name (string, required): Name of the software to installReturns:
ok (boolean): Success indicatordata (object): Contains software name, version, and statusError Codes:
software_not_found: Software not in databasealready_installed: Software already installedinvalid_input: Input validation failedregistry_error: Error saving registryuninstall_softwareRemove software from the system with proper cleanup and registry updates.
Parameters:
software_name (string, required): Name of the software to uninstallReturns:
ok (boolean): Success indicatordata (object): Contains software name and statusError Codes:
software_not_found: Software not in databasenot_installed: Software is not currently installedinvalid_input: Input validation failedregistry_error: Error saving registrylist_installed_softwareDisplay a comprehensive list of all installed software with versions.
Parameters:
Returns:
ok (boolean): Success indicatordata (object): Contains installed_software array and countResponse Example:
{
"ok": true,
"data": {
"installed_software": [
{
"name": "python",
"version": "3.11.0",
"description": "Python programming language"
}
],
"count": 1
}
}
check_updatesIdentify software with available updates.
Parameters:
Returns:
ok (boolean): Success indicatordata (object): Contains available_updates array and countupdate_softwareUpdate a software application to the latest version.
Parameters:
software_name (string, required): Name of the software to updateReturns:
ok (boolean): Success indicatordata (object): Contains old version, new version, and statusError Codes:
software_not_found: Software not in databasenot_installed: Software not currently installedup_to_date: Already at latest versioninvalid_input: Input validation failedregistry_error: Error saving registryget_recommendationsGet software recommendations for a specific task or goal.
Parameters:
task (string, required): Task name (e.g., "web development")Supported Tasks:
web development → Python, Node.js, VS Code, Gitdata science → Python, Node.js, Gitdatabase → MySQL, PostgreSQL, Gitcontainerization → Docker, Gitjava development → Java, VS Code, Gitfull stack → Python, Node.js, MySQL, Docker, VS Code, GitReturns:
ok (boolean): Success indicatordata (object): Contains task name, recommendations array, and countError Codes:
software_not_found: Task not foundinvalid_input: Input validation failedset_auto_updateConfigure automatic update settings for software.
Parameters:
software_name (string, required): Name of the softwareenabled (boolean, required): Enable (true) or disable (false) auto-updateReturns:
ok (boolean): Success indicatordata (object): Contains software name, auto_update status, and status messageError Codes:
software_not_found: Software not in databasenot_installed: Software not currently installedinvalid_input: Input validation failedregistry_error: Error saving registryget_software_infoRetrieve detailed information about a software application.
Parameters:
software_name (string, required): Name of the softwareReturns:
ok (boolean): Success indicatordata (object): Contains full software detailsResponse Example:
{
"ok": true,
"data": {
"name": "python",
"description": "Python programming language",
"latest_version": "3.11.0",
"current_version": "3.11.0",
"installed": true,
"auto_update": false
}
}
Error Codes:
software_not_found: Software not in databaseinvalid_input: Input validation failed| Software | Latest Version | Category |
|---|---|---|
| python | 3.11.0 | Language |
| git | 2.43.0 | VCS |
| vscode | 1.87.2 | Editor |
| nodejs | 21.6.0 | Runtime |
| docker | 25.0.1 | Container |
| java | 21.0.1 | Language |
| mysql | 8.3.0 | Database |
| postgresql | 16.1 | Database |
git clone <repository-url>
cd software
pip install -r requirements.txt
Create or edit ~/AppData/Roaming/Claude/claude_desktop_config.json:
{
"mcpServers": {
"software-management": {
"command": "python",
"args": ["/absolute/path/to/software/main.py"]
}
}
}
python -m pytest tests/
The MCP server returns structured error codes for programmatic error handling:
| Code | Meaning | Common Cause | Recovery |
|---|---|---|---|
software_not_found |
Software not in database | Invalid software name | Check spelling, use list_installed_software |
already_installed |
Software is installed | Attempting to install twice | Use update_software instead |
not_installed |
Software not installed | Attempting to uninstall/update non-installed software | Install software first |
up_to_date |
Already latest version | No update needed | No action required |
invalid_input |
Input validation failed | Missing/invalid parameters | Verify input format and constraints |
registry_error |
Registry read/write error | Permissions or disk issues | Check file permissions and disk space |
config_missing |
Configuration missing | Required env variables | Check settings.py and .env file |
Symptom:
{
"ok": false,
"error": {
"code": "software_not_found",
"message": "Software 'xyz' not found in database"
}
}
Fix:
list_installed_software to see available optionsSymptom:
{
"ok": false,
"error": {
"code": "up_to_date",
"message": "Software 'python' is already up to date (v3.11.0)"
}
}
Fix:
Symptom:
{
"ok": false,
"error": {
"code": "software_not_found",
"hint": "Available tasks: web development, data science, ..."
}
}
Fix:
Symptom:
{
"ok": false,
"error": {
"code": "registry_error",
"message": "Error saving registry"
}
}
Fix:
software_registry.json is not corruptedThe system maintains a persistent software_registry.json file that tracks:
Example Registry:
{
"installed_software": {
"python": {
"version": "3.11.0",
"installed_date": "2026-02-18T10:30:00.123456",
"auto_update": false
},
"git": {
"version": "2.43.0",
"installed_date": "2026-02-18T10:35:00.654321",
"auto_update": true
}
}
}
Discover recommendations for a task:
Call: get_recommendations("web development")
Result: Receive list of recommended software
Install recommended software:
Call: install_software("python")
Call: install_software("nodejs")
List installed software:
Call: list_installed_software()
Result: View all installed programs and versions
Check for updates:
Call: check_updates()
Result: See available updates
Update individual software:
Call: update_software("python")
Result: Update to latest version
Enable auto-updates:
Call: set_auto_update("python", true)
Result: Enable automatic updates
The following features would further enhance the server:
This project is provided as-is for software management and automation purposes.
Project: MCP - Software Management
Version: 1.0.0
Last Updated: February 2026
Architecture: Layered MCP Server
Status: Production Ready
# m c p
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"software-management-mcp-server": {
"command": "npx",
"args": []
}
}
}Web content fetching and conversion for efficient LLM usage.
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also