Skip to main content
Glama
yuriyo

RemoteZip MCP Server

by yuriyo

RemoteZip MCP Server

An MCP server that provides tools for accessing remote zip files over HTTP, HTTPS, and FTP protocols without downloading the entire archive.

Features

  • List files in remote zip archives

  • Extract individual files from remote zip archives

  • Get file information and statistics

  • Support for HTTP, HTTPS, and FTP protocols

  • Partial reading - only downloads necessary parts of the zip file

Related MCP server: Filesystem MCP Server (HTTP Streaming)

Installation

From Source

  1. Install Python 3.10 or higher

  2. Clone the repository:

    git clone https://github.com/yourusername/remotezip-mcp.git
    cd remotezip-mcp
  3. Install dependencies:

    pip install -e .

From GitHub Releases

Download the latest release from the Releases page and install:

pip install remotezip_mcp-1.0.0-py3-none-any.whl

MCP Server Configuration

For VSCode

  1. Install the MCP extension:

    • Search for "MCP (Model Context Protocol)" in VSCode extensions

    • Install the extension by Anthropic

  2. Create MCP configuration file:

    • Create the file ~/.vscode/mcp.json (on macOS/Linux) or %APPDATA%\Code\User\mcp.json (on Windows)

    • Or use the global config: ~/.config/mcp/mcp.json

  3. Add the following configuration to your mcp.json:

{
  "mcpServers": {
    "remotezip": {
      "command": "remotezip-mcp",
      "args": [],
      "env": {
        "PATH": "$PATH"
      }
    }
  }
}
  1. Restart VSCode to load the MCP server

For Cursor

  1. Open Cursor settings:

    • Press Cmd/Ctrl + , to open settings

    • Or go to File → Preferences → Settings

  2. Navigate to MCP settings:

    • Search for "mcp" in the settings search bar

    • Look for "MCP: Servers" or "Model Context Protocol" section

  3. Add a new MCP server with these exact settings:

  • Name: RemoteZip MCP Server

  • Command: remotezip-mcp

  • Arguments: Leave this field empty

  • Environment Variables: (optional)

  1. Save and restart Cursor to activate the MCP server

Alternative: Manual MCP Configuration

If your editor doesn't have built-in MCP support, you can also run the server manually:

# Start the MCP server
remotezip-mcp

Then connect to it using your MCP client with the server running on the default port.

Troubleshooting

  • Command not found: Make sure remotezip-mcp is in your PATH after installation

  • Permission denied: Try running with sudo or check file permissions

  • Server won't start: Verify the installation with remotezip-mcp --help

  • Configuration not loading: Check the JSON syntax in your mcp.json file

Usage

Run the server:

python remotezip_server.py

Or use the installed command:

remotezip-mcp

Tools

  • list_files(url): Get list of files in the archive

  • extract_file(url, filename, local_path): Extract a file to local storage

  • get_file_info(url, filename): Get details about a specific file

  • get_zip_statistics(url): Get overall statistics of the archive

Development

Setup Development Environment

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in development mode
pip install -e .

Running Tests

# Run the MCP server
python remotezip_server.py

Creating Releases

Use the provided release script:

./release.sh 1.0.0

This will:

  1. Create a git tag r1.0.0

  2. Push the tag to GitHub

  3. Trigger GitHub Actions to build and release

GitHub Actions

The repository includes automated release workflows:

  • Release Workflow (.github/workflows/release.yml): Automatically builds and releases when version tags are pushed

  • Triggers on tags matching pattern r*

  • Builds Python wheel and source distribution

  • Creates GitHub release with generated release notes

Dependencies

  • remotezip: For partial reading of remote zip files

  • mcp: Model Context Protocol framework

  • fastmcp: FastMCP server implementation

License

MIT License - see LICENSE file for details

Available Tools

4 tools
extract_fileB

Extract a specific file from a remote zip archive to local storage.

Args:
    url: URL of the remote zip file
    filename: Name of the file to extract
    local_path: Local directory to extract to (default: current directory)
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
filenameYes
local_pathNo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it extracts a file to local storage but does not disclose potential side effects (e.g., overwriting existing files), permissions required, or behavior with large archives. The write operation implies destructiveness that is not addressed.

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

Conciseness4/5

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

The description is very concise, with a clear one-line summary followed by parameter definitions in a standard format. However, it could be slightly more structured with a separate 'Use Cases' section to improve readability.

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

Completeness3/5

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

