Skip to content

Adapt Pandas

Adapt Pandas — mvp.adapt_pandas

Cluster: Data Processing | Type: component | MCP Tools: 36

Overview

adapt_pandas wraps pandas DataFrame operations (load, profile, transform, filter, aggregate) as AIBlocks, plus a 34-operation MCP sub-package with SQLite persistence for datasets, reusable pipelines, capability discovery, and constrained native adapter operations.

Launch readiness caveat

The component-level review and tests support adapt_pandas as useful for first-user workflows: CSV/JSON/Parquet loading, profiling, filtering, schema checks, pipeline replay, and SQLite-backed dataset reuse all work through the local block and MCP paths. This does not by itself make the full product launch-ready. The launch plan still depends on ecosystem checks outside this component, including clean-machine MCP install validation, dependency pinning, Docker/runtime packaging, staging smoke tests, and non-developer onboarding docs.

When to use:

  • Data ingestion, profiling, and exploratory analysis
  • Feature engineering with filter, sort, groupby, merge, and pivot operations
  • Persisting and replaying named data pipelines via the MCP interface

Example:

from mvp.adapt_pandas import AdaptPandasBlock, DataInput

block = AdaptPandasBlock(name="pd")
result = block.infer(DataInput(records=[{"x": 1}, {"x": 2}]))
# result.ok → True; result.value → DataOutput with shape=(2, 1)

Works well with: adapt_sklearn, adapt_pygad, align_evals, database

Public API

AdaptPandasBlock(AIBlock[DataInput, DataOutput, None])

Applies an optional DataFrame operation to input records and returns results,

Field Type Default
name str 'adapt_pandas'
resource_bounds ResourceBounds \| None None
usage ResourceUsage field(default_factory=ResourceUsage)
agentic_planner PandasCleaningPlanner \| None None

Methods:

infer(data: DataInput) -> Result[DataOutput]

DataOperation(BaseModel)

A single transformation to apply to a DataFrame.

Field Type Default
op Literal['head', 'tail', 'describe', 'dropna', 'reset_index', 'select', 'filter_rows', 'identity', 'read_csv', 'read_parquet', 'read_json', 'concat', 'to_datetime', 'groupby_agg', 'merge', 'join', 'pivot', 'melt', 'recommend'] required
params dict[str, Any] Field(default_factory=dict)

DataInput(BaseModel)

Input records plus optional column selection and operation.

Field Type Default
records list[dict[str, Any]] required
columns list[str] Field(default_factory=list)
operation DataOperation \| None None
data_schema dict[str, str] \| None Field(default=None, alias='schema', serialization_alias='schema')
run_mode str 'beta'
reviewer_signature str ''

Methods:

schema() -> dict[str, str] | None

DataOutput(BaseModel)

Output records plus shape metadata.

Field Type Default
records list[dict[str, Any]] required
shape tuple[int, int] required
columns list[str] required
summary dict[str, Any] Field(default_factory=dict)
warnings list[str] Field(default_factory=list)
degraded bool False
degradation_reason str ''
ranked_ops list[str] Field(default_factory=list)
recommendation_rationale str ''
eligible_ops list[str] Field(default_factory=list)
agentic_evidence dict[str, Any] Field(default_factory=dict)
requires_fallback bool False
diverged_from_floor bool False
deterministic_floor_rank list[str] Field(default_factory=list)
completion_state str ''

Methods:

to_input(operation: DataOperation | None = None, schema: dict[str, str] | None = None) -> DataInput

Wrap this output's records back into a DataInput for chaining.

AdaptPandasMCPBlock(AIBlock[MCPPandasInput, MCPPandasOutput, dict])

28-op pandas MCP block with SQLite persistence.

Field Type Default
name str 'adapt_pandas_mcp'
state dict field(default_factory=dict)
db_path str field(default_factory=lambda: os.environ.get('PANDAS_DB_PATH', _DEFAULT_DB))
resource_bounds ResourceBounds field(default_factory=ResourceBounds)
usage ResourceUsage field(default_factory=ResourceUsage)

Methods:

infer(data: MCPPandasInput) -> Result[MCPPandasOutput]

MCPPandasRecord(BaseModel)

A single metadata record returned from PandasStore queries.

Field Type Default
id str required
record_type str required
name str required
content str required
tags str ''
timestamp str ''
metadata dict Field(default_factory=dict)

MCPPandasInput(BaseModel)

Input to AdaptPandasMCPBlock — 30 schema ops (28 exposed as MCP tools).

