Skip to main content
Glama

πŸ“Š Plotting MCP Server

A MCP (Model Context Protocol) server that transforms CSV data into beautiful visualizations. Built with Python and optimized for seamless integration with AI assistants and chat applications.

✨ Features

  • πŸ“ˆ Multiple Plot Types: Create line charts, bar graphs, pie charts, and world maps

  • 🌍 Geographic Visualization: Built-in support for plotting coordinate data on world maps using Cartopy

  • πŸ”§ Flexible Parameters: Fine-tune your plots with JSON-based configuration options

  • πŸ“± Chat-Ready Output: Returns base64-encoded PNG images perfect for AI chat interfaces

  • ⚑ Fast Processing: Efficient CSV parsing and plot generation with pandas and matplotlib

Installation

Using Makefile

make install

Using uv

uv sync

Usage

Running the Server

uv run plotting-mcp

The server runs on port 9090 by default.

Tools

generate_plot

Transform your CSV data into stunning visualizations.

Parameters:

  • csv_data (str): CSV data as a string

  • plot_type (str): Plot type - line, bar, pie, or worldmap

  • json_kwargs (str): JSON string with plotting parameters for customization

Plotting Options:

  • Line/Bar Charts: Use Seaborn parameters (x, y, hue for data mapping)

  • World Maps: Automatic coordinate detection (lat/latitude/y and lon/longitude/x)

    • Customize with s (size), c (color), alpha (transparency), marker (style)

  • Pie Charts: Supports single column (value counts) or two columns (labels + values)

Returns: Base64-encoded PNG image ready for display

πŸ€– AI Assistant Integration

Perfect for enhancing AI conversations with data visualization capabilities. The server returns plots as base64-encoded PNG images that display seamlessly in:

  • LibreChat: Direct integration for chat-based data analysis

  • Claude Desktop: Through mcp-remote command to transform from HTTP transport to stdio

{
  "mcpServers": {
    "plotting": {
      "command": "uvx",
      "args": [
        "--from", "/path/to/plotting-mcp",
        "plotting-mcp", "--transport=stdio"
      ]
    }
  }
}
  • Custom AI Applications: Easy integration via MCP protocol

  • Development Tools: Compatible with any MCP-enabled environment

Image Format: High-quality PNG with configurable DPI and sizing

πŸš€ ToolHive Deployment

Deploy and manage your plotting server effortlessly with ToolHive - a platform that provides containerized, secure environments for MCP servers across UI, CLI, and Kubernetes modes.

Benefits:

  • πŸ”’ Secure Containerization: Isolated environments with comprehensive security controls

  • βš™οΈ Multiple Deployment Options: UI, CLI, and Kubernetes support

  • πŸ”§ Developer-Friendly: Seamless integration with popular development tools

πŸ“š Resources:

Build the Docker image

docker build -t plotting-mcp .

Run with ToolHive

Run locally

thv run --name plotting-mcp --transport streamable-http plotting-mcp:latest

Run with ToolHive in K8s with ToolHive operator

  1. Create a PVC for the MCP server. This is needed since the plotting libraries Matplotlib and Cartopy require a writable filesystem to cache data:

kubectl apply -f toolhive-pvc.yaml
  1. Deploy the MCP server in K8s. In the toolhive-deployment.yaml, you can customize the image field to point to your image registry.

kubectl apply -f toolhive-deployment.yaml
  1. Once the MCP server is deployed, do port-forwarding

kubectl port-forward svc/mcp-plotting-mcp-proxy 9090:9090

πŸ› οΈ Development

Built with modern Python tooling for a great developer experience.

Tech Stack:

  • 🐍 Python 3.13+: Latest Python features

  • πŸ“Š Seaborn & Matplotlib: Professional-grade plotting

  • 🌍 Cartopy: Advanced geospatial visualization

  • ⚑ FastMCP: High-performance MCP server framework

  • πŸ”§ UV: Fast Python package management

Code Quality

# Format code and fix linting issues
make format

# Type checking
make typecheck

# Or use uv directly
uv run ruff format .
uv run ruff check --fix .
uv run ty check
-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/StacklokLabs/plotting-mcp'

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