{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_8yzcpp53ean3","handle":"archive-container-reader-converter-runner","url":"https://wellknown.network/agents/archive-container-reader-converter-runner","links":{"self":"https://wellknown.network/agents/archive-container-reader-converter-runner/record.json","html":"https://wellknown.network/agents/archive-container-reader-converter-runner","markdown":"https://wellknown.network/agents/archive-container-reader-converter-runner/record.md","api":"https://wellknown.network/api/v1/agents/archive-container-reader-converter-runner","status":"https://wellknown.network/api/v1/agents/archive-container-reader-converter-runner/status","claim":"https://wellknown.network/agents/archive-container-reader-converter-runner/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/archive-container-reader-converter-runner/claim.json","badge":"https://wellknown.network/agents/archive-container-reader-converter-runner/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/archive-container-reader-converter-runner/history","tools":"https://wellknown.network/api/v1/agents/archive-container-reader-converter-runner/tools"},"ard":{"identifier":"urn:air:runner.stealthstack.ai:server:archive-container-reader-converter-runner","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Archive Container Reader & Converter (runner)","summary":"Runner twin of the 'archives' skill — the same tools executed server-side (no local setup). Tools: archives_extract_all, archives_extract_member, archives_list.","description":"Runner twin of the 'archives' skill — the same tools executed server-side (no local setup). Tools: archives_extract_all, archives_extract_member, archives_list.","publisher":{"name":"www.stealthstack.ai","url":"https://www.stealthstack.ai"},"homepage":"https://www.stealthstack.ai/","repository":null,"version":null,"license":null,"protocols":["mcp"],"tags":["archive","zip","tar","gzip","7z","extraction","compression","conversion","data","arrow","feather","columnar","csv","json","converter","extractor","avro","schema","dbf","dbase","foxpro","gis","legacy","document","word","doc","ole","cfb","convert","extract","eml","email","rfc822","mime","epub","ebook","text-extraction","geospatial","geojson","reader"],"pricing":null,"endpoints":[{"url":"https://runner.stealthstack.ai/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":["archives_extract_all","archives_extract_member","archives_list","arrow_read","arrow_schema","arrow_to_csv","arrow_to_json","avro_sample","avro_schema","avro_to_csv","avro_to_json","avro_to_jsonl","dbf_schema","dbf_to_csv","dbf_to_json","dbf_to_text","doc_to_csv","doc_to_json","doc_to_text","eml_extract_attachments","eml_read","eml_to_csv","eml_to_json","epub_summary","epub_to_csv","epub_to_json","epub_to_text","geojson_summary","geojson_to_csv","geojson_to_json","gpx_summarize","gpx_to_csv","gpx_to_geojson","gpx_to_json","hcl_blocks","hcl_resources","hcl_to_csv","hcl_to_json","hdf5_to_csv","hdf5_to_json","hdf5_tree","ical_merge","ical_to_csv","ical_to_json","ical_to_text","image-ocr_extract_text","image-ocr_extract_to_csv","image-ocr_extract_to_json","ipynb_read","ipynb_strip_outputs","kml_summary","kml_to_csv","kml_to_geojson","kml_to_json","mbox_split","mbox_to_csv","mbox_to_json","mbox_to_text","msg_to_csv","msg_to_json","msg_to_text","odp_to_json","odp_to_text","ods_list_sheets","ods_to_csv","ods_to_json","odt_read","odt_to_csv","odt_to_json","orc_sample","orc_schema","orc_to_csv","orc_to_json","parquet_sample","parquet_schema","parquet_to_csv","parquet_to_json","plist_convert","plist_read","reg_read","reg_to_csv","reg_to_json","rtf_to_json","rtf_to_markdown","rtf_to_text","shapefile_summary","shapefile_to_csv","shapefile_to_geojson","shapefile_to_ndjson","sqlite_query","sqlite_read","sqlite_schema_diff","vcard_to_csv","vcard_to_json","vcard_to_text","xls_list_sheets","xls_to_csv","xls_to_json"],"extra":{"ard":{"type":"application/mcp-server-card+json","metadata":null,"identifier":"urn:air:stealthstack.ai:mcp:archives","artifactUrl":"https://runner.stealthstack.ai/.well-known/mcp/cards/archives.json","representativeQueries":["extract everything from a zip or tar archive","pull a single file out of a zip or tar archive","list what's inside a zip or tar archive","process a zip or tar archive server-side without installing anything"]}},"attribution":{"kind":"ard_catalog","name":"ard_catalog","summary":"ard_catalog","description":"ard_catalog","homepageUrl":"ard_catalog","publisherUrl":"ard_catalog","publisherName":"ard_catalog"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"documents.ocr","name":"OCR","confidence":1,"provenance":"derived"},{"slug":"documents.conversion","name":"Document Conversion","confidence":1,"provenance":"declared"},{"slug":"documents.spreadsheets","name":"Spreadsheets","confidence":1,"provenance":"declared"},{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":1,"provenance":"derived"},{"slug":"productivity.email","name":"Email","confidence":1,"provenance":"declared"},{"slug":"documents.extraction","name":"Data Extraction","confidence":1,"provenance":"declared"}],"categories":["content","data","dev","documents","productivity"],"language":"en"},"observed":{"status":"unavailable","statusReason":"8 consecutive checks failed; never seen responding (latest 27h ago).","lastOkAt":null,"lastProbedAt":"2026-10-28T21:31:29.657Z","statusComputedAt":"2026-10-28T21:33:59.641Z","reliability30d":{"probes":6,"successRate":0,"p50Ms":null,"basis":"none","measures":{"availability":"availability","latency":"response time","tools":"not observed","summary":"No successful checks in the window."},"checks":{"total":6,"ok":0,"authBoundaryOk":0,"serviceOk":0,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-28T21:31:29.657Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-10-21T05:24:16.126Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-10-14T12:30:27.687Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-10-06T20:27:37.207Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-10-02T21:24:52.206Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-09-30T17:30:38.107Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-09-29T18:25:44.133Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-09-29T04:24:49.937Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-09-28T21:20:56.926Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":2043,"error":null,"detail":{"tools":[{"name":"archives_extract_all","description":"Extract all members from an archive (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z) to a destination directory on disk. Returns the paths of extracted "},{"name":"archives_extract_member","description":"Extract a single named member from an archive (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z) and return its content as text. Binary content is decoded"},{"name":"archives_list","description":"List the contents of an archive file (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z). Returns a table or JSON array of members with name, size, compres"},{"name":"arrow_read","description":"Read an Apache Arrow or Feather file and display a human-readable preview: schema summary and first N rows as a formatted text table."},{"name":"arrow_schema","description":"Print the schema of an Apache Arrow or Feather file: column names, Arrow types, and nullable flags."},{"name":"arrow_to_csv","description":"Convert an Apache Arrow or Feather file to CSV (one row per record; nested types JSON-serialized)."},{"name":"arrow_to_json","description":"Convert an Apache Arrow or Feather file to a JSON array of objects (one object per row)."},{"name":"avro_sample","description":"Return the first N records from an Avro file as a pretty-printed JSON array (default 10)."},{"name":"avro_schema","description":"Extract and pretty-print the embedded writer schema from an Avro file as JSON."},{"name":"avro_to_csv","description":"Convert an Avro file to RFC 4180 CSV. Nested fields are serialised as JSON strings. Optionally limit rows or supply a reader schema for field projection."},{"name":"avro_to_json","description":"Convert an Avro file to a pretty-printed JSON array. Optionally limit rows or supply a reader schema for field projection."},{"name":"avro_to_jsonl","description":"Convert an Avro file to newline-delimited JSON (one record per line). Optionally limit rows or supply a reader schema for field projection."},{"name":"dbf_schema","description":"Print the field definitions and file header of a dBase .dbf file: version, record count, encoding, and a table of field names, types, lengths, and decimal count"},{"name":"dbf_to_csv","description":"Convert a dBase .dbf file to RFC 4180 CSV text (header row of field names, one data row per record)."},{"name":"dbf_to_json","description":"Convert a dBase .dbf file to a JSON array of objects (one object per record, keyed by field name; dates as ISO-8601 strings)."},{"name":"dbf_to_text","description":"Read a dBase .dbf file and return a human-readable text summary: header info, field schema, and record values."},{"name":"doc_to_csv","description":"Extract text from a legacy Word .doc file and return it as CSV (columns: paragraph_index, text; UTF-8, LF line endings)."},{"name":"doc_to_json","description":"Extract text and OLE metadata from a legacy Word .doc file. Returns a JSON object: {\"paragraphs\": [...], \"metadata\": {...}} with author, title, and timestamps w"},{"name":"doc_to_text","description":"Extract text from a legacy Word .doc (OLE/CFB binary) file and return it as plain text, one paragraph per line."},{"name":"eml_extract_attachments","description":"Extract attachment files from an EML to a destination directory and return a summary of the saved paths."},{"name":"eml_read","description":"Read an EML (RFC 822) email file and return decoded body text with a header summary (From, To, Subject, Date) and an attachment list."},{"name":"eml_to_csv","description":"Parse an EML file and return a CSV row with key header fields (from, to, cc, subject, date, message_id, body_text, attachment_count)."},{"name":"eml_to_json","description":"Parse an EML file and return a JSON object containing all decoded headers, plain-text body, HTML body, and attachment metadata (filename, content-type, size)."},{"name":"epub_summary","description":"Summarize an EPUB e-book: metadata (title, creator, language, publisher, date, identifier) and a chapter list with word counts."},{"name":"epub_to_csv","description":"Convert an EPUB e-book to CSV. One row per chapter with columns: index, title, word_count, text."},{"name":"epub_to_json","description":"Convert an EPUB e-book to JSON. Returns {\"metadata\": {...}, \"chapters\": [...]} where each chapter has index, title, and text fields."},{"name":"epub_to_text","description":"Convert an EPUB e-book to plain text. Chapters are extracted in spine order and separated by '--- Chapter Title ---' headers."},{"name":"geojson_summary","description":"Summarize a GeoJSON file: feature count, geometry types, property keys, bounding box, and the first N features."},{"name":"geojson_to_csv","description":"Flatten a GeoJSON file's features to CSV (one row per feature; properties as columns + a geometry column)."},{"name":"geojson_to_json","description":"Validate and pretty-print a GeoJSON file as JSON."},{"name":"gpx_summarize","description":"Summarize a GPX file: track count, segment count, total track points, waypoint count, route count, elevation range, time span, and first N points."},{"name":"gpx_to_csv","description":"Convert a GPX file to CSV. data_type='tracks' (default): one row per track point with track_name, segment_index, point_index, lat, lon, ele, time. data_type='wa"},{"name":"gpx_to_geojson","description":"Convert a GPX file to a GeoJSON FeatureCollection. Track segments become LineString features, waypoints become Point features, and routes become LineString feat"},{"name":"gpx_to_json","description":"Convert a GPX file to a structured JSON object with tracks, waypoints, and routes arrays."},{"name":"hcl_blocks","description":"Summarize the top-level block types and their labels in an HCL/Terraform file or directory. Returns a newline-separated list of 'block_type: [label, ...]' lines"},{"name":"hcl_resources","description":"List all resource and data block identifiers in an HCL/Terraform file or directory. Returns one 'resource_type.name' (or 'data.resource_type.name') identifier p"},{"name":"hcl_to_csv","description":"Export resource and data blocks from an HCL/Terraform file or directory as CSV. Columns: block_type, resource_type, name. One row per resource/data block."},{"name":"hcl_to_json","description":"Parse an HCL/Terraform file or directory and return the full configuration as pretty-printed JSON. Strips internal python-hcl2 metadata and extra quote-wrapping"},{"name":"hdf5_to_csv","description":"Convert HDF5 datasets to CSV. Each dataset is preceded by a '# dataset: <path>' comment line. Compound datasets use field names as column headers; numeric array"},{"name":"hdf5_to_json","description":"Convert HDF5 datasets to JSON. With 'dataset': returns a JSON array of row-objects for that dataset (or a JSON object of arrays if the path is a group). Without"},{"name":"hdf5_tree","description":"Inspect an HDF5 file: print a human-readable tree of all groups and datasets with their shapes, dtypes, attributes, and sample values."},{"name":"ical_merge","description":"Merge multiple iCalendar (.ics) files into a single VCALENDAR. When dedup is true (default), VEVENTs with duplicate UIDs are collapsed to the first occurrence. "},{"name":"ical_to_csv","description":"Convert an iCalendar (.ics) file to CSV — one row per VEVENT. Columns: uid, summary, dtstart, dtend, location, description, organizer, attendees (semicolon-sepa"},{"name":"ical_to_json","description":"Parse an iCalendar (.ics) file and return a JSON array of all calendar components (VEVENT, VTODO, VJOURNAL, etc.) with structured fields: uid, summary, dtstart,"},{"name":"ical_to_text","description":"Read an iCalendar (.ics) file and return a human-readable summary of its events — one block per VEVENT with summary, start/end, location, organizer, attendees, "},{"name":"image-ocr_extract_text","description":"Extract layout-preserving plain text from an image file (.png, .jpg, .tiff) using Tesseract OCR. Multi-page TIFFs are supported; each page's text is separated b"},{"name":"image-ocr_extract_to_csv","description":"Extract word-level OCR data from an image file as CSV. Columns: page, word, conf, left, top, width, height. Suitable for importing into spreadsheets or data pip"},{"name":"image-ocr_extract_to_json","description":"Extract word-level OCR data from an image file as a JSON array. Each element contains page number, word text, confidence score, and bounding box coordinates (le"},{"name":"ipynb_read","description":"Read and render a Jupyter notebook (.ipynb) file. Supports three output formats: 'text' (human-readable with cell headers and outputs), 'markdown' (markdown cel"},{"name":"ipynb_strip_outputs","description":"Return a Jupyter notebook (.ipynb) as JSON with all code cell outputs and execution counts cleared. Useful for producing a clean, reproducible copy of a noteboo"},{"name":"kml_summary","description":"Summarize a KML or KMZ file: placemark count, geometry types, ExtendedData keys, and the first N placemarks."},{"name":"kml_to_csv","description":"Flatten KML/KMZ placemarks to CSV (one row per placemark; columns: name, description, geometry_type, first_coordinate, plus all ExtendedData keys)."},{"name":"kml_to_geojson","description":"Convert KML/KMZ placemarks to a GeoJSON FeatureCollection. Each Placemark becomes a Feature with Point, LineString, Polygon, or GeometryCollection geometry. Wor"},{"name":"kml_to_json","description":"Convert KML/KMZ placemarks to a JSON array. Each object has name, description, geometry (with type and coordinates), and attributes (ExtendedData key/value dict"},{"name":"mbox_split","description":"Split an mbox file into individual .eml files, one per message, written as 00000.eml, 00001.eml, … into the specified output directory. Returns a manifest with "},{"name":"mbox_to_csv","description":"Read an mbox mailbox file and return RFC 4180 CSV with a header row. Columns: from, to, date, subject, message_id, labels, body."},{"name":"mbox_to_json","description":"Read an mbox mailbox file and return newline-delimited JSON — one JSON object per line with fields: from, to, date, subject, body, message_id, labels."},{"name":"mbox_to_text","description":"Read an mbox mailbox file and return a human-readable block per message, with From, To, Date, Subject, optional Labels/Message-ID, and body."},{"name":"msg_to_csv","description":"Read an Outlook .msg file and return a CSV string (header row + one data row) with columns: from, to, cc, subject, date, message_id, body_text, attachment_count"},{"name":"msg_to_json","description":"Read an Outlook .msg file and return its full content as pretty-printed JSON with keys: headers (from, to, cc, bcc, subject, date, message_id, message_class), b"},{"name":"msg_to_text","description":"Read an Outlook .msg file and return the email as plain text: a header summary block (From, To, Cc, Subject, Date) followed by the decoded body. HTML body is st"},{"name":"odp_to_json","description":"Extract text and speaker notes from an .odp OpenDocument Presentation file and return a JSON array, one object per slide: {\"slide\": N, \"title\": \"...\", \"body\": ["},{"name":"odp_to_text","description":"Extract text and speaker notes from an .odp OpenDocument Presentation file and return a human-readable dump with === Slide N === headers."},{"name":"ods_list_sheets","description":"List all sheet names in an ODS file, one per line."},{"name":"ods_to_csv","description":"Convert a sheet in an ODS file to CSV. Returns comma-separated rows. Optionally include raw formula expressions as extra columns."},{"name":"ods_to_json","description":"Convert a sheet in an ODS file to JSON. By default treats the first row as column headers and returns an array of objects. Set has_header=false to return an arr"},{"name":"odt_read","description":"Extract the full body of an OpenDocument Text (.odt) file as plain text. Headings are prefixed with # markers; list items are prefixed with -."},{"name":"odt_to_csv","description":"Extract the first table from an OpenDocument Text (.odt) file and return it as CSV. Raises an error if the document contains no tables."},{"name":"odt_to_json","description":"Parse an OpenDocument Text (.odt) file and return a JSON object with three keys: 'meta' (document metadata), 'body' (list of paragraph/heading objects), and 'ta"},{"name":"orc_sample","description":"Preview the first N rows of an Apache ORC file as a JSON array (default 10 rows)."},{"name":"orc_schema","description":"Inspect the schema of an Apache ORC file: print column names and their Arrow/ORC types."},{"name":"orc_to_csv","description":"Convert an Apache ORC file to RFC 4180 CSV. Returns CSV text with a header row."},{"name":"orc_to_json","description":"Convert an Apache ORC file to a JSON array. Returns all rows (or up to `rows`) as JSON."},{"name":"parquet_sample","description":"Return the first N rows of a Parquet file as a JSON array."},{"name":"parquet_schema","description":"Inspect a Parquet file's schema: return all column names and their Arrow/Parquet types."},{"name":"parquet_to_csv","description":"Convert a Parquet file to RFC 4180 CSV, returning the CSV as a string."},{"name":"parquet_to_json","description":"Convert a Parquet file to a JSON array string."},{"name":"plist_convert","description":"Convert an Apple plist file to a different serialization format. to='json' returns JSON text; to='xml' returns XML plist text; to='binary' writes a binary bplis"},{"name":"plist_read","description":"Read an Apple property list (.plist) file and return its contents as formatted text, JSON, or CSV. Optionally drill into a nested key path using dotted notation"},{"name":"reg_read","description":"Read a Windows registry export (.reg) file and return a human-readable text summary: key paths, value names, types, and decoded data."},{"name":"reg_to_csv","description":"Convert a Windows registry export (.reg) file to CSV with columns: key, key_deleted, value_name, type, data — one row per registry value."},{"name":"reg_to_json","description":"Convert a Windows registry export (.reg) file to JSON: a flat object keyed by registry key path, each with a 'deleted' flag and a 'values' array ({name, type, d"},{"name":"rtf_to_json","description":"Parse an RTF file and return a JSON object containing filename, format, any embedded metadata (title, author, subject, keywords), the full plain text, and an ar"},{"name":"rtf_to_markdown","description":"Convert an RTF file to Markdown. Headings (detected from \\sN style markers or \\outlinelevel) become ATX headings; bold and italic spans are preserved as ** and "},{"name":"rtf_to_text","description":"Extract plain text from an RTF file, stripping all RTF control sequences and formatting."},{"name":"shapefile_summary","description":"Summarize a Shapefile (.shp) or GeoPackage (.gpkg) layer: driver, CRS, geometry type, field schema, feature count, and the first N features."},{"name":"shapefile_to_csv","description":"Flatten a Shapefile (.shp) or GeoPackage (.gpkg) layer to CSV — one row per feature; attribute columns plus a WKT geometry column."},{"name":"shapefile_to_geojson","description":"Convert a Shapefile (.shp) or GeoPackage (.gpkg) layer to a GeoJSON FeatureCollection string."},{"name":"shapefile_to_ndjson","description":"Convert a Shapefile (.shp) or GeoPackage (.gpkg) layer to newline-delimited JSON (one GeoJSON Feature object per line)."},{"name":"sqlite_query","description":"Execute a read-only SELECT query against a SQLite database and return results as text, CSV, or JSON. Only SELECT and WITH...SELECT statements are permitted."},{"name":"sqlite_read","description":"Read a SQLite database and return its contents as text (default), CSV, or JSON. Shows schema and row samples for all tables, or a single table if specified."},{"name":"sqlite_schema_diff","description":"Compare the schemas of two SQLite databases and return a readable diff. Reports tables/views added, removed, or changed (column additions, removals, type change"},{"name":"vcard_to_csv","description":"Convert a vCard (.vcf) file to CSV (one row per contact; columns: full_name, first_name, last_name, organization, title, phones, emails, addresses, birthday, ur"},{"name":"vcard_to_json","description":"Parse a vCard (.vcf) file and return a JSON array of contact objects. Each object has keys: full_name, first_name, last_name, organization, title, phones, email"},{"name":"vcard_to_text","description":"Read a vCard (.vcf) file and return a human-readable text summary with one block per contact showing name, phones, emails, addresses, organization, title, birth"},{"name":"xls_list_sheets","description":"List the sheet names (and visibility) in a legacy .xls workbook. Returns one line per sheet: '<index>: <name>' with optional [hidden] or [very-hidden] tags."},{"name":"xls_to_csv","description":"Convert a legacy .xls workbook to CSV text. All sheets are included by default (each preceded by a '# Sheet: <name>' comment line when multiple sheets are prese"},{"name":"xls_to_json","description":"Convert a legacy .xls workbook to a JSON array of sheet objects. Each element has 'sheet' (name), 'rows' (array of arrays), and optionally 'hidden' for non-visi"}],"toolCount":98,"toolsHash":"17d092d5e54e079576ae9e4c41e0af289f521d235644b3091ebea3b391e30a01","serverName":"stealthstack-file-formats","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2024-11-05"}},{"at":"2026-09-28T15:26:46.318Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":353,"error":null,"detail":{"tools":[{"name":"archives_extract_all","description":"Extract all members from an archive (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z) to a destination directory on disk. Returns the paths of extracted "},{"name":"archives_extract_member","description":"Extract a single named member from an archive (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z) and return its content as text. Binary content is decoded"},{"name":"archives_list","description":"List the contents of an archive file (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z). Returns a table or JSON array of members with name, size, compres"},{"name":"arrow_read","description":"Read an Apache Arrow or Feather file and display a human-readable preview: schema summary and first N rows as a formatted text table."},{"name":"arrow_schema","description":"Print the schema of an Apache Arrow or Feather file: column names, Arrow types, and nullable flags."},{"name":"arrow_to_csv","description":"Convert an Apache Arrow or Feather file to CSV (one row per record; nested types JSON-serialized)."},{"name":"arrow_to_json","description":"Convert an Apache Arrow or Feather file to a JSON array of objects (one object per row)."},{"name":"avro_sample","description":"Return the first N records from an Avro file as a pretty-printed JSON array (default 10)."},{"name":"avro_schema","description":"Extract and pretty-print the embedded writer schema from an Avro file as JSON."},{"name":"avro_to_csv","description":"Convert an Avro file to RFC 4180 CSV. Nested fields are serialised as JSON strings. Optionally limit rows or supply a reader schema for field projection."},{"name":"avro_to_json","description":"Convert an Avro file to a pretty-printed JSON array. Optionally limit rows or supply a reader schema for field projection."},{"name":"avro_to_jsonl","description":"Convert an Avro file to newline-delimited JSON (one record per line). Optionally limit rows or supply a reader schema for field projection."},{"name":"dbf_schema","description":"Print the field definitions and file header of a dBase .dbf file: version, record count, encoding, and a table of field names, types, lengths, and decimal count"},{"name":"dbf_to_csv","description":"Convert a dBase .dbf file to RFC 4180 CSV text (header row of field names, one data row per record)."},{"name":"dbf_to_json","description":"Convert a dBase .dbf file to a JSON array of objects (one object per record, keyed by field name; dates as ISO-8601 strings)."},{"name":"dbf_to_text","description":"Read a dBase .dbf file and return a human-readable text summary: header info, field schema, and record values."},{"name":"doc_to_csv","description":"Extract text from a legacy Word .doc file and return it as CSV (columns: paragraph_index, text; UTF-8, LF line endings)."},{"name":"doc_to_json","description":"Extract text and OLE metadata from a legacy Word .doc file. Returns a JSON object: {\"paragraphs\": [...], \"metadata\": {...}} with author, title, and timestamps w"},{"name":"doc_to_text","description":"Extract text from a legacy Word .doc (OLE/CFB binary) file and return it as plain text, one paragraph per line."},{"name":"eml_extract_attachments","description":"Extract attachment files from an EML to a destination directory and return a summary of the saved paths."},{"name":"eml_read","description":"Read an EML (RFC 822) email file and return decoded body text with a header summary (From, To, Subject, Date) and an attachment list."},{"name":"eml_to_csv","description":"Parse an EML file and return a CSV row with key header fields (from, to, cc, subject, date, message_id, body_text, attachment_count)."},{"name":"eml_to_json","description":"Parse an EML file and return a JSON object containing all decoded headers, plain-text body, HTML body, and attachment metadata (filename, content-type, size)."},{"name":"epub_summary","description":"Summarize an EPUB e-book: metadata (title, creator, language, publisher, date, identifier) and a chapter list with word counts."},{"name":"epub_to_csv","description":"Convert an EPUB e-book to CSV. One row per chapter with columns: index, title, word_count, text."},{"name":"epub_to_json","description":"Convert an EPUB e-book to JSON. Returns {\"metadata\": {...}, \"chapters\": [...]} where each chapter has index, title, and text fields."},{"name":"epub_to_text","description":"Convert an EPUB e-book to plain text. Chapters are extracted in spine order and separated by '--- Chapter Title ---' headers."},{"name":"geojson_summary","description":"Summarize a GeoJSON file: feature count, geometry types, property keys, bounding box, and the first N features."},{"name":"geojson_to_csv","description":"Flatten a GeoJSON file's features to CSV (one row per feature; properties as columns + a geometry column)."},{"name":"geojson_to_json","description":"Validate and pretty-print a GeoJSON file as JSON."},{"name":"gpx_summarize","description":"Summarize a GPX file: track count, segment count, total track points, waypoint count, route count, elevation range, time span, and first N points."},{"name":"gpx_to_csv","description":"Convert a GPX file to CSV. data_type='tracks' (default): one row per track point with track_name, segment_index, point_index, lat, lon, ele, time. data_type='wa"},{"name":"gpx_to_geojson","description":"Convert a GPX file to a GeoJSON FeatureCollection. Track segments become LineString features, waypoints become Point features, and routes become LineString feat"},{"name":"gpx_to_json","description":"Convert a GPX file to a structured JSON object with tracks, waypoints, and routes arrays."},{"name":"hcl_blocks","description":"Summarize the top-level block types and their labels in an HCL/Terraform file or directory. Returns a newline-separated list of 'block_type: [label, ...]' lines"},{"name":"hcl_resources","description":"List all resource and data block identifiers in an HCL/Terraform file or directory. Returns one 'resource_type.name' (or 'data.resource_type.name') identifier p"},{"name":"hcl_to_csv","description":"Export resource and data blocks from an HCL/Terraform file or directory as CSV. Columns: block_type, resource_type, name. One row per resource/data block."},{"name":"hcl_to_json","description":"Parse an HCL/Terraform file or directory and return the full configuration as pretty-printed JSON. Strips internal python-hcl2 metadata and extra quote-wrapping"},{"name":"hdf5_to_csv","description":"Convert HDF5 datasets to CSV. Each dataset is preceded by a '# dataset: <path>' comment line. Compound datasets use field names as column headers; numeric array"},{"name":"hdf5_to_json","description":"Convert HDF5 datasets to JSON. With 'dataset': returns a JSON array of row-objects for that dataset (or a JSON object of arrays if the path is a group). Without"},{"name":"hdf5_tree","description":"Inspect an HDF5 file: print a human-readable tree of all groups and datasets with their shapes, dtypes, attributes, and sample values."},{"name":"ical_merge","description":"Merge multiple iCalendar (.ics) files into a single VCALENDAR. When dedup is true (default), VEVENTs with duplicate UIDs are collapsed to the first occurrence. "},{"name":"ical_to_csv","description":"Convert an iCalendar (.ics) file to CSV — one row per VEVENT. Columns: uid, summary, dtstart, dtend, location, description, organizer, attendees (semicolon-sepa"},{"name":"ical_to_json","description":"Parse an iCalendar (.ics) file and return a JSON array of all calendar components (VEVENT, VTODO, VJOURNAL, etc.) with structured fields: uid, summary, dtstart,"},{"name":"ical_to_text","description":"Read an iCalendar (.ics) file and return a human-readable summary of its events — one block per VEVENT with summary, start/end, location, organizer, attendees, "},{"name":"image-ocr_extract_text","description":"Extract layout-preserving plain text from an image file (.png, .jpg, .tiff) using Tesseract OCR. Multi-page TIFFs are supported; each page's text is separated b"},{"name":"image-ocr_extract_to_csv","description":"Extract word-level OCR data from an image file as CSV. Columns: page, word, conf, left, top, width, height. Suitable for importing into spreadsheets or data pip"},{"name":"image-ocr_extract_to_json","description":"Extract word-level OCR data from an image file as a JSON array. Each element contains page number, word text, confidence score, and bounding box coordinates (le"},{"name":"ipynb_read","description":"Read and render a Jupyter notebook (.ipynb) file. Supports three output formats: 'text' (human-readable with cell headers and outputs), 'markdown' (markdown cel"},{"name":"ipynb_strip_outputs","description":"Return a Jupyter notebook (.ipynb) as JSON with all code cell outputs and execution counts cleared. Useful for producing a clean, reproducible copy of a noteboo"},{"name":"kml_summary","description":"Summarize a KML or KMZ file: placemark count, geometry types, ExtendedData keys, and the first N placemarks."},{"name":"kml_to_csv","description":"Flatten KML/KMZ placemarks to CSV (one row per placemark; columns: name, description, geometry_type, first_coordinate, plus all ExtendedData keys)."},{"name":"kml_to_geojson","description":"Convert KML/KMZ placemarks to a GeoJSON FeatureCollection. Each Placemark becomes a Feature with Point, LineString, Polygon, or GeometryCollection geometry. Wor"},{"name":"kml_to_json","description":"Convert KML/KMZ placemarks to a JSON array. Each object has name, description, geometry (with type and coordinates), and attributes (ExtendedData key/value dict"},{"name":"mbox_split","description":"Split an mbox file into individual .eml files, one per message, written as 00000.eml, 00001.eml, … into the specified output directory. Returns a manifest with "},{"name":"mbox_to_csv","description":"Read an mbox mailbox file and return RFC 4180 CSV with a header row. Columns: from, to, date, subject, message_id, labels, body."},{"name":"mbox_to_json","description":"Read an mbox mailbox file and return newline-delimited JSON — one JSON object per line with fields: from, to, date, subject, body, message_id, labels."},{"name":"mbox_to_text","description":"Read an mbox mailbox file and return a human-readable block per message, with From, To, Date, Subject, optional Labels/Message-ID, and body."},{"name":"msg_to_csv","description":"Read an Outlook .msg file and return a CSV string (header row + one data row) with columns: from, to, cc, subject, date, message_id, body_text, attachment_count"},{"name":"msg_to_json","description":"Read an Outlook .msg file and return its full content as pretty-printed JSON with keys: headers (from, to, cc, bcc, subject, date, message_id, message_class), b"},{"name":"msg_to_text","description":"Read an Outlook .msg file and return the email as plain text: a header summary block (From, To, Cc, Subject, Date) followed by the decoded body. HTML body is st"},{"name":"odp_to_json","description":"Extract text and speaker notes from an .odp OpenDocument Presentation file and return a JSON array, one object per slide: {\"slide\": N, \"title\": \"...\", \"body\": ["},{"name":"odp_to_text","description":"Extract text and speaker notes from an .odp OpenDocument Presentation file and return a human-readable dump with === Slide N === headers."},{"name":"ods_list_sheets","description":"List all sheet names in an ODS file, one per line."},{"name":"ods_to_csv","description":"Convert a sheet in an ODS file to CSV. Returns comma-separated rows. Optionally include raw formula expressions as extra columns."},{"name":"ods_to_json","description":"Convert a sheet in an ODS file to JSON. By default treats the first row as column headers and returns an array of objects. Set has_header=false to return an arr"},{"name":"odt_read","description":"Extract the full body of an OpenDocument Text (.odt) file as plain text. Headings are prefixed with # markers; list items are prefixed with -."},{"name":"odt_to_csv","description":"Extract the first table from an OpenDocument Text (.odt) file and return it as CSV. Raises an error if the document contains no tables."},{"name":"odt_to_json","description":"Parse an OpenDocument Text (.odt) file and return a JSON object with three keys: 'meta' (document metadata), 'body' (list of paragraph/heading objects), and 'ta"},{"name":"orc_sample","description":"Preview the first N rows of an Apache ORC file as a JSON array (default 10 rows)."},{"name":"orc_schema","description":"Inspect the schema of an Apache ORC file: print column names and their Arrow/ORC types."},{"name":"orc_to_csv","description":"Convert an Apache ORC file to RFC 4180 CSV. Returns CSV text with a header row."},{"name":"orc_to_json","description":"Convert an Apache ORC file to a JSON array. Returns all rows (or up to `rows`) as JSON."},{"name":"parquet_sample","description":"Return the first N rows of a Parquet file as a JSON array."},{"name":"parquet_schema","description":"Inspect a Parquet file's schema: return all column names and their Arrow/Parquet types."},{"name":"parquet_to_csv","description":"Convert a Parquet file to RFC 4180 CSV, returning the CSV as a string."},{"name":"parquet_to_json","description":"Convert a Parquet file to a JSON array string."},{"name":"plist_convert","description":"Convert an Apple plist file to a different serialization format. to='json' returns JSON text; to='xml' returns XML plist text; to='binary' writes a binary bplis"},{"name":"plist_read","description":"Read an Apple property list (.plist) file and return its contents as formatted text, JSON, or CSV. Optionally drill into a nested key path using dotted notation"},{"name":"reg_read","description":"Read a Windows registry export (.reg) file and return a human-readable text summary: key paths, value names, types, and decoded data."},{"name":"reg_to_csv","description":"Convert a Windows registry export (.reg) file to CSV with columns: key, key_deleted, value_name, type, data — one row per registry value."},{"name":"reg_to_json","description":"Convert a Windows registry export (.reg) file to JSON: a flat object keyed by registry key path, each with a 'deleted' flag and a 'values' array ({name, type, d"},{"name":"rtf_to_json","description":"Parse an RTF file and return a JSON object containing filename, format, any embedded metadata (title, author, subject, keywords), the full plain text, and an ar"},{"name":"rtf_to_markdown","description":"Convert an RTF file to Markdown. Headings (detected from \\sN style markers or \\outlinelevel) become ATX headings; bold and italic spans are preserved as ** and "},{"name":"rtf_to_text","description":"Extract plain text from an RTF file, stripping all RTF control sequences and formatting."},{"name":"shapefile_summary","description":"Summarize a Shapefile (.shp) or GeoPackage (.gpkg) layer: driver, CRS, geometry type, field schema, feature count, and the first N features."},{"name":"shapefile_to_csv","description":"Flatten a Shapefile (.shp) or GeoPackage (.gpkg) layer to CSV — one row per feature; attribute columns plus a WKT geometry column."},{"name":"shapefile_to_geojson","description":"Convert a Shapefile (.shp) or GeoPackage (.gpkg) layer to a GeoJSON FeatureCollection string."},{"name":"shapefile_to_ndjson","description":"Convert a Shapefile (.shp) or GeoPackage (.gpkg) layer to newline-delimited JSON (one GeoJSON Feature object per line)."},{"name":"sqlite_query","description":"Execute a read-only SELECT query against a SQLite database and return results as text, CSV, or JSON. Only SELECT and WITH...SELECT statements are permitted."},{"name":"sqlite_read","description":"Read a SQLite database and return its contents as text (default), CSV, or JSON. Shows schema and row samples for all tables, or a single table if specified."},{"name":"sqlite_schema_diff","description":"Compare the schemas of two SQLite databases and return a readable diff. Reports tables/views added, removed, or changed (column additions, removals, type change"},{"name":"vcard_to_csv","description":"Convert a vCard (.vcf) file to CSV (one row per contact; columns: full_name, first_name, last_name, organization, title, phones, emails, addresses, birthday, ur"},{"name":"vcard_to_json","description":"Parse a vCard (.vcf) file and return a JSON array of contact objects. Each object has keys: full_name, first_name, last_name, organization, title, phones, email"},{"name":"vcard_to_text","description":"Read a vCard (.vcf) file and return a human-readable text summary with one block per contact showing name, phones, emails, addresses, organization, title, birth"},{"name":"xls_list_sheets","description":"List the sheet names (and visibility) in a legacy .xls workbook. Returns one line per sheet: '<index>: <name>' with optional [hidden] or [very-hidden] tags."},{"name":"xls_to_csv","description":"Convert a legacy .xls workbook to CSV text. All sheets are included by default (each preceded by a '# Sheet: <name>' comment line when multiple sheets are prese"},{"name":"xls_to_json","description":"Convert a legacy .xls workbook to a JSON array of sheet objects. Each element has 'sheet' (name), 'rows' (array of arrays), and optionally 'hidden' for non-visi"}],"toolCount":98,"toolsHash":"17d092d5e54e079576ae9e4c41e0af289f521d235644b3091ebea3b391e30a01","serverName":"stealthstack-file-formats","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2024-11-05"}}],"tools":[{"name":"archives_extract_all","description":"Extract all members from an archive (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z) to a destination directory on disk. Returns the paths of extracted "},{"name":"archives_extract_member","description":"Extract a single named member from an archive (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z) and return its content as text. Binary content is decoded"},{"name":"archives_list","description":"List the contents of an archive file (.zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz, .gz, .7z). Returns a table or JSON array of members with name, size, compres"},{"name":"arrow_read","description":"Read an Apache Arrow or Feather file and display a human-readable preview: schema summary and first N rows as a formatted text table."},{"name":"arrow_schema","description":"Print the schema of an Apache Arrow or Feather file: column names, Arrow types, and nullable flags."},{"name":"arrow_to_csv","description":"Convert an Apache Arrow or Feather file to CSV (one row per record; nested types JSON-serialized)."},{"name":"arrow_to_json","description":"Convert an Apache Arrow or Feather file to a JSON array of objects (one object per row)."},{"name":"avro_sample","description":"Return the first N records from an Avro file as a pretty-printed JSON array (default 10)."},{"name":"avro_schema","description":"Extract and pretty-print the embedded writer schema from an Avro file as JSON."},{"name":"avro_to_csv","description":"Convert an Avro file to RFC 4180 CSV. Nested fields are serialised as JSON strings. Optionally limit rows or supply a reader schema for field projection."},{"name":"avro_to_json","description":"Convert an Avro file to a pretty-printed JSON array. Optionally limit rows or supply a reader schema for field projection."},{"name":"avro_to_jsonl","description":"Convert an Avro file to newline-delimited JSON (one record per line). Optionally limit rows or supply a reader schema for field projection."},{"name":"dbf_schema","description":"Print the field definitions and file header of a dBase .dbf file: version, record count, encoding, and a table of field names, types, lengths, and decimal count"},{"name":"dbf_to_csv","description":"Convert a dBase .dbf file to RFC 4180 CSV text (header row of field names, one data row per record)."},{"name":"dbf_to_json","description":"Convert a dBase .dbf file to a JSON array of objects (one object per record, keyed by field name; dates as ISO-8601 strings)."},{"name":"dbf_to_text","description":"Read a dBase .dbf file and return a human-readable text summary: header info, field schema, and record values."},{"name":"doc_to_csv","description":"Extract text from a legacy Word .doc file and return it as CSV (columns: paragraph_index, text; UTF-8, LF line endings)."},{"name":"doc_to_json","description":"Extract text and OLE metadata from a legacy Word .doc file. Returns a JSON object: {\"paragraphs\": [...], \"metadata\": {...}} with author, title, and timestamps w"},{"name":"doc_to_text","description":"Extract text from a legacy Word .doc (OLE/CFB binary) file and return it as plain text, one paragraph per line."},{"name":"eml_extract_attachments","description":"Extract attachment files from an EML to a destination directory and return a summary of the saved paths."},{"name":"eml_read","description":"Read an EML (RFC 822) email file and return decoded body text with a header summary (From, To, Subject, Date) and an attachment list."},{"name":"eml_to_csv","description":"Parse an EML file and return a CSV row with key header fields (from, to, cc, subject, date, message_id, body_text, attachment_count)."},{"name":"eml_to_json","description":"Parse an EML file and return a JSON object containing all decoded headers, plain-text body, HTML body, and attachment metadata (filename, content-type, size)."},{"name":"epub_summary","description":"Summarize an EPUB e-book: metadata (title, creator, language, publisher, date, identifier) and a chapter list with word counts."},{"name":"epub_to_csv","description":"Convert an EPUB e-book to CSV. One row per chapter with columns: index, title, word_count, text."},{"name":"epub_to_json","description":"Convert an EPUB e-book to JSON. Returns {\"metadata\": {...}, \"chapters\": [...]} where each chapter has index, title, and text fields."},{"name":"epub_to_text","description":"Convert an EPUB e-book to plain text. Chapters are extracted in spine order and separated by '--- Chapter Title ---' headers."},{"name":"geojson_summary","description":"Summarize a GeoJSON file: feature count, geometry types, property keys, bounding box, and the first N features."},{"name":"geojson_to_csv","description":"Flatten a GeoJSON file's features to CSV (one row per feature; properties as columns + a geometry column)."},{"name":"geojson_to_json","description":"Validate and pretty-print a GeoJSON file as JSON."},{"name":"gpx_summarize","description":"Summarize a GPX file: track count, segment count, total track points, waypoint count, route count, elevation range, time span, and first N points."},{"name":"gpx_to_csv","description":"Convert a GPX file to CSV. data_type='tracks' (default): one row per track point with track_name, segment_index, point_index, lat, lon, ele, time. data_type='wa"},{"name":"gpx_to_geojson","description":"Convert a GPX file to a GeoJSON FeatureCollection. Track segments become LineString features, waypoints become Point features, and routes become LineString feat"},{"name":"gpx_to_json","description":"Convert a GPX file to a structured JSON object with tracks, waypoints, and routes arrays."},{"name":"hcl_blocks","description":"Summarize the top-level block types and their labels in an HCL/Terraform file or directory. Returns a newline-separated list of 'block_type: [label, ...]' lines"},{"name":"hcl_resources","description":"List all resource and data block identifiers in an HCL/Terraform file or directory. Returns one 'resource_type.name' (or 'data.resource_type.name') identifier p"},{"name":"hcl_to_csv","description":"Export resource and data blocks from an HCL/Terraform file or directory as CSV. Columns: block_type, resource_type, name. One row per resource/data block."},{"name":"hcl_to_json","description":"Parse an HCL/Terraform file or directory and return the full configuration as pretty-printed JSON. Strips internal python-hcl2 metadata and extra quote-wrapping"},{"name":"hdf5_to_csv","description":"Convert HDF5 datasets to CSV. Each dataset is preceded by a '# dataset: <path>' comment line. Compound datasets use field names as column headers; numeric array"},{"name":"hdf5_to_json","description":"Convert HDF5 datasets to JSON. With 'dataset': returns a JSON array of row-objects for that dataset (or a JSON object of arrays if the path is a group). Without"},{"name":"hdf5_tree","description":"Inspect an HDF5 file: print a human-readable tree of all groups and datasets with their shapes, dtypes, attributes, and sample values."},{"name":"ical_merge","description":"Merge multiple iCalendar (.ics) files into a single VCALENDAR. When dedup is true (default), VEVENTs with duplicate UIDs are collapsed to the first occurrence. "},{"name":"ical_to_csv","description":"Convert an iCalendar (.ics) file to CSV — one row per VEVENT. Columns: uid, summary, dtstart, dtend, location, description, organizer, attendees (semicolon-sepa"},{"name":"ical_to_json","description":"Parse an iCalendar (.ics) file and return a JSON array of all calendar components (VEVENT, VTODO, VJOURNAL, etc.) with structured fields: uid, summary, dtstart,"},{"name":"ical_to_text","description":"Read an iCalendar (.ics) file and return a human-readable summary of its events — one block per VEVENT with summary, start/end, location, organizer, attendees, "},{"name":"image-ocr_extract_text","description":"Extract layout-preserving plain text from an image file (.png, .jpg, .tiff) using Tesseract OCR. Multi-page TIFFs are supported; each page's text is separated b"},{"name":"image-ocr_extract_to_csv","description":"Extract word-level OCR data from an image file as CSV. Columns: page, word, conf, left, top, width, height. Suitable for importing into spreadsheets or data pip"},{"name":"image-ocr_extract_to_json","description":"Extract word-level OCR data from an image file as a JSON array. Each element contains page number, word text, confidence score, and bounding box coordinates (le"},{"name":"ipynb_read","description":"Read and render a Jupyter notebook (.ipynb) file. Supports three output formats: 'text' (human-readable with cell headers and outputs), 'markdown' (markdown cel"},{"name":"ipynb_strip_outputs","description":"Return a Jupyter notebook (.ipynb) as JSON with all code cell outputs and execution counts cleared. Useful for producing a clean, reproducible copy of a noteboo"},{"name":"kml_summary","description":"Summarize a KML or KMZ file: placemark count, geometry types, ExtendedData keys, and the first N placemarks."},{"name":"kml_to_csv","description":"Flatten KML/KMZ placemarks to CSV (one row per placemark; columns: name, description, geometry_type, first_coordinate, plus all ExtendedData keys)."},{"name":"kml_to_geojson","description":"Convert KML/KMZ placemarks to a GeoJSON FeatureCollection. Each Placemark becomes a Feature with Point, LineString, Polygon, or GeometryCollection geometry. Wor"},{"name":"kml_to_json","description":"Convert KML/KMZ placemarks to a JSON array. Each object has name, description, geometry (with type and coordinates), and attributes (ExtendedData key/value dict"},{"name":"mbox_split","description":"Split an mbox file into individual .eml files, one per message, written as 00000.eml, 00001.eml, … into the specified output directory. Returns a manifest with "},{"name":"mbox_to_csv","description":"Read an mbox mailbox file and return RFC 4180 CSV with a header row. Columns: from, to, date, subject, message_id, labels, body."},{"name":"mbox_to_json","description":"Read an mbox mailbox file and return newline-delimited JSON — one JSON object per line with fields: from, to, date, subject, body, message_id, labels."},{"name":"mbox_to_text","description":"Read an mbox mailbox file and return a human-readable block per message, with From, To, Date, Subject, optional Labels/Message-ID, and body."},{"name":"msg_to_csv","description":"Read an Outlook .msg file and return a CSV string (header row + one data row) with columns: from, to, cc, subject, date, message_id, body_text, attachment_count"},{"name":"msg_to_json","description":"Read an Outlook .msg file and return its full content as pretty-printed JSON with keys: headers (from, to, cc, bcc, subject, date, message_id, message_class), b"},{"name":"msg_to_text","description":"Read an Outlook .msg file and return the email as plain text: a header summary block (From, To, Cc, Subject, Date) followed by the decoded body. HTML body is st"},{"name":"odp_to_json","description":"Extract text and speaker notes from an .odp OpenDocument Presentation file and return a JSON array, one object per slide: {\"slide\": N, \"title\": \"...\", \"body\": ["},{"name":"odp_to_text","description":"Extract text and speaker notes from an .odp OpenDocument Presentation file and return a human-readable dump with === Slide N === headers."},{"name":"ods_list_sheets","description":"List all sheet names in an ODS file, one per line."},{"name":"ods_to_csv","description":"Convert a sheet in an ODS file to CSV. Returns comma-separated rows. Optionally include raw formula expressions as extra columns."},{"name":"ods_to_json","description":"Convert a sheet in an ODS file to JSON. By default treats the first row as column headers and returns an array of objects. Set has_header=false to return an arr"},{"name":"odt_read","description":"Extract the full body of an OpenDocument Text (.odt) file as plain text. Headings are prefixed with # markers; list items are prefixed with -."},{"name":"odt_to_csv","description":"Extract the first table from an OpenDocument Text (.odt) file and return it as CSV. Raises an error if the document contains no tables."},{"name":"odt_to_json","description":"Parse an OpenDocument Text (.odt) file and return a JSON object with three keys: 'meta' (document metadata), 'body' (list of paragraph/heading objects), and 'ta"},{"name":"orc_sample","description":"Preview the first N rows of an Apache ORC file as a JSON array (default 10 rows)."},{"name":"orc_schema","description":"Inspect the schema of an Apache ORC file: print column names and their Arrow/ORC types."},{"name":"orc_to_csv","description":"Convert an Apache ORC file to RFC 4180 CSV. Returns CSV text with a header row."},{"name":"orc_to_json","description":"Convert an Apache ORC file to a JSON array. Returns all rows (or up to `rows`) as JSON."},{"name":"parquet_sample","description":"Return the first N rows of a Parquet file as a JSON array."},{"name":"parquet_schema","description":"Inspect a Parquet file's schema: return all column names and their Arrow/Parquet types."},{"name":"parquet_to_csv","description":"Convert a Parquet file to RFC 4180 CSV, returning the CSV as a string."},{"name":"parquet_to_json","description":"Convert a Parquet file to a JSON array string."},{"name":"plist_convert","description":"Convert an Apple plist file to a different serialization format. to='json' returns JSON text; to='xml' returns XML plist text; to='binary' writes a binary bplis"},{"name":"plist_read","description":"Read an Apple property list (.plist) file and return its contents as formatted text, JSON, or CSV. Optionally drill into a nested key path using dotted notation"},{"name":"reg_read","description":"Read a Windows registry export (.reg) file and return a human-readable text summary: key paths, value names, types, and decoded data."},{"name":"reg_to_csv","description":"Convert a Windows registry export (.reg) file to CSV with columns: key, key_deleted, value_name, type, data — one row per registry value."},{"name":"reg_to_json","description":"Convert a Windows registry export (.reg) file to JSON: a flat object keyed by registry key path, each with a 'deleted' flag and a 'values' array ({name, type, d"},{"name":"rtf_to_json","description":"Parse an RTF file and return a JSON object containing filename, format, any embedded metadata (title, author, subject, keywords), the full plain text, and an ar"},{"name":"rtf_to_markdown","description":"Convert an RTF file to Markdown. Headings (detected from \\sN style markers or \\outlinelevel) become ATX headings; bold and italic spans are preserved as ** and "},{"name":"rtf_to_text","description":"Extract plain text from an RTF file, stripping all RTF control sequences and formatting."},{"name":"shapefile_summary","description":"Summarize a Shapefile (.shp) or GeoPackage (.gpkg) layer: driver, CRS, geometry type, field schema, feature count, and the first N features."},{"name":"shapefile_to_csv","description":"Flatten a Shapefile (.shp) or GeoPackage (.gpkg) layer to CSV — one row per feature; attribute columns plus a WKT geometry column."},{"name":"shapefile_to_geojson","description":"Convert a Shapefile (.shp) or GeoPackage (.gpkg) layer to a GeoJSON FeatureCollection string."},{"name":"shapefile_to_ndjson","description":"Convert a Shapefile (.shp) or GeoPackage (.gpkg) layer to newline-delimited JSON (one GeoJSON Feature object per line)."},{"name":"sqlite_query","description":"Execute a read-only SELECT query against a SQLite database and return results as text, CSV, or JSON. Only SELECT and WITH...SELECT statements are permitted."},{"name":"sqlite_read","description":"Read a SQLite database and return its contents as text (default), CSV, or JSON. Shows schema and row samples for all tables, or a single table if specified."},{"name":"sqlite_schema_diff","description":"Compare the schemas of two SQLite databases and return a readable diff. Reports tables/views added, removed, or changed (column additions, removals, type change"},{"name":"vcard_to_csv","description":"Convert a vCard (.vcf) file to CSV (one row per contact; columns: full_name, first_name, last_name, organization, title, phones, emails, addresses, birthday, ur"},{"name":"vcard_to_json","description":"Parse a vCard (.vcf) file and return a JSON array of contact objects. Each object has keys: full_name, first_name, last_name, organization, title, phones, email"},{"name":"vcard_to_text","description":"Read a vCard (.vcf) file and return a human-readable text summary with one block per contact showing name, phones, emails, addresses, organization, title, birth"},{"name":"xls_list_sheets","description":"List the sheet names (and visibility) in a legacy .xls workbook. Returns one line per sheet: '<index>: <name>' with optional [hidden] or [very-hidden] tags."},{"name":"xls_to_csv","description":"Convert a legacy .xls workbook to CSV text. All sheets are included by default (each preceded by a '# Sheet: <name>' comment line when multiple sheets are prese"},{"name":"xls_to_json","description":"Convert a legacy .xls workbook to a JSON array of sheet objects. Each element has 'sheet' (name), 'rows' (array of arrays), and optionally 'hidden' for non-visi"}],"package":null,"toolSurface":{"id":"ts_zvrsb59bf4n5","endpointId":"ep_s5gz3unk8dex","hash":"17d092d5e54e079576ae9e4c41e0af289f521d235644b3091ebea3b391e30a01","toolCount":98,"serverName":"stealthstack-file-formats","serverVersion":"0.1.0","protocolVersion":"2024-11-05","firstSeenAt":"2026-09-27T18:29:57.155Z","lastSeenAt":"2026-09-28T21:20:56.938Z","observations":5,"toolNames":["archives_extract_all","archives_extract_member","archives_list","arrow_read","arrow_schema","arrow_to_csv","arrow_to_json","avro_sample","avro_schema","avro_to_csv","avro_to_json","avro_to_jsonl","dbf_schema","dbf_to_csv","dbf_to_json","dbf_to_text","doc_to_csv","doc_to_json","doc_to_text","eml_extract_attachments","eml_read","eml_to_csv","eml_to_json","epub_summary","epub_to_csv","epub_to_json","epub_to_text","geojson_summary","geojson_to_csv","geojson_to_json","gpx_summarize","gpx_to_csv","gpx_to_geojson","gpx_to_json","hcl_blocks","hcl_resources","hcl_to_csv","hcl_to_json","hdf5_to_csv","hdf5_to_json","hdf5_tree","ical_merge","ical_to_csv","ical_to_json","ical_to_text","image-ocr_extract_text","image-ocr_extract_to_csv","image-ocr_extract_to_json","ipynb_read","ipynb_strip_outputs","kml_summary","kml_to_csv","kml_to_geojson","kml_to_json","mbox_split","mbox_to_csv","mbox_to_json","mbox_to_text","msg_to_csv","msg_to_json","msg_to_text","odp_to_json","odp_to_text","ods_list_sheets","ods_to_csv","ods_to_json","odt_read","odt_to_csv","odt_to_json","orc_sample","orc_schema","orc_to_csv","orc_to_json","parquet_sample","parquet_schema","parquet_to_csv","parquet_to_json","plist_convert","plist_read","reg_read","reg_to_csv","reg_to_json","rtf_to_json","rtf_to_markdown","rtf_to_text","shapefile_summary","shapefile_to_csv","shapefile_to_geojson","shapefile_to_ndjson","sqlite_query","sqlite_read","sqlite_schema_diff","vcard_to_csv","vcard_to_json","vcard_to_text","xls_list_sheets","xls_to_csv","xls_to_json"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_s5gz3unk8dex","url":"https://runner.stealthstack.ai/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-21T05:24:16.131Z","auth":{"observedAt":"2026-09-28T15:26:46.555Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-21T05:24:16.151Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"stealthstack.ai","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-15T20:53:05.000Z","validTo":"2027-01-13T21:52:56.000Z","daysToExpiry":75,"sanCount":2,"fingerprint256":"CB:01:0E:EB:C8:39:E4:33:2F:94:D0:93:B8:FE:58:5E:53:A6:07:A7:FC:10:58:6B:22:FD:92:FC:38:96:63:09"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:archives","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.429Z","fetchedAt":"2026-09-27T18:23:14.429Z","normalizedAt":"2026-09-27T18:23:14.429Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:arrow","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.518Z","fetchedAt":"2026-09-27T18:23:14.518Z","normalizedAt":"2026-09-27T18:23:14.518Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:avro","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.533Z","fetchedAt":"2026-09-27T18:23:14.533Z","normalizedAt":"2026-09-27T18:23:14.533Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:dbf","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.546Z","fetchedAt":"2026-09-27T18:23:14.546Z","normalizedAt":"2026-09-27T18:23:14.546Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:doc","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.558Z","fetchedAt":"2026-09-27T18:23:14.558Z","normalizedAt":"2026-09-27T18:23:14.558Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:eml","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.571Z","fetchedAt":"2026-09-27T18:23:14.571Z","normalizedAt":"2026-09-27T18:23:14.571Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:epub","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.582Z","fetchedAt":"2026-09-27T18:23:14.582Z","normalizedAt":"2026-09-27T18:23:14.582Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:geojson","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.592Z","fetchedAt":"2026-09-27T18:23:14.592Z","normalizedAt":"2026-09-27T18:23:14.592Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:gpx","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.603Z","fetchedAt":"2026-09-27T18:23:14.603Z","normalizedAt":"2026-09-27T18:23:14.603Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:hcl","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.617Z","fetchedAt":"2026-09-27T18:23:14.617Z","normalizedAt":"2026-09-27T18:23:14.617Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:hdf5","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.630Z","fetchedAt":"2026-09-27T18:23:14.630Z","normalizedAt":"2026-09-27T18:23:14.630Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:ical","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.641Z","fetchedAt":"2026-09-27T18:23:14.641Z","normalizedAt":"2026-09-27T18:23:14.641Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:image-ocr","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.651Z","fetchedAt":"2026-09-27T18:23:14.651Z","normalizedAt":"2026-09-27T18:23:14.651Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:ipynb","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.662Z","fetchedAt":"2026-09-27T18:23:14.662Z","normalizedAt":"2026-09-27T18:23:14.662Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:kml","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.672Z","fetchedAt":"2026-09-27T18:23:14.672Z","normalizedAt":"2026-09-27T18:23:14.672Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:mbox","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.682Z","fetchedAt":"2026-09-27T18:23:14.682Z","normalizedAt":"2026-09-27T18:23:14.682Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:msg","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.694Z","fetchedAt":"2026-09-27T18:23:14.694Z","normalizedAt":"2026-09-27T18:23:14.694Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:odp","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.705Z","fetchedAt":"2026-09-27T18:23:14.705Z","normalizedAt":"2026-09-27T18:23:14.705Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:ods","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.715Z","fetchedAt":"2026-09-27T18:23:14.715Z","normalizedAt":"2026-09-27T18:23:14.715Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:odt","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.725Z","fetchedAt":"2026-09-27T18:23:14.725Z","normalizedAt":"2026-09-27T18:23:14.725Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:orc","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.739Z","fetchedAt":"2026-09-27T18:23:14.739Z","normalizedAt":"2026-09-27T18:23:14.739Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:parquet","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.752Z","fetchedAt":"2026-09-27T18:23:14.752Z","normalizedAt":"2026-09-27T18:23:14.752Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:plist","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.762Z","fetchedAt":"2026-09-27T18:23:14.762Z","normalizedAt":"2026-09-27T18:23:14.762Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:reg","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.774Z","fetchedAt":"2026-09-27T18:23:14.774Z","normalizedAt":"2026-09-27T18:23:14.774Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:rtf","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.783Z","fetchedAt":"2026-09-27T18:23:14.783Z","normalizedAt":"2026-09-27T18:23:14.783Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:shapefile","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.793Z","fetchedAt":"2026-09-27T18:23:14.793Z","normalizedAt":"2026-09-27T18:23:14.793Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:sqlite","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.804Z","fetchedAt":"2026-09-27T18:23:14.804Z","normalizedAt":"2026-09-27T18:23:14.804Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:vcard","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.816Z","fetchedAt":"2026-09-27T18:23:14.816Z","normalizedAt":"2026-09-27T18:23:14.816Z"},{"source":"ard_catalog","key":"urn:air:stealthstack.ai:mcp:xls","url":"https://www.stealthstack.ai/.well-known/ard.json","firstSeenAt":"2026-09-27T18:23:14.829Z","fetchedAt":"2026-09-27T18:23:14.829Z","normalizedAt":"2026-09-27T18:23:14.829Z"}]},"firstSeenAt":"2026-09-27T18:23:14.429Z","updatedAt":"2026-09-28T21:23:20.846Z"}