# RowCove MCP tools, schemas and safety

RowCove MCP is a local stdio server. The desktop application remains the owner of filesystem access, format detection, parsing, indexing, querying, persistence, cancellation and bounded progress events. MCP is an authorized bridge to those capabilities, not a second filesystem implementation.

## Connection and authorization

MCP is disabled by default. The user enables it in RowCove, chooses allowed roots and copies the generated client configuration. The client should inspect the tool list and schema before calling anything. Authorization is checked at startup and before tool calls; disabling MCP or rotating authorization invalidates an old client. No network listener is opened by the local stdio transport.

## Tool groups

### Discovery and reading

- 'data_inspect(path)': bounded format, compression, confidence and reader capability detection.
- 'data_preview(path, maxRows, maxColumns, maxCellChars)': bounded format-aware preview.
- 'jsonl_preview(...)': explicit JSONL/NDJSON preview alias.
- 'data_read_page(path, offset, limit, columns, delimiter, hasHeaders, encoding)': bounded projected page across supported readers.
- 'dataset_catalog(selection)': discover JSONL, Parquet and Arrow shards, splits and partition ranges.
- 'dataset_scan(selection, cursor, limit, columns, filters)': typed paged records with source file, source row, partitions, cursor and completion state.
- 'database_tables(path)': explicit schema and table choices.
- 'database_read_page(path, table, columns, filters, orderBy, offset, limit)': read-only parameterized database pages.

### Query, quality and jobs

- 'data_query(path, filters, sorts, offset, limit, columns, scratchDirectory, background)': bounded filter and sort results; large delimited jobs can run in the background.
- 'data_quality(path, keyColumns, expectedTypes, timestampColumn, expectedIntervalMs, labelColumns, featureColumns)': bounded-memory checks for missing values, duplicates, type conflicts, outliers, continuity and optional label leakage.
- 'data_schema_diff(leftPath, rightPath, options)': schema evolution, nested paths, type changes and exactness declarations.
- 'job_status(jobId)': progress and terminal result for background work.
- 'job_cancel(jobId)': cancel indexing, scans, sorts or writes and wait for terminal cleanup.

### Materialization and writing

- 'data_materialize_compressed(path, outputPath, maxOutputBytes, confirm)': decode to a new bounded artifact with progress and cancellation.
- 'data_edit(path, outputPath, edits, encoding, confirm)': stage explicit cell edits to a new file.
- 'data_write(format, outputPath, spec, confirm)': invoke a format-specific writer when supported.
- 'data_save_as(path, outputPath, confirm)': save an independent copy, including read-only formats.

Writes require explicit confirmation, an allowlisted source and destination, a new output path and a format that supports the requested operation. Existing files are not replaced. A failed or cancelled operation leaves the source unchanged.

## Recommended call contract

Every agent call should name the source, selected fields, partition or time range, filter operator, sort direction, page size and expected completion state. Continue while a cursor exists; an empty filtered page does not prove that the dataset is exhausted. Keep the same stdio connection while polling a background job.

## Privacy and disclosure

MCP results go to the connected AI client and may reach its model provider. Do not send credentials, authorization values or an entire private dataset. Return only requested fields and bounded records. Public RowCove documentation, charts and performance measurements use synthetic mock data.
