Table-context codec
Compacted data for agents.
tokade turns a table into compact, lossless context for a model. In the prompt it costs far fewer tokens than CSV or JSON. Behind a tool it serves schema, bounded reads, and exact per-column stats straight from the wire.
Encode
One pass, more than twenty schemes.
tokade reads each column and picks the tightest encoding for its shape. This is a 1,000-row slice of Alibaba's public qps.csv trace, the kind of GenAI request log an agent gets asked about.
Wire formatqps.csv · 1,000 rows
timestamp_anon,request_type,value 1662859176.0,API Requests,0.09000000000000001 1662859233.0,API Requests,0.09000000000000001 1662859404.0,Generative Requests,0.09000000000000001 1662859461.0,Generative Requests,0.09000000000000001 1662859461.0,API Requests,0.09000000000000001 1662859575.0,Generative Requests,0.09000000000000001 1662859689.0,API Requests,0.09000000000000001 1662859746.0,API Requests,0.18000000000000002 1662859803.0,API Requests,0.18000000000000002 1662859860.0,API Requests,0.18000000000000002 1662859917.0,Generative Requests,0.09000000000000001 tokade wire
t=table n=1000 timestamp_anon|s|d1:B:E…;L:1*3,2,1*11,2*4,1,3*3,2,1*3,2*3,1,4,6*2,13,9,5,3,… request_type|s|B:…;M:118;API,Generative;R:2,2,4,4,2,2,4,2,3,2,3,8,10,8,5,2,2,… value|s|S:1000;0.09000000000000001;Y:0.18000000000000002,0.63,0.36,0.27,1.69,…
Behind a tool
One tool, in any MCP server.
Bind the wire server-side and expose tokade_table. The model asks for the exact cell, row, or column, and the server decodes just that from the wire, without reparsing the CSV.
tokade isn't a database, a Parquet scanner, or a query engine. Filters, joins, and group-by belong there. tokade encodes what you send and gives the model bounded reads and exact stats.
import { encodeCSV } from "tokade"
import { tokade_table, tokadeMcpTools } from "tokade-mcp"
// your query already filtered and limited this
const { wire } = encodeCSV(csv)
// drop wire so the model sends selectors only;
// the table never reaches the model's context
const { wire: _w, ...props } = tokadeMcpTools[0].inputSchema.properties
const selectorSchema = { ...tokadeMcpTools[0].inputSchema, properties: props, required: ["action"] }
// bind the wire server-side
mcp.addTool("tokade_table", selectorSchema, (args) =>
tokade_table({ ...args, wire })) tokade_table → describe · preview · cell · row · column · project
Spec-first