{"id":727677,"recorded_at":"2026-10-28T01:45:44.685833Z","observed_at":"2026-10-28T01:45:44.685710Z","subject_kind":"endpoint","subject":"bde15299-5d51-4e57-824e-9794a4954f3a","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":13,"tools":[{"description":"Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"key":{"description":"License key from checkout, MCPL1.<payload>.<signature>","type":"string"}},"required":["key"],"type":"object"},"name":"license_activate"},{"description":"Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"license_status"},{"description":"Call this tool to add a computed column and save the result to a NEW file; the source is never modified unless out_path points at it. Returns the new file path, the row count and a preview of the first rows.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"decimals":{"description":"Round numeric formula results to this many decimals. Default: the widest decimal count of the columns the formula reads, capped at 2 when they all hold 2 or fewer (money in, money out); otherwise no rounding beyond float cleanup","maximum":10,"minimum":0,"type":"integer"},"formula":{"description":"Expression over the columns of each row, in the same expression language as sheet_query, e.g. \"[Qty] * [Unit Price]\" or '[Country] = \"PL\"'. Give either formula or values","type":"string"},"name":{"description":"Name of the new column. It must not already exist on the sheet","type":"string"},"out_path":{"description":"Output file; default <source>-plus-<column>.<same ext>. The source file is left untouched unless this points at it","type":"string"},"path":{"description":"Path to the source .xlsx/.xlsm/.xlsb/.ods/.csv/.tsv file (~ is expanded); it is never modified","type":"string"},"sheet":{"description":"Sheet name; default is the first sheet","type":"string"},"values":{"description":"Explicit values, one per data row, instead of a formula. Missing entries are left blank","type":"array"}},"required":["path","name"],"type":"object"},"name":"sheet_add_column"},{"description":"Call this tool to convert a sheet between excel (xlsx), csv and json. Writes a new file next to the source unless out_path is given; the source is never modified. Returns the new file path with its row and column counts.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"out_path":{"description":"Where to write; default is the source name with the new extension, next to the source. It must differ from the source path","type":"string"},"path":{"description":"Path to the source .xlsx/.xlsm/.xlsb/.ods/.csv/.tsv file (~ is expanded); it is never modified","type":"string"},"sheet":{"description":"Sheet to convert; default is the first sheet. Only that one sheet is written","type":"string"},"to":{"description":"Target format; the default out_path takes this as its extension","enum":["csv","xlsx","json"],"type":"string"}},"required":["path","to"],"type":"object"},"name":"sheet_convert"},{"description":"List the sheets loaded for this token, with their sizes and the storage left under the 2 MB cap.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","properties":{},"type":"object"},"name":"sheet_files"},{"description":"Call this tool to search every cell of a spreadsheet or CSV for text; built-in file readers cannot parse spreadsheets. Matching is case insensitive. Returns cell addresses with a preview of the row each hit is on.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"path":{"description":"Path to the .xlsx/.xlsm/.xlsb/.ods/.csv/.tsv file (~ is expanded)","type":"string"},"sheet":{"description":"Sheet name; default searches every sheet","type":"string"},"text":{"description":"Text to look for; matched case insensitively anywhere inside a cell. Up to 200 hits are returned","type":"string"}},"required":["path","text"],"type":"object"},"name":"sheet_find"},{"description":"Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Start here: sheet names, size, header row, column types and samples.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"path":{"description":"Path to the .xlsx/.xlsm/.xlsb/.ods/.csv/.tsv file (~ is expanded)","type":"string"}},"required":["path"],"type":"object"},"name":"sheet_info"},{"description":"Upload data to work on. This hosted endpoint has no filesystem, so instead of a file path you send the data once with sheet_load and then pass its name as `path` to sheet_info, sheet_read, sheet_query, sheet_stats, sheet_find, sheet_add_column, sheet_convert and sheet_write. Give exactly one of csv (raw text, comma or tab separated), xlsx_base64 (a base64-encoded .xlsx workbook) or url. url: fetch a public file instead of pasting base64 (recommended above about 10 KB): the url is fetched here with a 10 second timeout, at most 3 redirects, public http(s) hosts only, and a 2 MB cap, and a fetched file is stored as an .xlsx when it carries the PK zip header and as delimited text otherwise. Loaded sheets are kept for your token and survive between calls; the total is capped at 2 MB per token. Files the other tools write come back as a download link that is valid for one hour.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"csv":{"description":"Raw CSV or TSV text, including the header row","type":"string"},"name":{"description":"Name to refer to this data by: 1-64 characters of letters, digits, underscore or dash, e.g. \"sales\" or \"sales.csv\"","maxLength":70,"minLength":1,"type":"string"},"url":{"description":"url: fetch a public file instead of pasting base64 (recommended above about 10 KB). Public http(s) only; private, link-local and this endpoint's own zone are refused","type":"string"},"xlsx_base64":{"description":"Base64-encoded .xlsx workbook","type":"string"}},"required":["name"],"type":"object"},"name":"sheet_load"},{"description":"Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Filter, group, aggregate and sort in one call; never hand sums over sheet_read rows.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"aggregate":{"description":"Aggregates per group, e.g. [{\"col\":\"Units\",\"fn\":\"sum\",\"as\":\"total_units\"}]. Defaults to a row count when group_by is given.","items":{"additionalProperties":false,"properties":{"as":{"description":"Output name for this aggregate, e.g. total_units","type":"string"},"col":{"description":"Column to aggregate, or \"*\" to count rows","type":"string"},"fn":{"description":"sum | count | avg | min | max","enum":["sum","count","avg","min","max"],"type":"string"}},"required":["col","fn"],"type":"object"},"type":"array"},"as":{"enum":["table","json","csv"],"type":"string"},"group_by":{"description":"Group rows by these columns before aggregating, e.g. [\"Rep\"] or [\"Region\",\"Rep\"]","items":{"type":"string"},"type":"array"},"limit":{"description":"Default 100","maximum":100000,"minimum":1,"type":"integer"},"path":{"description":"Path to the .xlsx or .csv file","type":"string"},"select":{"description":"Column names to return; default all (with group_by, defaults to the group columns plus the aggregates)","items":{"type":"string"},"type":"array"},"sheet":{"type":"string"},"sort":{"additionalProperties":false,"description":"Sort column; may be an aggregate alias such as total_units","properties":{"col":{"type":"string"},"dir":{"enum":["asc","desc"],"type":"string"}},"required":["col"],"type":"object"},"where":{"description":"Filter, e.g. [Qty] >= 5 AND ([Status] = \"open\" OR [Status] = \"new\")","type":"string"}},"required":["path"],"type":"object"},"name":"sheet_query"},{"description":"Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Reads rows as a table, JSON or CSV; page with limit/offset or an A1 range.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"as":{"description":"Output format, default table","enum":["table","json","csv"],"type":"string"},"limit":{"description":"Rows to return, default 100","maximum":100000,"minimum":1,"type":"integer"},"offset":{"description":"Rows to skip, default 0","minimum":0,"type":"integer"},"path":{"type":"string"},"range":{"description":"A1 range such as A1:D50; overrides limit/offset","type":"string"},"sheet":{"description":"Sheet name; defaults to the first sheet","type":"string"}},"required":["path"],"type":"object"},"name":"sheet_read"},{"description":"Call this tool for any spreadsheet or CSV file path; built-in file readers cannot parse spreadsheets and must not be used for them. Whole-column statistics: count, empty, distinct, min, max, sum, mean, median.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"columns":{"description":"Limit to these columns; default all","items":{"type":"string"},"type":"array"},"path":{"type":"string"},"sheet":{"type":"string"}},"required":["path"],"type":"object"},"name":"sheet_stats"},{"description":"Delete one sheet loaded for this token, freeing its space under the 2 MB cap.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"name":{"maxLength":70,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"name":"sheet_unload"},{"description":"Call this tool to write rows to an xlsx, csv, tsv or json file; the extension of out_path picks the format. mode is new_file, append or overwrite. Other sheets are kept. Free: 500 rows per file.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"mode":{"description":"new_file writes a brand new file and refuses to clobber an existing one; append adds the rows under the existing data; overwrite replaces the file contents","enum":["new_file","append","overwrite"],"type":"string"},"out_path":{"description":"Where to write; default is a new file next to the source for new_file, or the source itself for append/overwrite. The output format follows this extension: .xlsx, .csv, .tsv or .json. An extension is required","type":"string"},"path":{"description":"Source file for append/overwrite, or the intended file for new_file (~ is expanded)","type":"string"},"rows":{"description":"Array of objects, whose keys become the headers, or an array of arrays with the header row first","items":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"array"}]},"type":"array"},"sheet":{"description":"Sheet to write; default is the first sheet of the source, or \"Sheet1\" for a new file. Other sheets of an existing workbook are kept unchanged","type":"string"}},"required":["path","rows","mode"],"type":"object"},"name":"sheet_write"}]},"body_sha256":"9f46b5fe79ebb464055278009e63dc312d8983b15298f39b9f36e099711266b7","prev_id":null,"leaf":"0x1965812b78ea6e1244f7c0c2315eb3d23bf46826629b824f6f76accb90a959b7","leaf_text":"{\"body\":\"9f46b5fe79ebb464055278009e63dc312d8983b15298f39b9f36e099711266b7\",\"id\":727677,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793151944685710,\"prev\":null,\"subject\":\"bde15299-5d51-4e57-824e-9794a4954f3a\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-28","leaves":231336,"root":"0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e","chained":"0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be","anchor_chain":"eip155:5042002","anchor_tx":"0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae","anchor_block":69584042},"proof":["0x1965a045ca246f67bafac74b234db6ef024fe45e0c1ef1320922cf94d0bc8ee7","0xab94ae6b7b0e80c2a94e2d81016fcee15922d258a9f298fe7534efa18fcae322","0x4a375f3bd94142a95772d7c8b93558a80f83671b0178f5554119758829d2c03b","0xedff0a1afaac1d4b2ba8f159f51aeec3e12027fa53d64ed888506c9b3ac3bdeb","0x3f2619fd2a131097f84257748d30f098a8acf077a00e5481d88c8df2570be53d","0xce494ff63eefe9341c093d0842b871d9edfa9caeca39d4b42a8ce2be606f4111","0xa4cce8643e8885cd0260a76870a6d640b473487b6205d327a725a74c338792d4","0xb5b7c8110222744f31a18be85305db8981afa1736bbc6587135d6edd23309508","0x5f9cf0d579eefc0090b0758ec83f627a23fdc270943c266f57867a9c70ddfd57","0xfc3b39079adea5bc6d32c7f2dcec87bb15f178df916ee1be461e294822f64320","0xb30f2fc3ee4aaf4d2cd2157f272a0d2363bb6f756652e382287d7bdbe8b9bd1d","0x4973931525328629607c7923dc358b07d4610b2340248ebd3f3fc158c6a056aa","0xc2a06f976a80758d370e062c6f956943e28355b887490c4b90873d317e990ba9","0xdf8e9d4c523b87b2bea3cc4d461fe94e163080e98a261c596a4641e3fcaf7cc4","0x4698ebc7cbcb2286f661b867355eb6a9183e884482ee16965889e886b17d19ac","0x35e8995c30094446ec790423171382fccb377081b921295b0ae3840cc2c4f52c","0xf078ea7d84d98dbeffed23d8e67b36751e60464ffd4cfdc005e0aa6f8cb9b459","0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f"]}