Skip to main content
Glama
Fervoyush
by Fervoyush

list_themes

Discover available themes for customizing plot styling in Plotnine visualizations, enabling tailored design choices for data graphics.

Instructions

List all available themes for plot styling

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The main execution logic for the list_themes tool. Imports THEME_MAP, defines descriptions, constructs a formatted message listing themes and customizations, and returns it as TextContent.
    async def list_themes_handler() -> list[TextContent]: """Handle list_themes tool calls.""" from .plot_builder import THEME_MAP theme_descriptions = { "gray": "Gray background with white gridlines (ggplot2 default)", "bw": "Black and white theme with no background", "minimal": "Minimalist theme with minimal gridlines", "classic": "Classic look with axis lines and no gridlines", "dark": "Dark background theme", "light": "Light theme with subtle gray background", "void": "Empty theme with no elements (for custom designs)", } message = "Available Themes\n" + "=" * 50 + "\n\n" message += "Base themes:\n" for theme_name in sorted(THEME_MAP.keys()): desc = theme_descriptions.get(theme_name, "") message += f" - {theme_name}: {desc}\n" message += "\n" + "=" * 50 + "\n" message += "Customization options:\n" message += " - figure_size: [width, height] in inches\n" message += " - legend_position: 'right', 'left', 'top', 'bottom', 'none'\n" message += " - legend_direction: 'vertical', 'horizontal'\n" message += " - panel_background: background color/style\n" message += " - plot_background: overall plot background\n" message += " - text: global text properties\n" message += " - axis_text: axis label styling\n" message += " - axis_title: axis title styling\n" message += "\nExample usage:\n" message += ' "theme": {\n' message += ' "base": "minimal",\n' message += ' "customizations": {\n' message += ' "figure_size": [12, 6],\n' message += ' "legend_position": "bottom"\n' message += ' }\n' message += ' }\n' return [TextContent(type="text", text=message)]
  • Registers the list_themes tool in the @server.list_tools() handler with its name, description, and empty input schema (no parameters required).
    Tool( name="list_themes", description="List all available themes for plot styling", inputSchema={ "type": "object", "properties": {}, }, ),
  • Defines the input schema for list_themes tool: an empty object (no input parameters needed).
    inputSchema={ "type": "object", "properties": {}, },
  • Supporting constant THEME_MAP that maps theme names to plotnine theme functions, used by the handler to list available themes.
    THEME_MAP = { "gray": theme_gray, "grey": theme_gray, "bw": theme_bw, "minimal": theme_minimal, "classic": theme_classic, "dark": theme_dark, "light": theme_light, "void": theme_void, }
  • Tool dispatch in @server.call_tool(): routes 'list_themes' calls to the list_themes_handler.
    elif name == "list_themes": return await list_themes_handler()

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/Fervoyush/plotnine-mcp'

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