The tool is simple with 3 parameters and an output schema, so the description covers the basics. However, it misses important context such as error handling (e.g., file not found in archive), network requirements, and example usage. With better annotations, more might be expected.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. While parameter names are self-explanatory, the descriptions are minimal (e.g., 'URL of the remote zip file'). They do not specify expected formats, constraints (e.g., is filename a path inside the archive?), or error conditions. More detail is needed for each parameter.

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 extracts a specific file from a remote zip archive to local storage. The verb 'extract' and resource 'specific file from remote zip' are precise, and the tool is distinct from siblings like list_files and get_file_info, which serve informational purposes.

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?

The description provides no guidance on when to use this tool vs alternatives. It does not mention prerequisites (e.g., ensuring the zip is accessible) or scenarios where sibling tools should be used first, such as listing contents before extraction.

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

get_file_infoC

Get information about a specific file in the remote zip archive.

Args:
    url: URL of the remote zip file
    filename: Name of the file
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
filenameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not mention whether the operation is read-only, any side effects, or required permissions. The minimal description fails to disclose behavioral traits.

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

Conciseness4/5

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

The description is very short and to the point, with the primary purpose stated first and organized with an Args section. However, it is more under-specified than concise.

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

Completeness3/5

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

Given the low complexity (2 required params, no enums, output schema present), the description is minimally adequate. However, it fails to specify what kind of information is returned, relying entirely on the output schema.

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

Parameters1/5

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

Schema description coverage is 0%, and the description only lists parameter names in an Args section without adding any further meaning or constraints. It adds virtually no value over the input schema.

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 action ('get information') and the resource ('a specific file in the remote zip archive'). It is specific and distinct from sibling tools like extract_file, get_zip_statistics, and list_files.

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?

The description does not provide any guidance on when to use this tool versus its siblings, nor does it mention limitations or prerequisites. It simply states the function.

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

get_zip_statisticsB

Get statistics about the remote zip archive.

Args:
    url: URL of the remote zip file
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the action without disclosing behavioral traits like whether the operation is read-only, requires authentication, or has rate limits. The minimal description fails to add transparency.

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

Conciseness4/5

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

The description is very concise and front-loaded with the purpose. It uses a docstring style with Args section, which is structured. Every sentence earns its place but could be more informative without adding length.

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?

Despite having an output schema, the description fails to explain what statistics are returned (e.g., total size, file count). For a single-parameter tool, the description should provide more context about the tool's output or behavior beyond the minimal statement.

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?

Schema description coverage is 0%, but the description adds meaning by stating 'url: URL of the remote zip file', explaining that the parameter is a URL for a remote zip file. However, it does not specify format or accessibility requirements.

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 'Get statistics about the remote zip archive' with a specific verb ('Get') and resource ('remote zip archive'). It is distinct from sibling tools like extract_file, get_file_info, and list_files.

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?

No guidance is provided on when to use this tool versus alternatives, such as when to prefer get_zip_statistics over get_file_info or list_files. No explicit context or exclusions are given.

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

list_filesA

Get list of files in a remote zip archive.

Args:
    url: URL of the remote zip file (http, https, ftp supported)
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral transparency. It states the tool retrieves a file list, but does not disclose performance, error handling, or whether the entire archive is downloaded. Basic but incomplete.

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 very concise: a single sentence for the purpose plus a clear parameter list. No unnecessary text, well front-loaded.

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

Completeness3/5

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

With an output schema present, return values need not be described. However, the description lacks details on behavior for invalid URLs, non-zip files, or large archives. It is adequate for a simple tool but not fully complete.

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

Parameters4/5

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

The single parameter 'url' has 0% schema description coverage, but the description adds meaning by specifying it is for a remote zip file and supporting http, https, and ftp. This compensates well for the schema gap.

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 specifies the action (Get list of files) and resource (remote zip archive), and distinguishes it from sibling tools like extract_file and get_file_info.

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 usage for listing files in a zip, but does not provide explicit when-to-use, when-not-to-use, or alternative tools. It mentions supported URL schemes, but lacks guidance on context.

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.

  1. 4 tool updates
    • First observedextract_file
    • First observedget_file_info
    • First observedget_zip_statistics
    • First observedlist_files

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clear and distinct purpose: listing files, getting file info, getting archive statistics, and extracting a file. No overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (extract_file, get_file_info, get_zip_statistics, list_files) with underscores, forming a predictable naming convention.

Tool Count5/5

4 tools is ideal for a focused utility server that reads and extracts from remote zip archives. Each tool adds value without redundancy.

Completeness4/5

The set covers essential read operations (list, info, stats) and a single extraction action. Missing batch extraction or pattern-based extraction, but core workflows are supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A local MCP server that provides tools for working with 7-Zip archives, enabling archive creation, extraction, item management, and file system operations through a standardized interface.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables remote file system operations (read/write files, manage directories, search files) over HTTP using OAuth 2.0 authentication, with support for web-based clients and multiple concurrent sessions.
    11 npm
    MIT
  • 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.
    13 npm
    MIT