Skip to main content
Glama
MASTER246C

AgentParcel MCP Server

by MASTER246C

Split any file into exact byte parts

split_any_file

Splits any file into size-capped numbered raw parts and provides a dependency-free rebuild script that verifies the original SHA-256 after concatenation.

Instructions

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.

Input Schema

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

NameRequiredDescriptionDefault
okNo
partsNo
set_idNo
max_bytesNo
output_dirNo
part_countNo
how_to_rebuildNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

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.