Skip to main content
Glama
henry1042

MSI Metadata MCP Server

by henry1042

MSI Metadata MCP Server

A Model Context Protocol (MCP) server for reading MSI files and managing Windows software installations.

Features

  • MSI Metadata Reading - Extract ProductCode, ProductName, ProductVersion, etc.

  • Silent Install/Uninstall Commands - Generate msiexec commands

  • Registry-based Installed Apps - Query installed software (fast, safe)

  • Advanced MSI Analysis - Features, Components, Files, Shortcuts, Custom Actions

  • Summary Information - MSI summary stream data

  • Command Builders - Build install/uninstall commands with logging

Installation

Prerequisites

  • Windows 10/11

  • Python 3.8+

  • PowerShell 5.1+

Setup

# Clone the repository
git clone https://github.com/yourusername/MSI-MCP-Server.git
cd MSI-MCP-Server

# Create virtual environment
python -m venv .venv
.venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Usage

Basic Usage

from mcp_msi_server import local_read_msi_metadata, local_suggest_silent_commands

# Read MSI metadata
meta = local_read_msi_metadata("path/to/installer.msi")
print(meta)

# Get silent commands
cmds = local_suggest_silent_commands("path/to/installer.msi")
print(cmds)

MCP Client Integration

Claude Desktop

Add to %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "msi-metadata": {
      "command": "C:\\path\\to\\MSI-MCP-Server\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\MSI-MCP-Server\\mcp_msi_server.py"]
    }
  }
}

Cursor

Use built-in MCP support with the same configuration.

Testing

# Test basic functionality
python test_basic.py

# Test all features
python test_all_features.py

Available MCP Tools

  • read_msi_metadata(msi_path) - Read core MSI properties

  • suggest_silent_commands(msi_path) - Generate install/uninstall commands

  • get_product_code/name/version(msi_path) - Individual property getters

  • build_install_command(msi_path, log_path?, extra_args?) - Build install command

  • build_uninstall_command(product_code, log_path?, extra_args?) - Build uninstall command

  • list_tables(msi_path) - List MSI table names

  • list_features(msi_path) - List MSI features

  • list_components(msi_path) - List MSI components

  • list_files(msi_path) - List MSI files

  • list_shortcuts(msi_path) - List MSI shortcuts

  • list_custom_actions(msi_path) - List custom actions

  • read_summary_info(msi_path) - Read summary information

  • registry_list_installed() - List installed applications

  • registry_find_by_name(name) - Find apps by name

  • registry_find_by_product_code(product_code) - Find apps by ProductCode

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests

  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Support

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/henry1042/MSI-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server