Skip to main content
Glama
MASTER246C

AgentParcel MCP Server

by MASTER246C

Windows users on 3.4.0 or 3.5.0 should update to 3.5.1, which fixes the "Argument types do not match" split error and the false "corrupt part" rebuild results, confirmed working on Windows.

AgentParcel lets AI agents hand off large files to other agents and cloud agents that enforce strict per-file upload limits. It splits a zip or a folder into size-capped zip parts, or byte-splits any single file (PDF, video, dataset, CAD, and so on) into numbered raw parts, stores a SHA-256, and rebuilds the original on the other side. Parts made on Windows, macOS, and Linux rebuild on any of the three.

It ships three ways:

  • Apps for Windows, macOS, and Linux: a window, plus a command line.

  • A stdio MCP server (Python standard library only, plus optional cryptography when parts are encrypted) with tools inspect, split_zip, split_any_file, split_files, verify, regenerate_parts, rebuild, and make_apps_bundle.

  • A rebuild kit. With "Include AgentParcel apps" left on, the split folder also gets AgentParcel-apps.zip: the Windows, Mac, and Linux programs, a short "how to rebuild" note, and the license. Send it with the parts so the receiving machine has the program.

The default cap is 19.5 MiB per part (19.5 × 1024 × 1024 = 20,447,232 bytes). When an upload limit is quoted in decimal megabytes — a "20 MB" cap that means 20,000,000 bytes — use 19 MB, or pass an exact max_bytes. Zip parts are ordinary zips and open on their own. A byte-split part is a raw slice of the original file. Rebuild checks SHA-256, and it names any missing or corrupt part before it writes anything.

