Skip to main content
Glama
Wordbe

mac2win-zip MCP Server

by Wordbe

mac2win-zip MCP Server

An MCP (Model Context Protocol) server for creating Windows-compatible ZIP files.

This MCP server wraps the functionality of mac2win-zip to create ZIP files that work perfectly on Windows from macOS.

Why mac2win-zip MCP Server?

The Problem

macOS uses NFD (Normalization Form Decomposed) for Unicode filenames, while Windows uses NFC (Normalization Form Composed). When you create a ZIP file on macOS containing files with Unicode characters (like Korean, Japanese, or special characters), Windows users often see garbled filenames.

macOS (ZIP created)

Windows (ZIP opened)

πŸ“„ Hello?.pdf

❌ (removed)

πŸ“„ μ•ˆλ…•ν•˜μ„Έμš” 세상.pdf

❌ (removed)

The Solution

This MCP server automatically:

  1. Normalizes all filenames from NFD to NFC

  2. Removes or replaces Windows-forbidden characters

  3. Excludes macOS-specific files (.DS_Store, etc.)

  4. Preserves the folder structure

Result: ZIP files that work perfectly on both macOS and Windows!

macOS (ZIP created)

Windows (ZIP opened)

πŸ“„ Hello.pdf

βœ… Hello.pdf

πŸ“„ μ•ˆλ…•ν•˜μ„Έμš” 세상.pdf

βœ… μ•ˆλ…•ν•˜μ„Έμš” 세상.pdf

Related MCP server: ZIP MCP

Installation

Quick Start - One Command! πŸš€

The easiest way to add this MCP server to Claude Desktop:

claude mcp add --transport stdio mac2win-zip -- uvx mac2win-zip-mcp

That's it! Restart Claude Desktop and it's ready to use.

For Developers

Contributing or developing? Clone and install in editable mode:

git clone https://github.com/Wordbe/mac2win-zip-mcp.git
cd mac2win-zip-mcp
uv pip install -e ".[dev]"

Usage

MCP Tools

This server provides the following tools:

create_windows_compatible_zip

Create a Windows-compatible ZIP file from files and/or folders.

Parameters:

  • paths (array, required): List of file or folder paths to zip

  • output (string, optional): Output ZIP filename (default: "archive.zip")

  • working_dir (string, optional): Base directory for relative paths

Example usage:

Create a Windows-compatible ZIP of the current directory

Paths: ["."]
Output: "backup.zip"

validate_zip_for_windows

Validate if a ZIP file is Windows-compatible.

Parameters:

  • zip_path (string, required): Path to the ZIP file to validate

  • working_dir (string, optional): Base directory for relative path

Example usage:

Check if a ZIP file is Windows-compatible

ZIP Path: "archive.zip"

Example Usage

Once configured in Claude Desktop, simply ask Claude in natural language:

Create a Windows-compatible ZIP:

Create a Windows-compatible ZIP of my Documents folder.

Validate an existing ZIP:

Check if backup.zip is Windows-compatible.

Batch processing:

Create Windows-compatible ZIPs for all folders in ~/Projects

Claude will automatically use the MCP tools to create properly formatted ZIP files that work perfectly on Windows!

