ML Research MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| plot_heatmapA | Create a heatmap for visualizing matrix data. This tool generates a heatmap with optional annotations, ideal for correlation matrices, confusion matrices, or any 2D data. Args: data: For direct input, 2D list (matrix). For file input, column name. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} x_labels: Optional labels for x-axis (columns) y_labels: Optional labels for y-axis (rows) annotate: If True, show values in each cell style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "colormap": "viridis"} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Correlation matrix: >>> plot_heatmap( ... data=[[1.0, 0.8, 0.3], [0.8, 1.0, 0.5], [0.3, 0.5, 1.0]], ... x_labels=["A", "B", "C"], ... y_labels=["A", "B", "C"], ... annotate=True, ... style={"title": "Correlation Matrix", "colormap": "RdBu"} ... ) |
| plot_contourA | Create a contour plot for 3D data visualization in 2D. This tool generates contour lines (or filled contours) showing levels of a third variable (z) across x-y coordinates. Args: x: X coordinates. Column name or list of values. y: Y coordinates. Column name or list of values. z: Z values (2D array). Column name or 2D list. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} levels: Number of contour levels (default: 10) filled: If True, create filled contours (contourf), else lines only style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "colormap": "viridis"} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Filled contour plot: >>> x = [1, 2, 3, 4, 5] >>> y = [1, 2, 3, 4, 5] >>> z = [[i+j for j in range(5)] for i in range(5)] >>> plot_contour(x=x, y=y, z=z, levels=15, filled=True) |
| plot_pcolormeshA | Create a pseudocolor plot with a non-regular rectangular grid. This tool generates a fast pseudocolor plot using pcolormesh, ideal for large datasets and irregular grids. Args: x: X coordinates. Column name or list of values. y: Y coordinates. Column name or list of values. z: Z values (2D array). Column name or 2D list. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} shading: Shading method ("auto", "flat", "nearest", "gouraud") style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "colormap": "viridis"} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Basic pcolormesh: >>> x = [1, 2, 3, 4] >>> y = [1, 2, 3, 4] >>> z = [[1, 2, 3, 4], [2, 4, 6, 8], [3, 6, 9, 12], [4, 8, 12, 16]] >>> plot_pcolormesh(x=x, y=y, z=z, shading="gouraud") |
| plot_lineA | Create a line plot from data. This tool generates a line plot using UltraPlot/Matplotlib. You can provide data either as a file path (CSV/JSON) or directly as lists. Args: x: X-axis data. Column name (string) if using data file, or list of values. y: Y-axis data. Column name (string) if using data file, or list of values. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "colormap": "...", "grid": True} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Basic line plot with direct data: >>> plot_line(x=[1, 2, 3], y=[1, 4, 9]) |
| plot_scatterA | Create a scatter plot with optional size and color mapping. This tool generates a scatter plot where point sizes and colors can represent additional data dimensions. Args: x: X-axis data. Column name (string) if using data file, or list of values. y: Y-axis data. Column name (string) if using data file, or list of values. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} size: Optional point sizes. Column name, list of values, or single value. color: Optional point colors. Column name or list of values for colormap. style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "colormap": "viridis", "grid": True} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Basic scatter plot: >>> plot_scatter(x=[1, 2, 3], y=[1, 4, 9]) |
| plot_barA | Create a bar plot for categorical data comparison. This tool generates vertical or horizontal bar plots, ideal for comparing values across different categories. Args: x: Category labels. Column name (string) if using data file, or list of strings. y: Values for each category. Column name or list of numbers. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} orientation: "vertical" or "horizontal" bars (default: "vertical") style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "grid": True} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Vertical bar plot: >>> plot_bar( ... x=["A", "B", "C"], ... y=[10, 25, 15], ... style={"title": "Category Comparison"} ... ) |
| plot_histogramA | Create a histogram for data distribution analysis. This tool generates a histogram showing the frequency distribution of numerical data. Useful for understanding data spread and patterns. Args: data: Data column name (string) if using data file, or list of values. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} bins: Number of histogram bins (default: 30) density: If True, normalize to show probability density style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "grid": True} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Basic histogram: >>> plot_histogram(data=[1.2, 2.3, 2.5, 3.1, 3.4, 4.2, 4.5], bins=10) |
| plot_boxA | Create a box plot for comparing data distributions. This tool generates box plots (box-and-whisker plots) showing median, quartiles, and outliers for one or more datasets. Args: data: For direct input, list of lists (each sublist is a dataset). For file input, column name(s) separated by comma or single column. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} labels: Optional labels for each dataset style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "grid": True} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Multiple datasets comparison: >>> plot_box( ... data=[[1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7]], ... labels=["Group A", "Group B", "Group C"] ... ) |
| plot_violinA | Create a violin plot for detailed distribution comparison. This tool generates violin plots, which combine box plots with kernel density estimation to show the full distribution shape. Args: data: For direct input, list of lists (each sublist is a dataset). For file input, column name(s) or single column. data_input: Optional. {"file_path": "path/to/file.csv"} or {"data": {...}} labels: Optional labels for each dataset style: Optional. {"title": "...", "xlabel": "...", "ylabel": "...", "grid": True} output: Optional. {"format": "png/pdf/svg", "width": 15, "height": 10, "dpi": 300} Returns: PIL Image object or bytes containing the plot Examples: Comparing distributions: >>> plot_violin( ... data=[[1, 2, 2, 3, 3, 3, 4], [2, 3, 4, 4, 5, 5, 6]], ... labels=["Control", "Treatment"] ... ) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose corresponding to a specific type of plot visualization. The descriptions clearly differentiate between bar plots, box plots, contour plots, heatmaps, histograms, line plots, pseudocolor plots, scatter plots, and violin plots. There is no functional overlap or ambiguity between these visualization types.
All tool names follow a perfect 'plot_' prefix pattern with descriptive suffixes indicating the plot type. The naming is completely consistent across all nine tools, using snake_case uniformly without any deviations or mixed conventions.
Nine tools is an appropriate number for a visualization-focused ML research server. Each tool represents a distinct, commonly used plot type in data analysis and research, making the set well-scoped without being overwhelming or insufficient for the domain.
The tool set covers most essential plot types for ML research visualization, including categorical, distribution, correlation, and relationship plots. Minor gaps might include specialized plots like 3D surface plots or network graphs, but the core visualization needs are well-covered for typical research workflows.