Field Type Default
op Literal['ops', 'help', 'head', 'tail', 'describe', 'dropna', 'reset_index', 'select', 'filter_rows', 'sort', 'fillna', 'rename', 'astype', 'groupby_agg', 'merge', 'pivot', 'melt', 'profile', 'value_counts', 'corr', 'dataset_store', 'dataset_retrieve', 'dataset_list', 'dataset_load', 'pipeline_store', 'pipeline_run', 'search', 'info', 'recommend', 'list_patterns', 'native_capability_info', 'native_dataframe_schema', 'native_dataframe_describe', 'native_groupby', 'native_value_counts', 'native_convert_dtypes'] required
records list[dict] Field(default_factory=list)
columns list[str] Field(default_factory=list)
n int 5
by str ''
ascending bool True
column str ''
value Any None
rename_map dict Field(default_factory=dict)
dtype str ''
agg_map dict Field(default_factory=dict)
right_records list[dict] Field(default_factory=list)
on str ''
how str 'inner'
index str ''
values str ''
aggfunc str 'mean'
id_vars list[str] Field(default_factory=list)
value_vars list[str] Field(default_factory=list)
var_name str 'variable'
value_name str 'value'
normalize bool False
top_k int 20
method str 'pearson'
name str ''
tags_csv str ''
notes str ''
limit int 50
steps_json str ''
description str ''
query str ''
top_k_results int 10
path str ''
chunk_size int \| None None
run_mode str 'beta'
reviewer_signature str ''
request_id str ''
task_id str ''
run_id str ''

MCPPandasOutput(BaseModel)

Output from AdaptPandasMCPBlock.

Field Type Default
op str required
records list[dict] Field(default_factory=list)
shape list[int] Field(default_factory=list)
columns list[str] Field(default_factory=list)
summary dict Field(default_factory=dict)
name str ''
found bool False
count int 0
retrieved list[dict] Field(default_factory=list)
scores list[float] Field(default_factory=list)
message str ''
metadata dict Field(default_factory=dict)
degraded bool False
degradation_reason str ''
completion_state Literal['verified', 'qualified-draft', 'blocked-escalated'] 'qualified-draft'
warning_card dict Field(default_factory=dict)
evidence list[dict] Field(default_factory=list)
request_id str ''
task_id str ''
run_id str ''

PandasStore

SQLite-backed store for the adapt_pandas MCP sub-package.

Constructor:

Parameter Type Default
db_path str ':memory:'

Methods:

store_dataset(name: str, records: list[dict], tags: str = '', notes: str = '') -> str

Persist a named dataset. Returns the assigned id.

retrieve_dataset(name: str) -> dict | None

Retrieve a stored dataset by name. Returns None if not found.

list_datasets(tags_csv: str = '', limit: int = 50) -> list[dict]

List stored datasets, optionally filtered by tags.

store_pipeline(name: str, steps: list[dict], description: str = '', tags: str = '') -> str

Persist a named pipeline. Returns the assigned id.

retrieve_pipeline(name: str) -> dict | None

Retrieve a stored pipeline by name. Returns None if not found.

increment_pipeline_use(name: str) -> None

list_pipelines(limit: int = 50) -> list[dict]

log_transform(op: str, params: dict, input_shape: str, output_shape: str, success: bool, error_message: str = '', dataset_name: str = '') -> None

store_profile(dataset_name: str, profile: dict) -> None

get_profile(dataset_name: str) -> dict | None

log_error(op: str, error_message: str, params: dict | None = None) -> None

count_all() -> dict[str, int]

text_search(query: str, top_k: int = 10) -> list[dict]

Search datasets + pipelines by TF-IDF (falls back to substring).

MCP Tools

Operation Source
ops pandas_mcp
help pandas_mcp
head pandas_mcp
tail pandas_mcp
describe pandas_mcp
dropna pandas_mcp
reset_index pandas_mcp
select pandas_mcp
filter_rows pandas_mcp
sort pandas_mcp
fillna pandas_mcp
rename pandas_mcp
astype pandas_mcp
groupby_agg pandas_mcp
merge pandas_mcp
pivot pandas_mcp
melt pandas_mcp
profile pandas_mcp
value_counts pandas_mcp
corr pandas_mcp
dataset_store pandas_mcp
dataset_retrieve pandas_mcp
dataset_list pandas_mcp
dataset_load pandas_mcp
pipeline_store pandas_mcp
pipeline_run pandas_mcp
search pandas_mcp
info pandas_mcp
recommend pandas_mcp
list_patterns pandas_mcp
native_capability_info pandas_mcp
native_dataframe_schema pandas_mcp
native_dataframe_describe pandas_mcp
native_groupby pandas_mcp
native_value_counts pandas_mcp
native_convert_dtypes pandas_mcp