Features

  • Unicode Normalization: Converts macOS NFD filenames to Windows-compatible NFC

  • Character Sanitization: Removes Windows-forbidden characters (<>:"|?*\)

  • Auto Recursive: Automatically includes all subdirectories when zipping folders

  • Smart Naming: Creates folder-name.zip by default (no -o needed for single folder)

  • Structure Preservation: Maintains original folder hierarchy in ZIP

  • Smart Filtering: Excludes hidden files (.DS_Store, etc.)

  • Korean Support: Perfect handling of Korean and other Unicode filenames

  • MCP Protocol: Works with any MCP-compliant AI assistant (Claude, etc.)

Requirements

  • uv - Fast Python package runner

    • Install: brew install uv or curl -LsSf https://astral.sh/uv/install.sh | sh

  • Claude Desktop (or any MCP-compatible AI assistant)

Note: Python is NOT required! uvx automatically downloads and manages Python 3.10+ for you.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Architecture

This MCP server is a thin wrapper around the mac2win-zip library, exposing its functionality via the Model Context Protocol. This means:

  • Single source of truth: Core ZIP creation logic lives in mac2win-zip

  • Always in sync: Updates to mac2win-zip automatically benefit this MCP server

  • Separation of concerns: CLI tool and MCP server share the same battle-tested code

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

Bug Reports

If you discover any bugs, please create an issue on GitHub with:

  • Your operating system and version

  • Python version

  • MCP client information

  • Steps to reproduce the bug

  • Expected vs actual behavior

Show Your Support

If this project helped you, please give it a star!


Available Tools

2 tools
create_windows_compatible_zipA

Create Windows-compatible ZIP file from files and/or folders.

Args: paths: List of file or folder paths to zip output: Output ZIP filename working_dir: Base directory for relative paths

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes
outputNoarchive.zip
working_dirNo

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden of behavioral disclosure, but it only states that a Windows-compatible ZIP is created. It does not reveal important behavioral traits such as whether existing output files are overwritten, how directories are traversed, what compatibility adjustments are made, or what side effects occur on failure. The term 'Windows-compatible' is vague and not elaborated, leaving common implementation details undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a single purpose line followed by a focused Args list. Every sentence contributes useful information, and the front-loaded purpose statement makes the tool's intent immediately clear without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for a side-effecting file-creation tool. It covers parameter meanings but omits critical context such as return behavior, overwrite handling, recursion details, error conditions, and any relationship or follow-up with sibling 'validate_zip_for_windows'. An agent would need to make many assumptions before safely invoking this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no descriptions (0% coverage), but the description's Args section fully compensates by explaining each parameter: paths are file or folder paths, output is the output ZIP filename, and working_dir is the base directory for relative paths. This adds meaningful semantic clarity beyond the raw schema types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Create') and resource ('Windows-compatible ZIP file from files and/or folders'). It distinguishes itself from the sibling tool 'validate_zip_for_windows' by focusing on creation rather than validation, so there is no ambiguity about the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it ('Create Windows-compatible ZIP file') but does not provide explicit usage context or exclusions. It does not mention alternatives like 'validate_zip_for_windows' or explain when the tool should not be used, leaving the agent to infer the appropriate scenario from the tool name and one-line summary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_zip_for_windowsB

Validate if a ZIP file is Windows-compatible.

Args: zip_path: Path to the ZIP file to validate working_dir: Base directory for relative path

ParametersJSON Schema
NameRequiredDescriptionDefault
zip_pathYes
working_dirNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose side effects and return values. It only says 'Validate' without explaining the output, error behavior, or whether it modifies anything.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct and front-loaded with a clear purpose statement, followed by a structured parameter list. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks essential context: no return value, no validation criteria, and no output schema. It is too sparse for a tool with no annotations or schema hints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description includes an Args section that explains 'zip_path' and 'working_dir', which supplements the schema where descriptions are absent. However, the explanation is minimal and doesn't clarify how 'working_dir' affects validation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Validate') and resource ('a ZIP file'), and the scope 'Windows-compatible' distinguishes it from the sibling tool 'create_windows_compatible_zip'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool vs the sibling tool. The description only states what it does, not when to prefer it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observedcreate_windows_compatible_zip
    • First observedvalidate_zip_for_windows

TDQS

A3.9/5.0
Disambiguation5/5

The two tools are clearly distinct: one creates a Windows-compatible ZIP, the other validates an existing ZIP. There is no overlap in their purposes, so an agent can unambiguously choose the right tool.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern: create_windows_compatible_zip and validate_zip_for_windows. While the second name uses a preposition, the overall structure is uniform and predictable.

Tool Count5/5

With only two tools, the server is tightly scoped to its stated purpose of creating and validating Windows-compatible ZIP files. Each tool is essential and there is no unnecessary bloat.

Completeness5/5

For the domain of Windows-compatible ZIP handling, the server covers both primary operations: creation and validation. This is a complete workflow with no missing steps or dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables comprehensive file and document operations including image compression, archive creation/extraction, file copying/moving, PDF merging/splitting/conversion, SQLite database queries, and advanced text processing.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A powerful ZIP file processing tool that enables creating, extracting, listing, adding, deleting, viewing, and verifying ZIP files through MCP protocol integration with AI development environments.
    50
    MIT
  • A
    license
    A
    quality
    Not graded
    maintenance
    Enables comprehensive filesystem operations across Linux, macOS, and Windows with platform-aware command execution, secure path restrictions, and intelligent adaptations for file search, directory management, and shell commands specific to each operating system.
    13
    -

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/Wordbe/mac2win-zip-mcp'

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