Skip to main content
Glama
by Fervoyush
CHANGELOG.md5.88 kB
# Changelog All notable changes to the plotnine MCP server will be documented in this file. ## [Unreleased] - Development Phase All features below are in active development and will be released as v1.0.0. ### Added - Phase 1, 2 & 3 Features (2025-01-07) #### New MCP Tools (4 tools added) - **preview_data**: Inspect data before plotting - Shows dataset shape, column types, first N rows - Displays statistics for numeric columns - Reports missing values - Configurable number of preview rows - **list_themes**: List all available themes - Shows all base themes with descriptions - Lists customization options - Includes example usage - **export_plot_config**: Save plot configurations to JSON - Export any plot config for reuse - Configurable output directory - Auto-adds .json extension - **import_plot_config**: Load and use saved configurations - Import previously saved configs - Support for parameter overrides - Maintains backward compatibility #### Enhanced Error Messages - **Fuzzy Matching**: Smart suggestions for typos - Column name suggestions (e.g., "hieght" → "height") - Geometry type suggestions (e.g., "scater" → "jitter") - Theme name suggestions - **Better Validation**: Column existence check before plotting - Validates all aesthetic column references - Validates facet column references - Early error detection with helpful messages - **New Module**: `error_utils.py` - `suggest_column_name()`: Fuzzy match column names - `format_column_error()`: Format helpful column errors - `suggest_geom_type()`: Fuzzy match geom types - `format_geom_error()`: Format helpful geom errors - `suggest_theme_name()`: Fuzzy match themes - `format_theme_error()`: Format helpful theme errors #### Code Improvements - Extracted `THEME_MAP` as module-level constant in `plot_builder.py` - Added comprehensive column validation in `build_plot()` - Improved error messages throughout the codebase #### Testing - New test suite: `test_new_features.py` - 7 test cases covering all new features - Tests for data preview, theme listing - Tests for fuzzy matching and error messages - Tests for config export/import - All tests passing ✓ #### Documentation - Updated README.md with new tools documentation - Added examples for using new tools - Updated feature highlights - Added usage examples in chat format #### Phase 2: High Impact Features - **list_plot_templates**: Browse 9 preset plot templates - time_series, scatter_with_trend, distribution_comparison - category_breakdown, correlation_heatmap, boxplot_comparison - multi_line, histogram_with_density, before_after - **create_plot_from_template**: Use templates easily - Just provide data and aesthetics - Template handles geometry, theme, and scales - Optional overrides for customization - **suggest_plot_templates**: AI-powered template recommendations - Analyzes data characteristics (numeric/categorical/time columns) - Optionally considers user goals - Returns top 5 recommendations with reasoning - **list_color_palettes**: Browse 21 color palettes - 6 categories: colorblind_safe, scientific, categorical, corporate, sequential, diverging - Category filtering - Preview colors in response - **Templates module** (`templates.py`): - 9 pre-configured plot templates - Template application with validation - Smart suggestion algorithm - **Palettes module** (`palettes.py`): - 21 carefully curated color palettes - Scale configuration helpers - Accessibility-focused options #### Phase 3: Advanced Features - **batch_create_plots**: Create multiple plots in one operation - Process array of plot configurations - Detailed summary of successes/failures - Perfect for exploratory analysis - **Data Transformations** (integrated into `create_plot`): - 12 transformation types via `transforms` parameter - filter: Query-based filtering - group_summarize: Group by and aggregate - sort: Sort by columns - select: Choose specific columns - rename: Rename columns - mutate: Create/modify columns with expressions - drop_na: Remove missing values - fill_na: Fill missing values - sample: Random sampling - unique: Remove duplicates - rolling: Rolling window calculations - pivot: Reshape data - Chained transformations support - **Transforms module** (`transforms.py`): - All transformation logic - Pandas-based implementation - Comprehensive error handling ### Total Tools Available Now **11 tools** (was 2, added 9): 1. create_plot (enhanced with transforms support) 2. list_geom_types 3. preview_data 4. list_themes 5. export_plot_config 6. import_plot_config 7. list_plot_templates (NEW - Phase 2) 8. create_plot_from_template (NEW - Phase 2) 9. suggest_plot_templates (NEW - Phase 2) 10. list_color_palettes (NEW - Phase 2) 11. batch_create_plots (NEW - Phase 3) ### Statistics - Lines of code added: ~3500+ - New files: 6 (error_utils.py, templates.py, palettes.py, transforms.py, test_new_features.py, test_phase2_phase3.py) - Tests added: 24 new test cases (7 Phase 1 + 17 Phase 2&3) - All existing tests still passing (backward compatible) - Total test coverage: 29 tests across 3 test suites ### Added - Multi-layer Plot Support (2025-11-06) - **Multi-layer plot support**: Combine multiple geometries in single plot - `geoms` parameter (array) for multi-layer plots - Backward compatibility with `geom` parameter - Documentation for multi-layer usage - Test cases for multi-layer plots - Enhanced plot_builder.py to handle multiple geoms - Updated README with multi-layer examples --- ## [0.1.0] - Current Development Version ### Core Features - MCP server implementation - 20+ geometry types - Multiple data sources (file, URL, inline) - Full ggplot2 feature parity - Comprehensive theming system - Documentation and examples - Basic test suite

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Fervoyush/plotnine-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server