spreadsheet-mcp 0.10.1

Stateful MCP server for spreadsheet analysis and editing — token-efficient tools for LLM agents to read, profile, edit, and recalculate .xlsx workbooks
Documentation
use crate::cli::OutputFormat;
use crate::response_prune::prune_non_structural_empties;
use anyhow::{Result, bail};
use serde_json::Value;

pub fn emit_value(value: &Value, format: OutputFormat, compact: bool, quiet: bool) -> Result<()> {
    if matches!(format, OutputFormat::Csv) {
        bail!("csv output is not implemented yet for spreadsheet-cli")
    }

    let mut value = value.clone();
    prune_non_structural_empties(&mut value);

    let stdout = std::io::stdout();
    let mut handle = stdout.lock();
    if compact || quiet {
        serde_json::to_writer(&mut handle, &value)?;
    } else {
        serde_json::to_writer_pretty(&mut handle, &value)?;
    }
    use std::io::Write;
    handle.write_all(b"\n")?;
    Ok(())
}