MCP server (AI agents)
The AT-1 MCP server (mcp_server/) gives any MCP client — Claude Desktop, Cursor, ChatGPT, VS Code, Windsurf — the ability to compress, inspect, query, and verify AT-1 archives. It is a thin, robust wrapper over the tested at1 CLI, so the agent does exactly what the product does, with every codec, the queryable pushdown, and the integrity check inherited unchanged.
Install & run
npm install -g @tinyfiles/cli # the AT-1 CLI (native binary, no Python) — the MCP server is built in at1 mcp # start the MCP stdio server # or run it with no global install: npx @tinyfiles/cli mcp
npm install -g @tinyfiles/cli ships a native binary — no Python — with the MCP server built in, so there is no absolute path to manage: at1 mcp just works.
Tools exposed
| Tool | What it does |
|---|---|
at1_compress(input_path, output_path?, domain="auto", queryable=False) | Verified-lossless compress; queryable=True selects the in-place-queryable qcolumnar codec. Returns codec, sizes, ratio, lossless check. |
at1_info(at1_path) | Codec, schema (rows/columns/types/row-groups), and integrity-trailer status. Use this before querying. |
at1_query(at1_path, sql) | SELECT cols WHERE … over a queryable .at1, reading only the blocks the query touches (zone-map pushdown). Returns rows + I/O stats. |
at1_verify_integrity(at1_path) | Decompress, recompute the embedded SHA-256, confirm the data is byte-for-byte unchanged. |
at1_integration_guide(platform?) | Authoritative, copy-paste integration recipe for duckdb / pandas / postgres / spark / s3 / autotier / url / sdk / images (or the full guide). Gives the agent the real wiring instructions in-context, so it stops guessing. Also an at1://integration-guide resource. |
These are the same compress / info / sql / integrity CLI verbs an agent would otherwise shell out to — surfaced as typed MCP tools so the model can call them directly. Decoding/verification is always free and never needs an account; the encode and query paths are metered against the account whose API key the host process supplies.
Register it — Claude Desktop
Add the server to claude_desktop_config.json (uses the installed command — no paths):
{
"mcpServers": {
"at1": { "command": "at1", "args": ["mcp"] }
}
}Or with npx, nothing installed globally:
{
"mcpServers": {
"at1": { "command": "npx", "args": ["@tinyfiles/cli", "mcp"] }
}
}Register it — Cursor / VS Code / Windsurf
// .cursor/mcp.json (or the editor's MCP settings)
{ "mcpServers": { "at1": { "command": "at1", "args": ["mcp"] } } }Then ask your agent: “Compress this CSV with AT-1 as a queryable archive, then find the rows where c0 is between 100 and 200,” or “Verify this .at1 hasn't been tampered with.”
Integrating into an existing stack? Ask “Use AT-1's integration guide to wire this into DuckDB (or Postgres / pandas / S3),” and the agent calls at1_integration_guide to pull the real, copy-paste recipe in-context — no web search, no guessing, no hallucinated APIs.
Example agent workflow — compress a CSV, then query it in place
# 1. Compress a CSV into a queryable archive (verified byte-exact)
at1_compress(input_path="trades.csv", queryable=True)
# -> codec qcolumnar, trades.at1, in/out sizes, ratio, lossless check
# 2. Inspect it before querying
at1_info(at1_path="trades.at1")
# -> format, codec, schema (rows/columns/types/row-groups), integrity status
# 3. Query WHILE compressed — reads only the blocks the predicate touches
at1_query(at1_path="trades.at1",
sql="SELECT c0,c1 WHERE c0 BETWEEN 100 AND 200 AND c1 >= 42000")
# -> matching rows + I/O stats
# 4. Prove the archive is untampered
at1_verify_integrity(at1_path="trades.at1")
# -> decompress, recompute SHA-256, confirm byte-for-byte unchangedThe query in step 3 never decompresses the whole file: the qcolumnar codec keeps per-row-group zone maps, so the agent reads only the blocks a predicate can't rule out — the archive is searched while it stays compressed and byte-exact.
at1_compress / at1_query tools can target a managed bucket without local setup.Full editor configs and notes: mcp_server/README.md.