3.5.1 fixes Windows zip splitting ("Argument types do not match") and byte-part rebuilds that reported every part corrupt. 3.5.0 adds presets, re-send of missing parts, optional zlib and AES-256-GCM, and a pip-installable package. 3.3.x and 3.4.0 part sets still verify and rebuild. With compression and encryption left off, a byte split is the same raw parts as 3.4.0.

  • Size presets pick the part cap: chatgpt-dot (19,000,000 bytes, under a 20,000,000 byte ChatGPT Dot cap), chat-512 (500,000,000 under 512,000,000; products differ), discord (24,000,000 under the free 25 MB cap; Nitro is higher and is not this preset), email (24,000,000 under a common 25 MB mailbox cap), github-release (1,900,000,000 under GitHub's 2 GB per-file release limit), and custom (default 19.5 MiB). Each cap sits under the advertised limit. Those limits can change; confirm the current one before a large send.

  • Re-send missing parts. Verify names what is missing or corrupt. Resend in the window, or the MCP tool regenerate_parts, rewrites only those parts from the original file. Parts that already match are left untouched. Rebuild says which parts are still needed.

  • Optional compression and encryption, both off by default. Zlib (one part at a time) is undone by rebuild.py with the Python standard library. Password encryption is AES-256-GCM with scrypt, from the cryptography package (pip install agentparcel[crypto]). The manifest records the algorithm, salt, and per-part nonce. It never records the password. rebuild.py cannot decrypt an encrypted set and does not write a file; use AgentParcel and give the same password.

  • Install with pip (not uploaded in this release): pip install agentparcel provides agentparcel and agentparcel-mcp.

3.4.0, still in this release: split any file, verify, HOW-TO-REBUILD.txt plus rebuild.py, and Stop (Cancelled, and the partial output from that run is removed).

Why it exists

I made AgentParcel with Grok Bot because ChatGPT Dot has a 20 MB file limit, other chats have a 512 MB limit, and so on. This is how I hand a large file to another agent, or to a cloud agent, when the chat will not take the whole thing.

— Chris Kalkowski

During development the working name was ZipSplitter. AgentParcel is an independent project. It is not affiliated with, endorsed by, or derived from any other project named ZipSplitter, and it does not use any of that project's code. See About the name.

Related MCP server: pulr

Downloads

Get the tested packages from the Releases page. Current release: AgentParcel 3.5.1.

Package

Platform

AgentParcel-3.5.1-windows.zip

Windows 10/11. The app is PowerShell 5.1, which Windows already includes. Python is only for the MCP server.

AgentParcel-3.5.1-linux.zip

Linux with Python 3.9+ (3.15 recommended). The window needs Tk; without it the app runs in text mode.

AgentParcel-3.5.1-macos.zip

macOS 11+ with Python 3.9+. Community-tested/beta. Mac users: if you hit an issue or can help test, reach out via chriskalkowski.com.

SHA256SUMS.txt

Checksums for the three zips.

137545fb572d11adeb901b788d762f1a91b8786ba8d3342d85e7bd9013d9d89c  AgentParcel-3.5.1-windows.zip
5d49b8f797f23dabee07c7a0f9d35e58bdff95501e9bec0022cd4aca23fb3b31  AgentParcel-3.5.1-linux.zip
b218ec11acb493887a07acced172cb693bd418ba75fcc94e0c93515cfd6377bc  AgentParcel-3.5.1-macos.zip

Check a download with sha256sum -c SHA256SUMS.txt (Linux), shasum -a 256 -c SHA256SUMS.txt (macOS), or Get-FileHash .\AgentParcel-3.5.1-windows.zip (Windows PowerShell).

Quick start

Extract the zip first. Do not run the app from inside the archive.

Windows

  1. Double-click AgentParcel.bat.

  2. Split: choose a .zip, set the size limit, and click Split. Parts go to <name>_split\. Leave "Include AgentParcel apps" ticked when the receiver needs the program. For any other file, or with "Byte-split this file", the parts are raw slices of that file (<filename>_split\).

  3. Verify, then Rebuild. Verify names missing and corrupt parts and writes nothing. Rebuild puts the original back.

  4. Stop cancels the job and reports Cancelled.

If Windows shows "Windows protected your PC", click More info, then Run anyway. These are plain text scripts.

powershell -ExecutionPolicy Bypass -File AgentParcel.ps1 -NoGui -LimitMB 19.5 "C:\path\big.zip"
powershell -ExecutionPolicy Bypass -File AgentParcel.ps1 -NoGui -SplitBytes "C:\path\movie.mp4"
powershell -ExecutionPolicy Bypass -File AgentParcel.ps1 -Verify "C:\path\big_split"
powershell -ExecutionPolicy Bypass -File AgentParcel.ps1 -Join "C:\path\big_split" -OutputDir "C:\out"

You can also drag a zip or a part onto AgentParcel.bat. For the MCP server, double-click Install-Python-for-AgentParcel.bat. It installs Python 3.15 for your user (no admin), smoke-tests the server, and writes MCP-config-snippets.txt with your real paths. It does not edit agent configs.

Linux

unzip AgentParcel-3.5.1-linux.zip && cd AgentParcel-3.5.1-linux
./install-deps.sh          # python3 and Tk, via apt/dnf/yum/pacman/zypper; it asks before sudo
./agentparcel.sh           # opens the window

If a script is not executable (it was copied through Windows, for example): chmod +x *.sh *.py mcp/*.py.

python3 agentparcel.py --no-gui --limit-mb 19.5 /path/big.zip
python3 agentparcel.py --join /path/big_split --output-dir /tmp/out

agentparcel.desktop is an optional menu entry. Edit its Exec= path, then copy it to ~/.local/share/applications/.

macOS

Community-tested/beta. It is the same Python program as the Linux release. Finder, Gatekeeper, the Tk window, and install-python-macos.sh still need a pass on Mac hardware. Mac users: if you hit an issue or can help test, reach out via chriskalkowski.com. TESTING-CHECKLIST.md inside the zip is the list to work through.

  1. Double-click the zip in Finder and move the folder somewhere such as Documents.

  2. In Terminal:

cd ~/Documents/AgentParcel-3.5.1-macos
xattr -dr com.apple.quarantine .     # optional: skips the "unidentified developer" prompts
./install-python-macos.sh --check    # or without --check, to install Python 3.15
  1. Double-click AgentParcel.command. The first time, macOS may block it: right-click, Open, then Open. If it says permission denied: chmod +x AgentParcel.command agentparcel.py mcp/*.py.

Use Python from python.org (/usr/local/bin/python3) or Homebrew (/opt/homebrew/bin/python3 on Apple silicon). Apple's /usr/bin/python3 stub is the wrong one, and its Tk can look broken.

python3 agentparcel.py --no-gui --limit-mb 19.5 ~/Downloads/big.zip
python3 agentparcel.py --join ~/Downloads/big_split --output-dir ~/Desktop

MCP server

mcp/agentparcel_mcp.py speaks Model Context Protocol over stdio. It needs Python 3.9 or newer (3.15 recommended; 3.11 or newer for archives over 4 GB) and the agentparcel.py engine in the same folder. No extra packages.

Tool

What it does

inspect

Read-only. Sizes, entry count, estimated parts. For a part: set id, part n of N, and which parts are missing.

split_zip

Split a .zip into <name>_part01.zip, _part02.zip, … each at most max_mb or a preset.

split_any_file

Byte-split any one file. Optional compress (zlib) and password (AES-256-GCM).

split_files

Zip files and folders, then split them, in one step.

verify

Read-only. Names missing and corrupt parts.

regenerate_parts

Rewrite only the missing or corrupt parts from the original file.

rebuild

Rebuild the original from a folder, one part, or a list of parts. SHA-256 checked. Says which parts are still needed. extract=true also unpacks a zip.

make_apps_bundle

Write AgentParcel-apps.zip for a person on the other side.

Paths must be absolute. The server never overwrites or deletes a file; a name that is taken gets (2). An agent receives the apps bundle only when it passes include_apps=true.

Optional sandbox: set AGENTPARCEL_MCP_ROOTS to the folders the server may read and write (; on Windows, : on Mac and Linux). ZIPSPLITTER_MCP_ROOTS is still accepted when AGENTPARCEL_MCP_ROOTS is unset. That fallback comes from our own development builds, not from any other project named ZipSplitter. See About the name. Remove env from a snippet to allow every path.

Big splits can take minutes. Codex CLI's tool_timeout_sec defaults to 60; the snippet below sets 1800. For Claude Code, set MCP_TOOL_TIMEOUT=1800000 (milliseconds) before starting it.

Each release zip has mcp/README-mcp.txt with snippets filled in for that platform. Replace YOU with your home folder, and on Windows prefer the full path of a real python.exe (not the Microsoft Store shortcut). Install-Python-for-AgentParcel.bat writes those paths for you.

Cursor — ~/.cursor/mcp.json, or <project>/.cursor/mcp.json. On Windows the file is %USERPROFILE%\.cursor\mcp.json.

{
  "mcpServers": {
    "agentparcel": {
      "command": "/usr/bin/python3",
      "args": ["/home/YOU/AgentParcel-3.5.1-linux/mcp/agentparcel_mcp.py"],
      "env": { "AGENTPARCEL_MCP_ROOTS": "/home/YOU" }
    }
  }
}

Once the package is on PyPI, an MCP client can start it without a checkout. uvx runs the script named agentparcel-mcp from the agentparcel package. Encryption needs the crypto extra.

{
  "mcpServers": {
    "agentparcel": {
      "command": "uvx",
      "args": ["--from", "agentparcel", "agentparcel-mcp"]
    }
  }
}

pipx run agentparcel-mcp is the same idea after pipx install agentparcel. pip install agentparcel puts agentparcel and agentparcel-mcp on PATH. pip install "agentparcel[crypto]" adds AES-256-GCM. This release is packaged and tested locally. It has not been uploaded. To publish, build the sdist and wheel (python -m build) and upload them with twine and a PyPI API token (python -m twine upload dist/agentparcel-*.tar.gz dist/agentparcel-*.whl). Do not commit the token.

macOS uses /usr/local/bin/python3 (python.org) or /opt/homebrew/bin/python3 (Homebrew), and a path under /Users/YOU/AgentParcel-3.5.1-macos/mcp/. Windows uses the Python 3.15 python.exe and a path such as C:\\Users\\YOU\\AgentParcel-3.5.1-windows\\mcp\\agentparcel_mcp.py.

Claude Desktop — merge the same mcpServers object into the config, then restart the app.

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: there is no official Claude Desktop build. Use Claude Code, Cursor, or Codex CLI.

Claude Code (once, for every project):

claude mcp add agentparcel --scope user --env AGENTPARCEL_MCP_ROOTS="$HOME" -- \
  /usr/bin/python3 "$HOME/AgentParcel-3.5.1-linux/mcp/agentparcel_mcp.py"

Codex CLI — ~/.codex/config.toml (on Windows, %USERPROFILE%\.codex\config.toml):

[mcp_servers.agentparcel]
command = "/usr/bin/python3"
args = ["/home/YOU/AgentParcel-3.5.1-linux/mcp/agentparcel_mcp.py"]
env = { AGENTPARCEL_MCP_ROOTS = "/home/YOU" }
startup_timeout_sec = 20
tool_timeout_sec = 1800

Try the server by hand:

python3 mcp/agentparcel_mcp.py --version
python3 mcp/agentparcel_mcp.py --list-tools

About the name

ZipSplitter was our internal working name during development. Before release we researched it, found another existing project already using that name, and switched to AgentParcel for the public release.

AgentParcel is an independent project. It is not affiliated with, endorsed by, or derived from any other project named ZipSplitter, and it does not use any of that project's code. ZipSplitter was only our internal working name; all AgentParcel code was written from scratch for this project.

Leftover _zipsplitter_* marker files and ZIPSPLITTER_* environment-variable fallbacks come from our own development builds, not from that other project. They remain only for backward compatibility. The markers (_zipsplitter_part.json, _zipsplitter_manifest.json, _zipsplitter_apps.json) stay in each part set, and ZIPSPLITTER_MCP_ROOTS / ZIPSPLITTER_PY still apply when the matching AGENTPARCEL_* variable is unset. Parts from those builds still rebuild, and those builds still rebuild AgentParcel parts. A development apps bundle is named ZipSplitter-apps.zip; AgentParcel ignores it, and those older builds ignore AgentParcel-apps.zip.

Point an agent config at agentparcel_mcp.py. The server name in the snippets is agentparcel.

From this repository

Path

What it is

src/

The programs: AgentParcel.core.ps1, agentparcel.core.py, agentparcel_mcp.py, launchers, and the docs build.py packs into each release.

src/assets/

Neon icon (PNG, .ico, .icns) and wordmark.

src/release/

Per-platform READMEs, install helpers, license, changelog, and release notes. @@ZS_VERSION@@ is filled in at build time.

build.py

Builds the three platform packages into dist/ (gitignored).

make_assets.py

Regenerates src/assets/ from the neon source images.

tk-window-agentparcel-icon.png

Screenshot of the window.

LICENSE.txt

AgentParcel License 1.0.

CHANGELOG.md

History. Entries before 3.3.1 use the internal working name.

python3 build.py

dist/ is a local build. The zips attached to the GitHub Release are the tested packages; a fresh run of build.py is not byte-for-byte identical, because the packager stamps the current time. History is in CHANGELOG.md.

License

AgentParcel License 1.0 (LICENSE.txt). Copyright (c) 2026 Chris Kalkowski.

This is source-available. It is not OSI-approved open source, because of the Equal Tier Availability rule.

In plain English:

  • You may use, copy, modify, share, and sell it, including commercially. Keep the license and the copyright notice with it.

  • You may market it as an included feature. Charging for your own product is fine.

  • If a product with several plans or tiers includes AgentParcel, every tier that can use that kind of tool must get it on equal terms, free tier included. For the MCP server that means every tier with MCP or tool access. For the apps, every tier that can run local apps or scripts. It cannot be reserved for a higher or paid tier. Usage limits on it cannot be stricter than the limits on comparable tools in that same tier.

  • A tier with no such access at all does not have to get it, as long as that gap is general and is not a way to single out AgentParcel.

  • There is no warranty.

Licensing questions and other permissions: chriskalkowski.com.

Contact

Available Tools

8 tools
inspectInspect a zip, part, file or folderA
Read-only

Read-only. Look at a path before splitting or rebuilding. For a .zip: entry count, sizes, entries bigger than one part, estimated number of parts at max_mb. For a AgentParcel part: set id, part n of N, which parts are present/missing in its folder, whether it is ready to rebuild. For a folder: the part sets in it (with missing parts), or for a normal folder file count/bytes and a worst-case part estimate. For any other file: size and worst-case part estimate. Paths must be absolute.

NameRequiredDescriptionDefault
pathYesAbsolute path of a .zip, a part, a folder or any file.
max_mbNoMax size of each part in MiB (1 MB here = 1,048,576 bytes). Default 19.5. If your upload limit is in decimal MB (e.g. 20 MB = 20,000,000 bytes) pass max_bytes or a smaller max_mb.
presetNoPick the part size from a platform cap. custom (default) uses max_mb/max_bytes. chatgpt-dot: 19,000,000 bytes (under a 20,000,000 byte ChatGPT Dot cap). chat-512: 500,000,000 bytes (under a 512,000,000 byte chat cap; products differ). discord: 24,000,000 bytes for the free 25 MB limit (Nitro is higher and is not this preset). email: 24,000,000 bytes under a common 25 MB attachment cap (other providers differ). github-release: 1,900,000,000 bytes under GitHub's 2 GB release-asset limit. A named preset sets the part size. max_mb is ignored. max_bytes together with a named preset is an error. These limits can change; confirm the current one before a large send.
max_bytesNoExact max size of each part in bytes. Overrides max_mb. Do not combine with a named preset.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description reinforces this with "Read-only" while adding substantive detail about what each inspection yields (entry counts, oversize entries, estimated part count, part n of N, present/missing parts, readiness to rebuild). With no output schema, this per-type return description is genuinely load-bearing; only error/nonexistent-path behavior is unaddressed.

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?

Front-loaded with the read-only guarantee, then organized as four parallel "For a X:" clauses, each carrying distinct information with no filler. Slightly longer than minimal, and the opening "Read-only" restates the annotation, but no sentence is wasted.

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

Completeness4/5

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

Given four optional parameters, no output schema, and a multi-modal input, the description does the work of documenting return content per input type, which is the main gap it needed to fill. Missing only edge-case behavior (invalid/missing paths, what happens when the zip is encrypted or malformed) to be fully complete.

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 100% and the schema already documents path, max_mb, preset, and max_bytes in far more depth than the description does. The description adds only indirect context by referencing max_mb in the part-count estimate; it never explains presets or max_bytes, so it does not go beyond the schema. Baseline 3.

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?

States a specific verb and resource (inspect a path) and then enumerates exactly what is reported for each input type: zip, AgentParcel part, folder, plain file. This makes it trivially distinguishable from siblings like split_zip, rebuild, and verify, which act on the same resources.

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

Usage Guidelines4/5

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

"Look at a path before splitting or rebuilding" gives a clear when-to-use context that ties it to split_* and rebuild. It also states the hard constraint that paths must be absolute. It does not explicitly contrast with verify (the other read-ish sibling) or say when not to use it, so it falls short of a 5.

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

make_apps_bundleWrite AgentParcel-apps.zipA

Write AgentParcel-apps.zip (AgentParcel for Windows, Mac and Linux plus this MCP server and 'HOW TO REBUILD.txt') into output_dir, so a human who receives parts can rebuild them. Never overwrites (adds ' (2)'). Optional max_mb/max_bytes: fail if the bundle would be bigger.

NameRequiredDescriptionDefault
max_mbNoMax size of each part in MiB (1 MB here = 1,048,576 bytes). Default 19.5. If your upload limit is in decimal MB (e.g. 20 MB = 20,000,000 bytes) pass max_bytes or a smaller max_mb.
presetNoPick the part size from a platform cap. custom (default) uses max_mb/max_bytes. chatgpt-dot: 19,000,000 bytes (under a 20,000,000 byte ChatGPT Dot cap). chat-512: 500,000,000 bytes (under a 512,000,000 byte chat cap; products differ). discord: 24,000,000 bytes for the free 25 MB limit (Nitro is higher and is not this preset). email: 24,000,000 bytes under a common 25 MB attachment cap (other providers differ). github-release: 1,900,000,000 bytes under GitHub's 2 GB release-asset limit. A named preset sets the part size. max_mb is ignored. max_bytes together with a named preset is an error. These limits can change; confirm the current one before a large send.
max_bytesNoExact max size of each part in bytes. Overrides max_mb. Do not combine with a named preset.
output_dirYesAbsolute folder to write into.
create_output_dirNoCreate output_dir if it does not exist (otherwise that is an error).

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover the safety profile (non-readonly, non-destructive, non-idempotent), and the description adds real value beyond them: append-on-collision naming ' (2)' (which explains the non-idempotent hint concretely) and the fail-if-too-large behavior. It stops short of saying what the return value contains or where parts land.

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?

One tight sentence front-loads the artifact and destination, then adds collision and size-limit behavior. No filler.

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

Completeness4/5

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

For a no-output-schema write tool, the description covers destination, contents, collision behavior and size failure modes. The one gap is what is returned (paths/names of written files, whether multiple parts are produced), which matters given the 'parts' language and sibling splitting tools.

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?

Schema coverage is 100%, so baseline is 3, and the description adds the important semantic that max_mb/max_bytes cause a failure rather than a silent split. Slight tension with the schema wording 'Max size of each part', which suggests multi-part output, but the extra fail-fast semantics still earn above baseline.

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

Purpose4/5

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

States a concrete verb and artifact: writes AgentParcel-apps.zip into output_dir, and enumerates the contents (Windows/Mac/Linux builds, this MCP server, HOW TO REBUILD.txt). It is clearly distinct from split_*/verify/rebuild siblings, though it never names them explicitly.

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 phrase 'so a human who receives parts can rebuild them' implies the use case, but there is no explicit when-to-use versus when-not, and no routing to siblings like split_zip or rebuild. An agent must infer the workflow position.

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

rebuildRebuild the original from partsA

Rebuild the original from AgentParcel parts (made by this server or by any AgentParcel app). Zip part sets become the original zip (every file verified, size + SHA-256). A byte-split set (folder with _agentparcel_bytes.json, or any file in that folder) becomes the original file, byte for byte. Give the folder, any single part (the others are found next to it), or an explicit list. If parts are missing or corrupt it fails and names exactly which (missing_parts / missing_names / corrupt_parts). AgentParcel-apps.zip is ignored. Output never overwrites. extract=true unpacks a rebuilt zip into a new folder; it does not apply to a byte-split file.

NameRequiredDescriptionDefault
partsYesAbsolute paths: a folder containing the parts, one part, or all parts. A single string is also accepted.
extractNoAlso extract the rebuilt zip into a new folder next to it.
passwordNoPassword for an encrypted byte-split set. Never stored. Omit for zip sets and for plain byte sets.
output_dirNoAbsolute folder for the rebuilt zip (default: next to the parts).
create_output_dirNoCreate output_dir if it does not exist (otherwise that is an error).

Output Schema

NameRequiredDescription
okNo
bytesNo
verifiedNo
output_pathNo

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the verification method (per-file size + SHA-256), the failure contract (names missing_parts / missing_names / corrupt_parts), the AgentParcel-apps.zip exclusion, and that output never overwrites. This is exactly the mutation-adjacent behavior an agent needs and is consistent with destructiveHint=false.

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?

Front-loaded with the core action, then input forms, then failure semantics, then the extract caveat — every sentence carries information. It is dense and terse to the point of reading like notes, but there is no filler.

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

Completeness4/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-value detail is not required, and the description covers inputs, verification, failure naming, and non-overwrite behavior. The one soft spot is what happens on a collision ('never overwrites') — whether that is an error or a renamed output is left implicit.

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?

Schema coverage is 100%, so the baseline is 3; the description adds meaning by clarifying that extract applies only to rebuilt zips and not to byte-split files, and that password is unnecessary for zip/plain sets. It still doesn't elaborate on output_dir behavior beyond what the schema states.

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?

States a specific verb and resource (rebuild the original from AgentParcel parts) and immediately disambiguates the two supported input families: zip part sets and byte-split sets. It is clearly the inverse of the split_* siblings and is distinguishable from verify (which checks without reconstructing).

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

Usage Guidelines4/5

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

It spells out the three acceptable ways to supply parts (folder, any single part, explicit list) and scopes extract to zip sets only, explicitly excluding byte-split files. It doesn't explicitly say when to prefer it over siblings like verify or regenerate_parts, but the context of use is unambiguous.

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

regenerate_partsRe-send only the missing or corrupt partsA
Idempotent

Given the original file and an existing part set, rewrite only the parts that verify reports as missing or corrupt (or the part_numbers you list). Parts that already match are left untouched, so you can upload just the replacements. Works for a byte-split folder and, when a fresh split lands on the same layout, for a zip part set. If the zip layout does not match, nothing is replaced and the error tells you to split the whole zip again. An encrypted byte set needs password. The password is not stored. still_needed names any parts that are still missing or corrupt.

NameRequiredDescriptionDefault
partsYesAbsolute paths: the parts folder, one part, or all parts.
originalYesAbsolute path of the original file that was split.
passwordNoPassword for an encrypted byte set. Not stored and not logged.
part_numbersNoPart numbers to rewrite. Omit to rewrite every missing or corrupt part from verify.

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: matched parts are left untouched, a zip layout mismatch replaces nothing and returns a corrective error, an encrypted set requires a password that is not stored, and still_needed reports residual gaps. That is exactly the destructive-scope and failure-mode detail the destructiveHint=false / idempotentHint=true annotations cannot convey.

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?

Front-loaded with the core behavior and every sentence carries real information – scope, zip caveat, password, return field. The final still_needed sentence feels appended rather than integrated, a minor structural wrinkle in an otherwise tight paragraph.

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

Completeness5/5

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

There is no output schema, so the description must explain returns, and it does (still_needed for remaining gaps, an error message for zip mismatch). Combined with annotations covering write/idempotency and full schema coverage, an agent has everything needed to call this correctly.

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 100%, so all four parameters are already documented (parts as folder/one part/all parts, original, password, part_numbers). The description mainly restates those roles ('or the part_numbers you list', 'An encrypted byte set needs password') without adding format or edge-case guidance beyond them, so the baseline of 3 applies.

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 first sentence names a specific verb ('rewrite') and a precisely scoped resource ('only the parts that verify reports as missing or corrupt'), plus the optional override. That scope cleanly separates it from siblings like split_* (which create parts) and verify (which only reports).

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

Usage Guidelines4/5

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

It states the precondition clearly ('given the original file and an existing part set') and the reason to pick it over a full re-split ('so you can upload just the replacements'). It also covers the failure branch – a mismatched zip layout means a full re-split is required. It never names the sibling tools (verify, split_zip, rebuild), so the routing is implied rather than explicit.

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

split_any_fileSplit any file into exact byte partsA

Byte-level split of ANY file (PDF, video, dataset, CAD, a zip you must not repack, and so on) into numbered raw parts, each <= max_mb / max_bytes. Parts are not zips. Rebuilding concatenates them and checks the original SHA-256. The output folder also contains _agentparcel_bytes.json, HOW-TO-REBUILD.txt, and a dependency-free rebuild.py (Python 3 standard library only) so a receiver can rebuild without AgentParcel. Use split_zip or split_files when you want standalone zip parts.

NameRequiredDescriptionDefault
pathYesAbsolute path of the file to split. Any type.
max_mbNoMax size of each raw part in MiB. Default 19.5. Ignored when preset is a named preset.
presetNoPick the part size from a platform cap. custom (default) uses max_mb/max_bytes. chatgpt-dot: 19,000,000 bytes (under a 20,000,000 byte ChatGPT Dot cap). chat-512: 500,000,000 bytes (under a 512,000,000 byte chat cap; products differ). discord: 24,000,000 bytes for the free 25 MB limit (Nitro is higher and is not this preset). email: 24,000,000 bytes under a common 25 MB attachment cap (other providers differ). github-release: 1,900,000,000 bytes under GitHub's 2 GB release-asset limit. A named preset sets the part size. max_mb is ignored. max_bytes together with a named preset is an error. These limits can change; confirm the current one before a large send.
compressNoCompress each byte part with zlib (level 6) before the size cap. Off by default. python3 rebuild.py in the folder decompresses these parts with the standard library.
passwordNoIf set, encrypt each byte part with AES-256-GCM (scrypt key derivation). Requires the cryptography package (pip install agentparcel[crypto]). Off when omitted. The password is never written to the manifest or the log.
max_bytesNoExact max size of each raw part in bytes. Overrides max_mb. Minimum 1. Do not combine with a named preset.
output_dirNoAbsolute folder to write into. A new sub-folder '<name>_split' (or ' (2)', ' (3)'... if taken) is created inside it. Default: the folder of the input.
include_appsNoAlso write AgentParcel-apps.zip (AgentParcel for Windows, Mac and Linux, about 0.35 MB; not a part) so a human recipient can rebuild.
create_output_dirNoCreate output_dir if it does not exist (otherwise that is an error).

Output Schema

NameRequiredDescription
okNo
partsNo
set_idNo
max_bytesNo
output_dirNo
part_countNo
how_to_rebuildNo

TDQS

A4.8/5.0
Behavior5/5

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

With annotations declaring readOnlyHint=false and destructiveHint=false, the description still adds substantial behavioral context: parts are raw (not zips), the output folder gains _agentparcel_bytes.json, HOW-TO-REBUILD.txt and rebuild.py, and SHA-256 verification occurs on rebuild. It also flags that password encryption requires the cryptography package and that the password is never written to manifest/log — none of which annotations supply.

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?

Front-loads the core purpose ('Byte-level split of ANY file') and the critical properties ('Parts are not zips') before elaborating. Slightly dense with parentheticals and file-name lists, but every clause contributes either scope, output contract, or routing.

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

Completeness5/5

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

Output schema exists, so return values need not be described; the description instead covers the on-disk artifacts a caller must know about (numbered parts, manifest, rebuild script). For a 9-parameter mutation tool with an output schema, the description supplies enough to call and interpret results correctly.

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?

Schema description coverage is 100%, so the baseline is 3; the description adds meaning beyond the schema by explaining the effect of compress (rebuild.py decompresses using stdlib) and the relationship between max_mb/max_bytes and presets in the surrounding prose. It stops short of fully documenting every parameter in the description body, but the schema carries that weight.

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?

States a specific verb+resource ('Byte-level split of ANY file ... into numbered raw parts'), and clarifies what the parts are not ('Parts are not zips'). It explicitly names the sibling tools (split_zip, split_files) and the condition that selects them, so an agent can distinguish it without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit routing: 'Use split_zip or split_files when you want standalone zip parts', and the description of presets says how to pick part sizes per platform cap. The presence of rebuild.py and HOW-TO-REBUILD.txt tells the agent this is the path for recipients who cannot use AgentParcel.

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

split_filesZip files/folders and split into partsA

Use when files or folders that are not a .zip are too big to upload (a big log, video, dataset, project folder, several files). Packs the inputs into <archive_name>.zip (folders keep their structure) and splits it into standalone zip parts <= max_mb, in one step, without writing the full zip anywhere permanent. A single file bigger than a part is cut into .001/.002 pieces inside consecutive parts. Returns every part's absolute path and size. Rebuild with the rebuild tool (extract=true gives the files back as a folder).

NameRequiredDescriptionDefault
pathsYesAbsolute paths of files and/or folders to include.
max_mbNoMax size of each part in MiB (1 MB here = 1,048,576 bytes). Default 19.5. If your upload limit is in decimal MB (e.g. 20 MB = 20,000,000 bytes) pass max_bytes or a smaller max_mb.
presetNoPick the part size from a platform cap. custom (default) uses max_mb/max_bytes. chatgpt-dot: 19,000,000 bytes (under a 20,000,000 byte ChatGPT Dot cap). chat-512: 500,000,000 bytes (under a 512,000,000 byte chat cap; products differ). discord: 24,000,000 bytes for the free 25 MB limit (Nitro is higher and is not this preset). email: 24,000,000 bytes under a common 25 MB attachment cap (other providers differ). github-release: 1,900,000,000 bytes under GitHub's 2 GB release-asset limit. A named preset sets the part size. max_mb is ignored. max_bytes together with a named preset is an error. These limits can change; confirm the current one before a large send.
max_bytesNoExact max size of each part in bytes. Overrides max_mb. Do not combine with a named preset.
output_dirNoAbsolute folder to write into. A new sub-folder '<name>_split' (or ' (2)', ' (3)'... if taken) is created inside it. Default: the folder of the input.
archive_nameNoName for the archive and parts (default: the single input's name, or 'files').
include_appsNoAlso write AgentParcel-apps.zip (AgentParcel for Windows, Mac and Linux, about 0.35 MB; not a part) so a human recipient can rebuild.
unpack_innerNoUnpack zips found inside so their files can be spread over parts and opened directly; rebuild puts the inner zips back (same files, verified).
create_output_dirNoCreate output_dir if it does not exist (otherwise that is an error).

Output Schema

NameRequiredDescription
okNo
partsNo
set_idNo
max_bytesNo
output_dirNo
part_countNo
how_to_rebuildNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (not read-only, non-destructive, non-idempotent, closed-world), so the description's added value is the behavior: no permanent full zip is written, folders keep structure, an oversized single file is cut into .001/.002 pieces inside consecutive parts, and every part's absolute path and size is returned. It could have noted that repeat runs land in numbered '<name>_split (2)' folders, which is idempotency-relevant, but that is covered in the schema.

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?

Front-loaded with the usage trigger, then output shape, then the edge case, then the rebuild path. Four dense sentences with no filler; every clause carries information the agent needs.

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

Completeness5/5

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

For a 9-parameter mutation tool with annotations and an output schema, the description covers the trigger, the archive/parts output contract, single-file splitting, and the recovery tool. Nothing an agent needs to select or invoke it correctly is missing.

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?

Schema coverage is 100%, so a 3 is the baseline. The description still adds meaning by tying archive_name to the '<archive_name>.zip' output naming and by explaining how max_mb interacts with a single oversized file (split into .001/.002 pieces inside consecutive parts), which the per-property text does not spell out.

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?

States a specific verb and resource ('Packs the inputs into <archive_name>.zip ... and splits it into standalone zip parts') and scopes it precisely with 'files or folders that are not a .zip', which cleanly separates it from split_zip and split_any_file. An agent can pick it without opening the schema.

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

Usage Guidelines4/5

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

'Use when files or folders that are not a .zip are too big to upload' gives a concrete trigger, and 'Rebuild with the rebuild tool (extract=true gives the files back as a folder)' points to the reverse operation. The exclusion is expressed as a condition rather than by naming split_zip, so the sibling routing is implied rather than explicit.

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

split_zipSplit a .zip into smaller standalone zipsA

Use when a .zip is too big to upload/attach. Splits it into parts named _part01.zip, _part02.zip ... each <= max_mb, and each a complete, valid zip that opens on its own (files are never cut unless a single file is bigger than a part; such files become .001/.002 pieces). Returns absolute paths and byte sizes of every part: upload all of them. Never overwrites anything. The original can be rebuilt exactly (SHA-256 verified) with the rebuild tool or the AgentParcel apps. For anything that is not a .zip (folders, logs, videos...) use split_files.

NameRequiredDescriptionDefault
pathYesAbsolute path of the .zip to split.
max_mbNoMax size of each part in MiB (1 MB here = 1,048,576 bytes). Default 19.5. If your upload limit is in decimal MB (e.g. 20 MB = 20,000,000 bytes) pass max_bytes or a smaller max_mb.
presetNoPick the part size from a platform cap. custom (default) uses max_mb/max_bytes. chatgpt-dot: 19,000,000 bytes (under a 20,000,000 byte ChatGPT Dot cap). chat-512: 500,000,000 bytes (under a 512,000,000 byte chat cap; products differ). discord: 24,000,000 bytes for the free 25 MB limit (Nitro is higher and is not this preset). email: 24,000,000 bytes under a common 25 MB attachment cap (other providers differ). github-release: 1,900,000,000 bytes under GitHub's 2 GB release-asset limit. A named preset sets the part size. max_mb is ignored. max_bytes together with a named preset is an error. These limits can change; confirm the current one before a large send.
max_bytesNoExact max size of each part in bytes. Overrides max_mb. Do not combine with a named preset.
output_dirNoAbsolute folder to write into. A new sub-folder '<name>_split' (or ' (2)', ' (3)'... if taken) is created inside it. Default: the folder of the input.
include_appsNoAlso write AgentParcel-apps.zip (AgentParcel for Windows, Mac and Linux, about 0.35 MB; not a part) so a human recipient can rebuild.
unpack_innerNoUnpack zips found inside so their files can be spread over parts and opened directly; rebuild puts the inner zips back (same files, verified).
create_output_dirNoCreate output_dir if it does not exist (otherwise that is an error).

Output Schema

NameRequiredDescription
okNo
partsNo
set_idNo
max_bytesNo
output_dirNo
part_countNo
how_to_rebuildNo

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: it guarantees no data loss ('files are never cut unless a single file is bigger than a part'), specifies the naming scheme and the .001/.002 fallback, states 'Never overwrites anything', and describes exact rebuildability via SHA-256 with the rebuild tool. It is consistent with destructiveHint=false and readOnlyHint=false (files are created, nothing is destroyed).

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?

Front-loaded with the trigger, then the output contract, then the rebuild and sibling routing. Every sentence carries distinct information, though the parenthetical about single-large-file .001 pieces and the rebuild note make it denser than strictly needed.

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

Completeness5/5

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

With an output schema and full param coverage, the description still covers what an agent most needs to know: how many files come back, that all must be uploaded, that the original is exactly recoverable, and that nothing is overwritten. No meaningful gap remains for an 8-param tool.

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 100% and the preset enum is documented param-by-param with byte values, so the schema already carries the semantics. The description only reinforces the max_mb-per-part constraint and part naming, adding little beyond structured fields; baseline 3 applies.

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?

States a specific verb and resource ('Splits it into parts named <name>_part01.zip...') and immediately bounds scope by excluding non-zip inputs in favor of split_files. An agent can distinguish it from split_files and split_any_file without opening a schema.

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

Usage Guidelines5/5

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

Gives the triggering condition ('Use when a .zip is too big to upload/attach') and an explicit exclusion with the alternative named ('For anything that is not a .zip ... use split_files'). It also warns the recipient-side requirement ('upload all of them'), which shapes how the caller should proceed.

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

verifyCheck parts before rebuildingA
Read-only

Read-only check before rebuild. Confirms every part is present and each part's checksum matches the manifest. Works for zip part sets (_zipsplitter_manifest.json, and _agentparcel_zipset.json when that sidecar is present) and for byte-split sets (_agentparcel_bytes.json). Does not write a rebuilt file. ok is false when something is wrong; missing_parts, missing_names, and corrupt_parts name exactly which parts. A part that fails its SHA-256 is corrupt, not missing.

NameRequiredDescriptionDefault
partsYesAbsolute paths: the parts folder, one part, or all parts. A single string is also accepted.

Output Schema

NameRequiredDescription
okNo
corrupt_partsNo
missing_namesNo
missing_partsNo
present_partsNo

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the definition adds real behavioral context: it does not write any output file, ok is false when something is wrong, and the missing_parts, missing_names, and corrupt_parts fields name the specific parts. The rule "A part that fails its SHA-256 is corrupt, not missing" resolves an ambiguity in error classification that the schema and annotations cannot express.

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?

Five short sentences, with the purpose first, then the scope exclusions, then the supported formats, then the failure semantics. Every sentence adds information, and none is filler or redundant.

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

Completeness5/5

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

For a tool that verifies multi-part files across formats and has an output schema, this covers the format matrix, the fact that it is read-only, and the structure of the error and partial fields. Nothing an agent needs in order to call it correctly is missing.

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 coverage is 100% and the parts parameter already documents its accepted forms, including the single-string case. The description adds only indirect support through the manifest filenames, without expanding on the path forms. Under those conditions, a baseline 3 applies.

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 opening sentence names the operation and resource ("Confirms every part is present and each part's checksum matches the manifest"), which is a specific statement of intent. The later sentence "Does not write a rebuilt file" cleanly separates this tool from rebuild and from a plain inspect.

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

Usage Guidelines4/5

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

The phrase "Read-only check before rebuild" sets the situation clearly, and the supported manifest formats tell the agent when the tool applies. However, it never points to a sibling by name (inspect, rebuild, regenerate_parts) as an alternative, nor does it state any case where it should not be used.

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. 8 tool updatesv0.1.0
    • First observedinspect
    • First observedmake_apps_bundle
    • First observedrebuild
    • First observedregenerate_parts
    • First observedsplit_any_file
    • First observedsplit_files
    • First observedsplit_zip
    • First observedverify

TDQS

A4.3/5.0

Scored across 8 tools

Disambiguation4/5

The three split tools overlap superficially but have clearly different inputs/outputs: split_zip makes standalone zip parts from .zip, split_files packs non-zip files/folders into zip parts, and split_any_file makes raw byte-split parts. Descriptions make the boundaries workable, though an agent must read carefully to choose among them.

Naming Consistency4/5

All names use snake_case and the split_* family is predictable. The set mixes verb-only names (verify, inspect, rebuild) with verb_noun names (split_zip, regenerate_parts, make_apps_bundle), which is a minor but noticeable inconsistency.

Tool Count5/5

Eight tools is well-scoped for a file-splitting/rebuilding workflow. Each tool covers a distinct stage: split, verify, repair, inspect, rebuild, and provide a desktop helper bundle.

Completeness5/5

The surface covers the full lifecycle: inspect inputs, split zips/files/folders, verify part sets, regenerate missing or corrupt parts, rebuild originals, and create a human-friendly apps bundle. No obvious operational gaps for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to securely transfer files between machines via encrypted, expiring share links, with tools for upload, download, status checks, and link management.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Secure file exchange MCP server enabling AI agents to upload, share, fetch, and revoke files with SHA-256 verification, malware scanning, expiry, access restrictions, and human approval workflows.
    4 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to upload files and folders to a Pshare instance and generate share links, with support for optional password, TTL, and chunked uploads for large files.
    1
    ISC
  • A
    license
    B
    quality
    C
    maintenance
    Provides an FTP-like shared virtual filesystem for AI agents with SHA-256 integrity verification, metadata extraction, and access-hash based channels.
    31
    MIT