_ registry / mcp http-sse · checked 11m ago

ChartAnt

https://chartant.net

Registry code: 2a98d3e6713fad59

api record

Draws charts and maps as PNG images and returns an image link (the generate_* tools). Maps work for every country: world maps colour countries, country maps colour states/provinces/regions, pin maps show places by latitude/longitude. If a result lists names it could not match with a 'Did you mean' hint, call the tool again with the corrected names. When the user wants a chart kept up to date, embedded somewhere or sent to Slack, Teams, Discord or email when it changes, use create_living_chart, update_living_chart, add_destination and send_chart_on_update.

endpoint
https://chartant.net/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is ChartAnt live?
Yes — it answered the hub's last check (checked 11m ago). It answered 100% of checks over the last 30 days.
Is ChartAnt free to use?
Yes — the hub reached it with no key and no payment.
What tools does ChartAnt have?
52 tools: send_chart_on_update, manage_workspace, restore_chart_version, schedule_chart, generate_area_chart, generate_bar_chart, generate_boxplot_chart, create_report, ….
Is ChartAnt safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
1,114ms

last good check

priced tools
0

of 52 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

inferred, not observed

Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run

_ what it can do 52 tools
52 never probed 0 of 52 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • send_chart_on_update unknown never probed

    Post a living chart to a destination every time its data changes (through update_living_chart or the API), and by default once right now. For a fixed daily or weekly time use schedule_chart instead. Returns a confirmation. Needs a connection signed in to a free account (connector URL ending in /mcp/account).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "chart_id",
        "destination_id"
      ],
      "properties": {
        "chart_id": {
          "type": "string",
          "maxLength": 40,
          "description": "The chart id from create_living_chart or list_my_charts."
        },
        "send_now": {
          "type": "boolean",
          "description": "Also send it once now (default true)."
        },
        "destination_id": {
          "type": "integer",
          "maximum": 9007199254740991,
          "description": "The destination id from add_destination or list_my_charts.",
          "exclusiveMinimum": 0
        }
      }
    }
    arguments 25 lines
  • manage_workspace unknown never probed

    Team and sharing settings of the connected workspace. operation: list_team; invite_member (args {email}) and remove_member (args {member: user id from list_team}) for the owner only; list_client_pages, create_client_page (args {name, charts: [chart ids]}) and delete_client_page (args {id}) for read-only pages to share with clients; list_domains, add_domain (args {host, page: client page id}), verify_domain and remove_domain (args {host}) for a custom domain (Team or Business owner). remove_member, delete_client_page and remove_domain cannot be undone. Returns the result as JSON. Needs a connection signed in to a free account (connector URL ending in /mcp/account).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "operation"
      ],
      "properties": {
        "args": {
          "type": "object",
          "default": {},
          "description": "Arguments for the operation, e.g. {\"email\":\"[email protected]\"}; {} for list operations.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "operation": {
          "enum": [
            "list_team",
            "invite_member",
            "remove_member",
            "list_client_pages",
            "create_client_page",
            "delete_client_page",
            "list_domains",
            "add_domain",
            "verify_domain",
            "remove_domain"
          ],
          "type": "string",
          "description": "What to do; see the description for each operation's args."
        }
      }
    }
    arguments 34 lines
  • restore_chart_version unknown never probed

    Make an earlier version of a living chart the current one again (the version in between stays in the history, so this can be undone). Its link shows the restored version and attached destinations get a fresh copy. Needs a connection signed in to a free account (connector URL ending in /mcp/account).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "version"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 40,
          "description": "The chart id from create_living_chart or list_my_charts."
        },
        "version": {
          "type": "integer",
          "maximum": 9007199254740991,
          "description": "The version number from list_chart_versions.",
          "exclusiveMinimum": 0
        }
      }
    }
    arguments 21 lines
  • schedule_chart unknown never probed

    Post a living chart to a destination at a fixed time, daily or weekly (e.g. every Monday at 08:00 UTC), with its latest data. Calling it again for the same chart and destination replaces the schedule. To send whenever the data changes use send_chart_on_update. Returns a confirmation. Needs a connection signed in to a free account (connector URL ending in /mcp/account).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id",
        "destination_id",
        "frequency"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 40,
          "description": "The chart id from create_living_chart or list_my_charts."
        },
        "hour": {
          "type": "integer",
          "default": 8,
          "maximum": 23,
          "minimum": 0,
          "description": "Hour of the day in UTC (default 8)."
        },
        "weekday": {
          "type": "integer",
          "default": 1,
          "maximum": 6,
          "minimum": 0,
          "description": "For weekly: 0 = Sunday, 1 = Monday (default) … 6 = Saturday."
        },
        "frequency": {
          "enum": [
            "daily",
            "weekly"
          ],
          "type": "string",
          "description": "daily or weekly."
        },
        "on_update": {
          "type": "boolean",
          "default": false,
          "description": "Also send whenever the data changes."
        },
        "destination_id": {
          "type": "integer",
          "maximum": 9007199254740991,
          "description": "The destination id from add_destination or list_my_charts.",
          "exclusiveMinimum": 0
        }
      }
    }
    arguments 49 lines
  • generate_area_chart unknown 11m ago

    Draw an area chart: a line chart with the area below filled, for totals or volumes over time (traffic, revenue). Data [{time, value, group?}]; set stack true to stack groups. For plain trends use generate_line_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "time",
              "value"
            ],
            "properties": {
              "time": {
                "type": "string"
              },
              "group": {
                "type": "string"
              },
              "value": {
                "type": "number"
              }
            }
          },
          "minItems": 1,
          "description": "Data for area chart, it should be an array of objects, each object contains a `time` field and a `value` field, such as, [{ time: '2015', value: 23 }, { time: '2016', value: 32 }], when stacking is needed for area, the data should contain a `group` field, such as, [{ time: '2015', value: 23, group: 'A' }, { time: '2015', value: 32, group: 'B' }]."
        },
        "stack": {
          "type": "boolean",
          "default": false,
          "description": "Whether stacking is enabled. When enabled, area charts require a 'group' field in the data."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "lineWidth": {
              "type": "number",
              "description": "Line width for the lines of chart, such as 4."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "animated": {
          "type": "boolean",
          "description": "true for an animated GIF (bars grow, lines draw, pies sweep open) instead of a still PNG; for email, slides and chat posts. The first frame is the finished chart."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 111 lines
  • generate_bar_chart unknown 11m ago

    Draw a horizontal bar chart to compare categories, best for long category names or rankings (top 10). Data [{category, value, group?}]; set group or stack true for several series. For vertical bars use generate_column_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "category",
              "value"
            ],
            "properties": {
              "group": {
                "type": "string"
              },
              "value": {
                "type": "number"
              },
              "category": {
                "type": "string"
              }
            }
          },
          "minItems": 1,
          "description": "Data for bar chart, such as, [{ category: '分类一', value: 10 }, { category: '分类二', value: 20 }], when grouping or stacking is needed for bar, the data should contain a `group` field, such as, when [{ category: '北京', value: 825, group: '油车' }, { category: '北京', value: 1000, group: '电车' }]."
        },
        "group": {
          "type": "boolean",
          "default": false,
          "description": "Whether grouping is enabled. When enabled, bar charts require a 'group' field in the data. When `group` is true, `stack` should be false."
        },
        "stack": {
          "type": "boolean",
          "default": true,
          "description": "Whether stacking is enabled. When enabled, bar charts require a 'group' field in the data. When `stack` is true, `group` should be false."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "animated": {
          "type": "boolean",
          "description": "true for an animated GIF (bars grow, lines draw, pies sweep open) instead of a still PNG; for email, slides and chat posts. The first frame is the finished chart."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 112 lines
  • generate_boxplot_chart unknown 11m ago

    Draw a box plot: median, quartiles and outliers of the values in each category, to compare distributions. Data [{category, value, group?}] with one row per observation. For the shape of the distribution use generate_violin_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "category",
              "value"
            ],
            "properties": {
              "group": {
                "type": "string",
                "description": "Optional group for the data point, used for grouping in the boxplot."
              },
              "value": {
                "type": "number",
                "description": "Value of the data point, such as 10."
              },
              "category": {
                "type": "string",
                "description": "Category of the data point, such as '分类一'."
              }
            }
          },
          "minItems": 1,
          "description": "Data for boxplot chart, such as, [{ category: '分类一', value: 10 }] or [{ category: '分类二', value: 20, group: '组别一' }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "startAtZero": {
              "type": "boolean",
              "default": false,
              "description": "Whether to start the axis at zero, optional, default is false."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 106 lines
  • create_report unknown never probed

    Put several charts, maps or KPI cards and some text into one report. Returns a link to a report page (shareable, PDF download) and a PowerPoint deck with a slide per chart. Each chart block takes the same fields as the matching generate_* tool, plus its 'type' (e.g. column, line, pie, country-map, world-map, county-map, kpi). Each call makes a new report; to update the same report link later use create_living_chart with type 'report'. Returns the report, PDF, PowerPoint and chart image links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "title",
        "blocks"
      ],
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "description": "Report title."
        },
        "blocks": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "type",
                  "text"
                ],
                "properties": {
                  "text": {
                    "type": "string",
                    "maxLength": 4000,
                    "minLength": 1
                  },
                  "type": {
                    "enum": [
                      "heading",
                      "text"
                    ],
                    "type": "string"
                  }
                }
              },
              {
                "type": "object",
                "required": [
                  "type",
                  "chart"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "chart"
                  },
                  "chart": {
                    "type": "object",
                    "description": "A chart definition, e.g. {\"type\":\"column\",\"title\":\"…\",\"data\":[{\"category\":\"A\",\"value\":1}]}",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  },
                  "caption": {
                    "type": "string",
                    "maxLength": 300
                  }
                }
              }
            ]
          },
          "maxItems": 30,
          "minItems": 1,
          "description": "In order: headings, paragraphs and charts (at most 12 charts)."
        },
        "subtitle": {
          "type": "string",
          "maxLength": 300,
          "description": "Line under the title, e.g. the period covered."
        }
      }
    }
    arguments 77 lines
  • generate_waterfall_chart unknown never probed

    Draw a waterfall chart of how a starting value becomes a final value through gains and losses (profit bridge, budget variance). Data [{category, value, isTotal?}]; positive values go up, negative down, isTotal rows show the running total. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "category"
            ],
            "properties": {
              "value": {
                "type": "number"
              },
              "isTotal": {
                "type": "boolean"
              },
              "category": {
                "type": "string"
              },
              "isIntermediateTotal": {
                "type": "boolean"
              }
            }
          },
          "minItems": 1,
          "description": "Data for waterfall chart, it should be an array of objects. Each object must contain a `category` field. For regular items, a `value` field is also required. The `isIntermediateTotal` field marks intermediate subtotals, and the `isTotal` field marks the final total. For example, [{ category: 'Initial', value: 100 }, { category: 'Increase', value: 50 }, { category: 'Subtotal', isIntermediateTotal: true }, { category: 'Decrease', value: -30 }, { category: 'Total', isTotal: true }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "object",
              "properties": {
                "totalColor": {
                  "type": "string",
                  "description": "Color for total and intermediate total bars. Default is '#1783FF'."
                },
                "negativeColor": {
                  "type": "string",
                  "description": "Color for negative values (decreases). Default is '#2EBB59'."
                },
                "positiveColor": {
                  "type": "string",
                  "description": "Color for positive values (increases). Default is '#FF4D4F'."
                }
              }
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 110 lines
  • list_chart_versions unknown never probed

    List the saved earlier versions of a living chart, newest first, as JSON (version number, date, image or page link). Use it before restore_chart_version. Needs a connection signed in to a free account (connector URL ending in /mcp/account).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 40,
          "description": "The chart id from create_living_chart or list_my_charts."
        }
      }
    }
    arguments 14 lines
  • generate_world_map unknown never probed

    Draw a world map colouring countries by a number (sales, population, users, visitors by country). Use country names in any common language or ISO 3166 codes (e.g. 'Japan', 'JP', 'JPN'); unmatched names are listed in the result with 'Did you mean' hints. For regions inside one country use generate_country_map; to show exact numbers beside the map use generate_map_ranking. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "country",
              "value"
            ],
            "properties": {
              "value": {
                "type": "number"
              },
              "country": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per country."
        },
        "unit": {
          "type": "string",
          "maxLength": 30,
          "description": "Unit for the legend, e.g. 'EUR', 'users', '%'."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the map."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 960)."
        },
        "format": {
          "enum": [
            "png",
            "svg"
          ],
          "type": "string",
          "description": "png (default) or svg. SVG returns a link to a vector version of the map."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 540)."
        },
        "labels": {
          "enum": [
            "none",
            "name",
            "value",
            "both"
          ],
          "type": "string",
          "description": "Write each area's name, value or both on the map (default none). Labels that don't fit are left out."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 77 lines
  • generate_country_map unknown never probed

    Draw a map of one country with its first-level regions (states, provinces, prefectures, counties, departments) coloured by a number. Works for every country. Use region names or ISO 3166-2 codes (e.g. country 'US', region 'California' or 'US-CA'; country 'India', region 'Maharashtra'). For countries of the world use generate_world_map; for US counties use generate_county_map. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "country",
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "region",
              "value"
            ],
            "properties": {
              "value": {
                "type": "number"
              },
              "region": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per region."
        },
        "unit": {
          "type": "string",
          "maxLength": 30,
          "description": "Unit for the legend, e.g. 'EUR', 'users', '%'."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the map."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 800)."
        },
        "format": {
          "enum": [
            "png",
            "svg"
          ],
          "type": "string",
          "description": "png (default) or svg. SVG returns a link to a vector version of the map."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 600)."
        },
        "labels": {
          "enum": [
            "none",
            "name",
            "value",
            "both"
          ],
          "type": "string",
          "description": "Write each area's name, value or both on the map (default none). Labels that don't fit are left out."
        },
        "country": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "Country name or ISO 3166 code, e.g. 'Germany' or 'DE'."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 84 lines
  • generate_county_map unknown never probed

    Draw a map of US counties coloured by a number: all of the US, or the counties of one state. Name counties with their state ("Cook, IL", "Los Angeles County, California") or use 5-digit FIPS codes ("17031"). With 'state' set, bare county names are looked up in that state. For states, use generate_country_map with country 'US'. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "county",
              "value"
            ],
            "properties": {
              "value": {
                "type": "number"
              },
              "county": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per county."
        },
        "unit": {
          "type": "string",
          "maxLength": 30,
          "description": "Unit for the legend, e.g. 'EUR', 'users', '%'."
        },
        "state": {
          "type": "string",
          "maxLength": 40,
          "minLength": 1,
          "description": "Only this state, e.g. 'TX' or 'Texas'. Leave out for the whole US."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the map."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 960)."
        },
        "format": {
          "enum": [
            "png",
            "svg"
          ],
          "type": "string",
          "description": "png (default) or svg. SVG returns a link to a vector version of the map."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 600)."
        },
        "labels": {
          "enum": [
            "none",
            "name",
            "value",
            "both"
          ],
          "type": "string",
          "description": "Write each area's name, value or both on the map (default none). Labels that don't fit are left out."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 83 lines
  • generate_kpi_card unknown never probed

    Draw 1 to 4 KPI cards as one image: each a big number with its label, optional change since the last period (green when good, red when bad) and an optional sparkline of recent values. For report emails, Slack updates and dashboards in documents. To combine KPI cards with charts in one image use generate_dashboard. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "items"
      ],
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "label",
              "value"
            ],
            "properties": {
              "unit": {
                "type": "string",
                "maxLength": 12,
                "description": "After the number, e.g. '%' or 'users'."
              },
              "delta": {
                "type": "number",
                "description": "Change since the last period: a percentage, or an amount with deltaMode 'absolute'."
              },
              "label": {
                "type": "string",
                "maxLength": 40,
                "minLength": 1,
                "description": "What the number is, e.g. 'Revenue'."
              },
              "trend": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "maxItems": 60,
                "description": "Recent values, oldest first, for the sparkline."
              },
              "value": {
                "type": "number",
                "description": "The big number."
              },
              "prefix": {
                "type": "string",
                "maxLength": 4,
                "description": "Before the number, e.g. '€' or '$'."
              },
              "target": {
                "type": "number",
                "description": "A goal for this number: drawn as a progress bar ('78% of €60,000 target'). With goodWhen 'down' it shows whether the value is within the target."
              },
              "caption": {
                "type": "string",
                "maxLength": 40,
                "description": "Shown after the change, e.g. 'vs last week'."
              },
              "goodWhen": {
                "enum": [
                  "up",
                  "down"
                ],
                "type": "string",
                "description": "'down' for numbers where lower is better (churn, costs, errors)."
              },
              "deltaMode": {
                "enum": [
                  "percent",
                  "absolute"
                ],
                "type": "string",
                "description": "How to read delta: percent (default) or absolute."
              }
            }
          },
          "maxItems": 4,
          "minItems": 1,
          "description": "One to four cards, left to right."
        },
        "title": {
          "type": "string",
          "maxLength": 120,
          "description": "Heading above the cards, e.g. 'This week'."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 91 lines
  • generate_pin_map unknown never probed

    Draw a map with labelled dots at given latitude/longitude anywhere in the world (offices, stores, customers, events). Optional 'value' sizes the dots. The map zooms to the points automatically. To count points per region instead of pinning each one use locate_points with map set; to colour whole areas use generate_world_map or generate_country_map. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "lat",
              "lon"
            ],
            "properties": {
              "lat": {
                "type": "number",
                "maximum": 90,
                "minimum": -90
              },
              "lon": {
                "type": "number",
                "maximum": 180,
                "minimum": -180
              },
              "name": {
                "type": "string",
                "maxLength": 100
              },
              "value": {
                "type": "number",
                "minimum": 0
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per place."
        },
        "unit": {
          "type": "string",
          "maxLength": 30,
          "description": "Unit for the legend, e.g. 'EUR', 'users', '%'."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the map."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 960)."
        },
        "format": {
          "enum": [
            "png",
            "svg"
          ],
          "type": "string",
          "description": "png (default) or svg. SVG returns a link to a vector version of the map."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 600)."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 78 lines
  • generate_table unknown never probed

    Draw a clean, client-ready table as an image: top products, campaigns, clients or any ranked list. Numbers are right-aligned with thousands separators; currency and percent formats; a 'change' column shows ▲/▼ in green or red; optional bars behind a number column and an optional total row. Up to 8 columns and 200 rows (long tables are cut to fit the height). To put a table beside charts use generate_dashboard. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "maxLength": 60
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 200
                },
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "maxItems": 200,
          "minItems": 1,
          "description": "The rows, e.g. [{\"product\":\"Trail shoe\",\"revenue\":15420,\"change\":8.2}]."
        },
        "title": {
          "type": "string",
          "maxLength": 120,
          "description": "Heading above the table, e.g. 'Top products this week'."
        },
        "total": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "maxLength": 30
            }
          ],
          "description": "Add a total row summing number and currency columns; a string sets its label."
        },
        "columns": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "key"
            ],
            "properties": {
              "bar": {
                "type": "boolean",
                "description": "Draw a bar behind the number, scaled to the largest value."
              },
              "key": {
                "type": "string",
                "maxLength": 60,
                "minLength": 1,
                "description": "The field in each row."
              },
              "unit": {
                "type": "string",
                "maxLength": 12
              },
              "label": {
                "type": "string",
                "maxLength": 40,
                "description": "Column heading (default: the key)."
              },
              "format": {
                "enum": [
                  "text",
                  "number",
                  "currency",
                  "percent",
                  "change"
                ],
                "type": "string",
                "description": "How to show the values; 'change' shows ▲ 8.2% in green/red."
              },
              "prefix": {
                "type": "string",
                "maxLength": 4,
                "description": "For currency, e.g. '€'."
              },
              "decimals": {
                "type": "integer",
                "maximum": 4,
                "minimum": 0
              },
              "goodWhen": {
                "enum": [
                  "up",
                  "down"
                ],
                "type": "string",
                "description": "For change columns: 'down' when lower is better."
              }
            }
          },
          "maxItems": 8,
          "minItems": 1,
          "description": "Which columns to show and how; leave out to show every field."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 120 lines
  • generate_dashboard unknown never probed

    Combine KPI cards, charts, maps and short notes into ONE image, in rows (1-4 rows, 1-4 panels per row, at most 8 panels). For weekly email updates, Slack posts, client reports and slides. Each panel is a chart definition with its 'type' (kpi, line, column, bar, pie, area, country-map, world-map, county-map, small-multiples, table, or note for a sentence of text: {type:'note', text}). A table panel: {type:'table', title, data:[{...}], columns?:[{key, label?, format?: number|currency|percent|change|text, prefix?, bar?}], total?: true}. Add span: 2 to a panel to make it twice as wide as the others in its row. KPI items can have a target (progress bar). Typical: a row of KPI cards, then a trend chart (span 2) beside a top-10 bar chart, then a table of top items, then a note with the takeaway. For a multi-page document with text use create_report instead. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "rows"
      ],
      "properties": {
        "rows": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "maxItems": 4,
            "minItems": 1
          },
          "maxItems": 4,
          "minItems": 1,
          "description": "Rows of panels, top to bottom; each panel like {\"type\":\"line\",\"title\":\"…\",\"data\":[…]}."
        },
        "title": {
          "type": "string",
          "maxLength": 120,
          "description": "Heading at the top of the image."
        },
        "width": {
          "type": "integer",
          "maximum": 2400,
          "minimum": 400,
          "description": "Image width in pixels (default 1200)."
        },
        "subtitle": {
          "type": "string",
          "maxLength": 200,
          "description": "Line under the heading, e.g. 'Week 12'."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 48 lines
  • generate_map_ranking unknown never probed

    Draw a map (regions of one country, or countries of the world) next to a bar chart of the top places, in matching colours, as one image. Easier to read than a map alone: the bars give the exact numbers. Use region names or ISO codes as 'name'. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "top": {
          "type": "integer",
          "maximum": 20,
          "minimum": 3,
          "description": "How many places the bar chart ranks (default 10)."
        },
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "value"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              "value": {
                "type": "number"
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per region or country."
        },
        "unit": {
          "type": "string",
          "maxLength": 30,
          "description": "Unit for the legend, e.g. 'EUR', 'users', '%'."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the map."
        },
        "country": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "description": "For regions of one country, e.g. 'DE'. Leave out for a world map of countries."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 59 lines
  • generate_small_multiples unknown never probed

    Draw the same small chart once per group (country, product, team) in a grid, all on one shared scale, so the groups can be compared at a glance. Rows are {group, x, value}, e.g. {group:'France', x:'Jan', value:120}. Up to 24 groups. For a few groups on one chart use generate_line_chart with group. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "group",
              "x",
              "value"
            ],
            "properties": {
              "x": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 40
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "group": {
                "type": "string",
                "maxLength": 60,
                "minLength": 1
              },
              "value": {
                "type": "number"
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per group and x value; each group gets its own small chart."
        },
        "unit": {
          "type": "string",
          "maxLength": 30,
          "description": "Unit for the legend, e.g. 'EUR', 'users', '%'."
        },
        "chart": {
          "enum": [
            "line",
            "column",
            "area"
          ],
          "type": "string",
          "description": "Default line."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the map."
        },
        "columns": {
          "type": "integer",
          "maximum": 6,
          "minimum": 1,
          "description": "Charts per row in the grid (chosen automatically when left out)."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 74 lines
  • match_places unknown never probed

    Turn messy place names into standard names and codes: countries (ISO 3166 codes), the states/provinces/regions of one country (ISO 3166-2 codes) or US counties (FIPS codes). Understands other languages, abbreviations and typos ("Bayern", "BY", "Bavarai" → Bavaria, DE-BY). Use it to clean a column of locations before a map, a join or a report. Draws nothing; returns one line per name: the standard name and code, the options when ambiguous, or 'not found' with a suggestion.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "names"
      ],
      "properties": {
        "level": {
          "enum": [
            "country",
            "region",
            "county"
          ],
          "type": "string",
          "description": "country (default without 'country'), region (needs 'country') or county (US)."
        },
        "names": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 200
          },
          "maxItems": 2000,
          "minItems": 1,
          "description": "The place names to clean, as written in the data."
        },
        "state": {
          "type": "string",
          "maxLength": 40,
          "description": "For US counties: limit to one state, e.g. 'TX'."
        },
        "country": {
          "type": "string",
          "maxLength": 100,
          "description": "For regions: the country, e.g. 'DE' or 'Germany'."
        }
      }
    }
    arguments 38 lines
  • locate_points unknown never probed

    For each latitude/longitude, find the country, its state/province/region (ISO 3166-2) and, in the US, the county (FIPS). Works offline. With map set, also draws a map of how many points fall in each area (regions of the main country, US counties, or countries). Returns one line per point (country › region › county); to pin each point on a map instead use generate_pin_map.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "points"
      ],
      "properties": {
        "map": {
          "enum": [
            "auto",
            "world",
            "region",
            "county"
          ],
          "type": "string",
          "description": "Also draw a map of counts per area: auto picks the finest level that fits; leave out for text only."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title of the map (only with map)."
        },
        "points": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "lat",
              "lon"
            ],
            "properties": {
              "lat": {
                "type": "number",
                "maximum": 90,
                "minimum": -90
              },
              "lon": {
                "type": "number",
                "maximum": 180,
                "minimum": -180
              },
              "name": {
                "type": "string",
                "maxLength": 100
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "The points, each with latitude, longitude and an optional name."
        }
      }
    }
    arguments 53 lines
  • generate_column_chart unknown never probed

    Draw a vertical column chart to compare values across categories or periods (sales by quarter, users by plan). Data [{category, value, group?}]; set group true for side-by-side series or stack true to stack them. For long labels or rankings use generate_bar_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "category",
              "value"
            ],
            "properties": {
              "group": {
                "type": "string"
              },
              "value": {
                "type": "number"
              },
              "category": {
                "type": "string"
              }
            }
          },
          "minItems": 1,
          "description": "Data for column chart, such as, [{ category: 'Category A', value: 10 }, { category: 'Category B', value: 20 }], when grouping or stacking is needed for column, the data should contain a 'group' field, such as, [{ category: 'Beijing', value: 825, group: 'Gas Car' }, { category: 'Beijing', value: 1000, group: 'Electric Car' }]."
        },
        "group": {
          "type": "boolean",
          "default": true,
          "description": "Whether grouping is enabled. When enabled, column charts require a 'group' field in the data. When `group` is true, `stack` should be false."
        },
        "stack": {
          "type": "boolean",
          "default": false,
          "description": "Whether stacking is enabled. When enabled, column charts require a 'group' field in the data. When `stack` is true, `group` should be false."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "animated": {
          "type": "boolean",
          "description": "true for an animated GIF (bars grow, lines draw, pies sweep open) instead of a still PNG; for email, slides and chat posts. The first frame is the finished chart."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 112 lines
  • generate_dual_axes_chart unknown never probed

    Draw a combined column and line chart with two y-axes, for two measures with different units over the same categories (revenue in € as columns, margin in % as a line). Give categories [..] and series [{type: 'column'|'line', data [numbers], axisYTitle?}]. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "categories",
        "series"
      ],
      "properties": {
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "startAtZero": {
              "type": "boolean",
              "default": false,
              "description": "Whether to start the axis at zero, optional, default is false."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "series": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "description": "When type is column, the data represents quantities, such as [91.9, 99.1, 101.6, 114.4, 121]. When type is line, the data represents ratios and its values are recommended to be less than 1, such as [0.055, 0.06, 0.062, 0.07, 0.075]."
              },
              "type": {
                "enum": [
                  "column",
                  "line"
                ],
                "type": "string",
                "description": "The optional value can be 'column' or 'line'."
              },
              "axisYTitle": {
                "type": "string",
                "default": "",
                "description": "Set the y-axis title of the chart series, such as, axisYTitle: '销售额'."
              }
            }
          },
          "minItems": 1,
          "description": "Series for dual axes chart, such as, [{ type: 'column', data: [91.9, 99.1, 101.6, 114.4, 121], axisYTitle: '销售额' }, { type: 'line', data: [0.055, 0.06, 0.062, 0.07, 0.075], 'axisYTitle': '利润率' }]."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "description": "Categories for dual axes chart, such as, ['2015', '2016', '2017']."
        }
      }
    }
    arguments 118 lines
  • generate_fishbone_diagram unknown never probed

    Draw a fishbone (Ishikawa, cause-and-effect) diagram: the problem as the head, groups of causes as the bones. Data {name: problem, children: [{name: cause group, children: [{name: cause}]}]}. For a plain hierarchy use generate_mind_map. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "object",
          "required": [
            "name"
          ],
          "properties": {
            "name": {
              "type": "string"
            },
            "children": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "children": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "name"
                      ],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "children": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "description": "Data for fishbone diagram chart which is a hierarchical structure, such as, { name: 'main topic', children: [{ name: 'topic 1', children: [{ name: 'subtopic 1-1' }] }] }, and the maximum depth is 3."
        },
        "style": {
          "type": "object",
          "properties": {
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 103 lines
  • generate_flow_diagram unknown never probed

    Draw a flowchart of a process: steps and decisions joined by arrows. Data {nodes: [{name}], edges: [{source, target, name?}]} where edges refer to node names. For relationships without a direction of flow use generate_network_graph. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "object",
          "required": [
            "nodes",
            "edges"
          ],
          "properties": {
            "edges": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "source",
                  "target"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "default": ""
                  },
                  "source": {
                    "type": "string"
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            },
            "nodes": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  }
                }
              },
              "minItems": 1
            }
          },
          "description": "Data for flow diagram chart, such as, { nodes: [{ name: 'node1' }, { name: 'node2' }], edges: [{ source: 'node1', target: 'node2', name: 'edge1' }] }."
        },
        "style": {
          "type": "object",
          "properties": {
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 96 lines
  • generate_funnel_chart unknown never probed

    Draw a funnel chart of how many remain at each stage of a process (visitors → sign-ups → purchases), widest first. Data [{category, value}] in stage order. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "category",
              "value"
            ],
            "properties": {
              "value": {
                "type": "number"
              },
              "category": {
                "type": "string"
              }
            }
          },
          "minItems": 1,
          "description": "Data for funnel chart, such as, [{ category: '浏览网站', value: 50000 }, { category: '放入购物车', value: 35000 }, { category: '生成订单', value: 25000 }, { category: '支付订单', value: 15000 }, { category: '完成交易', value: 8000 }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 85 lines
  • generate_histogram_chart unknown never probed

    Draw a histogram of how raw numbers are distributed (response times, ages, order sizes). Data is a flat list of numbers; binNumber sets how many bins. To compare categories use generate_column_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "minItems": 1,
          "description": "Data for histogram chart, it should be an array of numbers, such as, [78, 88, 60, 100, 95]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "binNumber": {
          "type": "number",
          "description": "Number of intervals to define the number of intervals in a histogram, when not specified, a built-in value will be used."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 87 lines
  • generate_line_chart unknown never probed

    Draw a line chart of values over time (daily users, monthly revenue, prices). Data [{time, value, group?}] with one line per group. For filled volumes use generate_area_chart; for one small chart per group use generate_small_multiples. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "time",
              "value"
            ],
            "properties": {
              "time": {
                "type": "string"
              },
              "group": {
                "type": "string"
              },
              "value": {
                "type": "number"
              }
            }
          },
          "minItems": 1,
          "description": "Data for line chart, it should be an array of objects, each object contains a `time` field and a `value` field, such as, [{ time: '2015', value: 23 }, { time: '2016', value: 32 }], when the data is grouped by time, the `group` field should be used to specify the group, such as, [{ time: '2015', value: 23, group: 'A' }, { time: '2015', value: 32, group: 'B' }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "lineWidth": {
              "type": "number",
              "description": "Line width for the lines of chart, such as 4."
            },
            "startAtZero": {
              "type": "boolean",
              "default": false,
              "description": "Whether to start the axis at zero, optional, default is false."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "animated": {
          "type": "boolean",
          "description": "true for an animated GIF (bars grow, lines draw, pies sweep open) instead of a still PNG; for email, slides and chat posts. The first frame is the finished chart."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 111 lines
  • generate_liquid_chart unknown never probed

    Draw a liquid-fill gauge showing one percentage as a filled shape (goal progress, capacity used). percent is 0 to 1, e.g. 0.72. For a dial against a maximum use generate_gauge_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "percent"
      ],
      "properties": {
        "shape": {
          "enum": [
            "circle",
            "rect",
            "pin",
            "triangle"
          ],
          "type": "string",
          "default": "circle",
          "description": "The shape of the liquid chart, can be 'circle', 'rect', 'pin', or 'triangle'. Default is 'circle'."
        },
        "style": {
          "type": "object",
          "properties": {
            "color": {
              "type": "string",
              "description": "Custom color for the liquid chart, if not specified, defaults to the theme color."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "percent": {
          "type": "number",
          "maximum": 1,
          "minimum": 0,
          "description": "The percentage value to display in the liquid chart, should be a number between 0 and 1, where 1 represents 100%. For example, 0.75 represents 75%."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 79 lines
  • generate_mind_map unknown never probed

    Draw a mind map: a central topic with branches of subtopics. Data {name, children: [{name, children?}]}. For reporting lines use generate_organization_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "object",
          "required": [
            "name"
          ],
          "properties": {
            "name": {
              "type": "string"
            },
            "children": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "children": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "name"
                      ],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "children": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "description": "Data for mind map chart which is a hierarchical structure, such as, { name: 'main topic', children: [{ name: 'topic 1', children: [{ name:'subtopic 1-1' }] }, and the maximum depth is 3."
        },
        "style": {
          "type": "object",
          "properties": {
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 103 lines
  • generate_network_graph unknown never probed

    Draw a network graph of entities (nodes) and their relationships (edges): people, systems, dependencies. Data {nodes: [{name}], edges: [{source, target, name?}]}. For a step-by-step process use generate_flow_diagram. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "object",
          "required": [
            "nodes",
            "edges"
          ],
          "properties": {
            "edges": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "source",
                  "target"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "default": ""
                  },
                  "source": {
                    "type": "string"
                  },
                  "target": {
                    "type": "string"
                  }
                }
              }
            },
            "nodes": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  }
                }
              },
              "minItems": 1
            }
          },
          "description": "Data for network graph chart, such as, { nodes: [{ name: 'node1' }, { name: 'node2' }], edges: [{ source: 'node1', target: 'node2', name: 'edge1' }] }"
        },
        "style": {
          "type": "object",
          "properties": {
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 96 lines
  • generate_organization_chart unknown never probed

    Draw an organization chart of who reports to whom. Data {name, description?, children: [...]} starting from the top person; orient sets horizontal or vertical. For ideas rather than people use generate_mind_map. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "object",
          "required": [
            "name"
          ],
          "properties": {
            "name": {
              "type": "string"
            },
            "children": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "children": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "name"
                      ],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "children": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "name"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "description": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "description": {
                          "type": "string"
                        }
                      }
                    }
                  },
                  "description": {
                    "type": "string"
                  }
                }
              }
            },
            "description": {
              "type": "string"
            }
          },
          "description": "Data for organization chart which is a hierarchical structure, such as, { name: 'CEO', description: 'Chief Executive Officer', children: [{ name: 'CTO', description: 'Chief Technology Officer', children: [{ name: 'Dev Manager', description: 'Development Manager' }] }] }, and the maximum depth is 3."
        },
        "style": {
          "type": "object",
          "properties": {
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "orient": {
          "enum": [
            "horizontal",
            "vertical"
          ],
          "type": "string",
          "default": "vertical",
          "description": "Orientation of the organization chart, either horizontal or vertical. Default is vertical, when the level of the chart is more than 3, it is recommended to use horizontal orientation."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 124 lines
  • generate_pie_chart unknown never probed

    Draw a pie chart (or a donut with innerRadius, e.g. 0.6) of the parts of one whole: market share, budget split. Data [{category, value}]; best with 2 to 7 slices. For many categories or comparisons use generate_bar_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "category",
              "value"
            ],
            "properties": {
              "value": {
                "type": "number"
              },
              "category": {
                "type": "string"
              }
            }
          },
          "minItems": 1,
          "description": "Data for pie chart, it should be an array of objects, each object contains a `category` field and a `value` field, such as, [{ category: '分类一', value: 27 }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "animated": {
          "type": "boolean",
          "description": "true for an animated GIF (bars grow, lines draw, pies sweep open) instead of a still PNG; for email, slides and chat posts. The first frame is the finished chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        },
        "innerRadius": {
          "type": "number",
          "default": 0,
          "description": "Set the innerRadius of pie chart, the value between 0 and 1. Set the pie chart as a donut chart. Set the value to 0.6 or number in [0 ,1] to enable it."
        }
      }
    }
    arguments 94 lines
  • generate_radar_chart unknown never probed

    Draw a radar (spider) chart comparing items on four or more measures (products scored on price, quality, support…). Data [{name: measure, value, group?: item}]. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "value"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "group": {
                "type": "string"
              },
              "value": {
                "type": "number"
              }
            }
          },
          "minItems": 1,
          "description": "Data for radar chart, it should be an array of objects, each object contains a `name` field and a `value` field, such as, [{ name: 'Design', value: 70 }], when the data is grouped by `group`, the `group` field is required, such as, [{ name: 'Design', value: 70, group: 'Huawei' }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "lineWidth": {
              "type": "number",
              "description": "Line width for the lines of chart, such as 4."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 92 lines
  • generate_sankey_chart unknown never probed

    Draw a Sankey diagram of flows between stages, with link widths proportional to amounts (budget allocation, user journeys, energy flows). Data [{source, target, value}]. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "source",
              "target",
              "value"
            ],
            "properties": {
              "value": {
                "type": "number"
              },
              "source": {
                "type": "string"
              },
              "target": {
                "type": "string"
              }
            }
          },
          "minItems": 1,
          "description": "Date for sankey chart, such as, [{ source: 'Landing Page', target: 'Product Page', value: 50000 }, { source: 'Product Page', target: 'Add to Cart', value: 35000 }, { source: 'Add to Cart', target: 'Checkout', value: 25000 }, { source: 'Checkout', target: 'Payment', value: 15000 }, { source: 'Payment', target: 'Purchase Completed', value: 8000 }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "nodeAlign": {
          "enum": [
            "left",
            "right",
            "justify",
            "center"
          ],
          "type": "string",
          "default": "center",
          "description": "Alignment of nodes in the sankey chart, such as, 'left', 'right', 'justify', or 'center'."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 100 lines
  • generate_scatter_chart unknown never probed

    Draw a scatter plot of two numeric measures per item to show correlation or clusters (price vs rating). Data [{x, y, group?}]. To size dots by a third measure use generate_more_charts with type bubble. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "x",
              "y"
            ],
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              },
              "group": {
                "type": "string",
                "description": "Group name for the data point."
              }
            }
          },
          "minItems": 1,
          "description": "Data for scatter chart, such as, [{ x: 10, y: 15 }], when the data is grouped, the group name can be specified in the `group` field, such as, [{ x: 10, y: 15, group: 'Group A' }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 99 lines
  • generate_treemap_chart unknown never probed

    Draw a treemap: nested rectangles sized by value, for parts of a whole with a hierarchy (disk usage, spend by department and team). Data [{name, value, children?}]. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "value"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "number"
              },
              "children": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "name",
                    "value"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "value": {
                      "type": "number"
                    },
                    "children": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "name",
                          "value"
                        ],
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "number"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "minItems": 1,
          "description": "Data for treemap chart which is a hierarchical structure, such as, [{ name: 'Design', value: 70, children: [{ name: 'Tech', value: 20 }] }], and the maximum depth is 3."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 121 lines
  • generate_venn_chart unknown never probed

    Draw a Venn diagram of how sets overlap (customers of product A, B, both). Data [{sets: ['A'] or ['A','B'], value, label?}], one row per set and per overlap. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "value",
              "sets"
            ],
            "properties": {
              "sets": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Array of set names that this segment belongs to, such as ['A', 'B'] for an intersection between sets A and B."
              },
              "label": {
                "type": "string",
                "description": "Label for the venn chart segment, such as 'A', 'B', or 'C'."
              },
              "value": {
                "type": "number",
                "description": "Value for the venn chart segment, such as 10, 20, or 30."
              }
            }
          },
          "minItems": 1,
          "description": "Data for venn chart, such as, [{ label: 'A', value: 10, sets: ['A'] }, { label: 'B', value: 20, sets: ['B'] }, { label: 'C', value: 30, sets: ['C'] }, { label: 'AB', value: 5, sets: ['A', 'B'] }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 94 lines
  • generate_violin_chart unknown never probed

    Draw a violin plot: the shape of the distribution of values in each category. Data [{category, value, group?}] with one row per observation. For medians and quartiles use generate_boxplot_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "category",
              "value"
            ],
            "properties": {
              "group": {
                "type": "string",
                "description": "Optional group for the data point, used for grouping in the violin chart."
              },
              "value": {
                "type": "number",
                "description": "Value of the data point, such as 10."
              },
              "category": {
                "type": "string",
                "description": "Category of the data point, such as '分类一'."
              }
            }
          },
          "minItems": 1,
          "description": "Data for violin chart, such as, [{ category: 'Category A', value: 10 }], when the data is grouped, the 'group' field is required, such as, [{ category: 'Category B', value: 20, group: 'Group A' }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "startAtZero": {
              "type": "boolean",
              "default": false,
              "description": "Whether to start the axis at zero, optional, default is false."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "axisXTitle": {
          "type": "string",
          "default": "",
          "description": "Set the x-axis title of chart."
        },
        "axisYTitle": {
          "type": "string",
          "default": "",
          "description": "Set the y-axis title of chart."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 106 lines
  • generate_word_cloud_chart unknown never probed

    Draw a word cloud with words sized by frequency or weight (feedback themes, keywords). Data [{text, value}]. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "text",
              "value"
            ],
            "properties": {
              "text": {
                "type": "string"
              },
              "value": {
                "type": "number"
              }
            }
          },
          "minItems": 1,
          "description": "Data for word cloud chart, it should be an array of objects, each object contains a `text` field and a `value` field, such as, [{ value: 4.272, text: '形成' }]."
        },
        "style": {
          "type": "object",
          "properties": {
            "palette": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Color palette for the chart, it is a collection of colors."
            },
            "texture": {
              "enum": [
                "default",
                "rough"
              ],
              "type": "string",
              "default": "default",
              "description": "Set the texture for the chart, optional, default is 'default'. 'rough' refers to hand-drawn style."
            },
            "backgroundColor": {
              "type": "string",
              "description": "Background color of the chart, such as, '#fff'."
            }
          },
          "description": "Style configuration for the chart with a JSON object, optional."
        },
        "theme": {
          "enum": [
            "default",
            "academy",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the chart, optional, default is 'default'."
        },
        "title": {
          "type": "string",
          "default": "",
          "description": "Set the title of chart."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 85 lines
  • generate_spreadsheet unknown never probed

    Draw a table as an image, or a pivot table when rows/values are given (cross-tabulation, sums by category). Data [{...}] objects with the same fields; rows, columns and values name the fields to pivot. For an Excel file use the Excel link any chart tool returns. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": [
                "string",
                "number",
                "null"
              ]
            }
          },
          "minItems": 1,
          "description": "Data for spreadsheet, an array of objects where each object represents a row. Keys are column names and values can be string, number, or null. Such as, [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }]."
        },
        "rows": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Row header fields for pivot table. When 'rows' or 'values' is provided, the spreadsheet will be rendered as a pivot table."
        },
        "theme": {
          "enum": [
            "default",
            "dark"
          ],
          "type": "string",
          "default": "default",
          "description": "Set the theme for the spreadsheet, optional, default is 'default'."
        },
        "width": {
          "type": "number",
          "default": 600,
          "description": "Set the width of chart, default is 600."
        },
        "height": {
          "type": "number",
          "default": 400,
          "description": "Set the height of chart, default is 400."
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Value fields for pivot table. When 'rows' or 'values' is provided, the spreadsheet will be rendered as a pivot table."
        },
        "columns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Column header fields, used to specify the order of columns. For regular tables, this determines column order; for pivot tables, this is used for column grouping."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 72 lines
  • generate_gantt_chart unknown never probed

    Draw a Gantt chart (a project timeline): one bar per task from its start to its end date, optionally coloured by group or phase. Use for project plans, roadmaps and schedules. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "task",
              "start",
              "end"
            ],
            "properties": {
              "end": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ][\\d:.]+Z?)?$"
                  }
                ]
              },
              "task": {
                "type": "string",
                "maxLength": 80,
                "minLength": 1
              },
              "group": {
                "type": "string",
                "maxLength": 80,
                "minLength": 1
              },
              "start": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ][\\d:.]+Z?)?$"
                  }
                ]
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per task: {task, start, end, group?}; start and end are dates like '2026-03-01' (or numbers)."
        },
        "theme": {
          "enum": [
            "default",
            "dark"
          ],
          "type": "string",
          "description": "default (light) or dark background."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the chart."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 720)."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 480)."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 87 lines
  • generate_gauge_chart unknown never probed

    Draw a gauge (speedometer dial) for one value between a minimum and a maximum, e.g. a score of 72 out of 100. For a percentage as a filled shape use generate_liquid_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "value"
      ],
      "properties": {
        "max": {
          "type": "number",
          "description": "Top of the dial (default 100).",
          "exclusiveMinimum": 0
        },
        "min": {
          "type": "number",
          "description": "Bottom of the dial (default 0)."
        },
        "unit": {
          "type": "string",
          "maxLength": 12,
          "description": "Shown after the value, e.g. '%'."
        },
        "theme": {
          "enum": [
            "default",
            "dark"
          ],
          "type": "string",
          "description": "default (light) or dark background."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the chart."
        },
        "value": {
          "type": "number",
          "description": "The value the needle points at."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 720)."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 480)."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 57 lines
  • generate_heatmap_chart unknown never probed

    Draw a heatmap: a grid of cells coloured by value, with x and y categories (e.g. weekday × hour, product × region). For one cell per calendar day use generate_calendar_heatmap. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "x",
              "y",
              "value"
            ],
            "properties": {
              "x": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 80,
                    "minLength": 1
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "y": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 80,
                    "minLength": 1
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "value": {
                "type": "number"
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per cell: {x, y, value}; x and y are category names or numbers."
        },
        "theme": {
          "enum": [
            "default",
            "dark"
          ],
          "type": "string",
          "description": "default (light) or dark background."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the chart."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 720)."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 480)."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 82 lines
  • generate_calendar_heatmap unknown never probed

    Draw a calendar heatmap (GitHub-style contribution grid): one cell per day coloured by value. Use for daily activity over weeks or months. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "date",
              "value"
            ],
            "properties": {
              "date": {
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "value": {
                "type": "number"
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per day: {date: 'YYYY-MM-DD', value}."
        },
        "theme": {
          "enum": [
            "default",
            "dark"
          ],
          "type": "string",
          "description": "default (light) or dark background."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the chart."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 720)."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 480)."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 61 lines
  • generate_candlestick_chart unknown never probed

    Draw a candlestick (OHLC) chart of prices: open, high, low and close for each period. For a simple price trend use generate_line_chart. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "time",
              "open",
              "high",
              "low",
              "close"
            ],
            "properties": {
              "low": {
                "type": "number"
              },
              "high": {
                "type": "number"
              },
              "open": {
                "type": "number"
              },
              "time": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 80,
                    "minLength": 1
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "close": {
                "type": "number"
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per period: {time, open, high, low, close}."
        },
        "theme": {
          "enum": [
            "default",
            "dark"
          ],
          "type": "string",
          "description": "default (light) or dark background."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the chart."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 720)."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 480)."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 81 lines
  • generate_bullet_chart unknown never probed

    Draw a bullet chart: each measure as a bar against its target marker, e.g. KPIs versus goals. For headline numbers with changes use generate_kpi_card. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "category",
              "value"
            ],
            "properties": {
              "max": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "value": {
                "type": "number"
              },
              "target": {
                "type": "number"
              },
              "category": {
                "type": "string",
                "maxLength": 80,
                "minLength": 1
              }
            }
          },
          "maxItems": 5000,
          "minItems": 1,
          "description": "One row per measure: {category, value, target?, max?}."
        },
        "theme": {
          "enum": [
            "default",
            "dark"
          ],
          "type": "string",
          "description": "default (light) or dark background."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the chart."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 720)."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 480)."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        }
      }
    }
    arguments 69 lines
  • generate_more_charts unknown never probed

    Draw one of these chart types and get an image link. Set type and data as below. rose (Nightingale/polar area), radial-bar: data [{category, value}]. lollipop: data [{category, value}]. dumbbell (before/after per row): data [{category, start, end}], optional startLabel, endLabel. slope (change between two points): data [{category, before, after}], optional beforeLabel, afterLabel. bubble: data [{x, y, size, label?, group?}], optional axisXTitle, axisYTitle. chord (flows between groups): data [{source, target, value}]. circle-packing: data [{name, value, group?}]. parallel-coordinates (compare items on several measures): data [{name, <measure>: number, ...}], at least two numeric measures. tree (hierarchy): data {name, children: [{name, children: [...]}]}. population-pyramid: data [{age, group, value}] with exactly two groups (e.g. Men, Women). marimekko (100% stacked with variable widths): data [{category, group, value}]. sunburst (hierarchy as rings), icicle (hierarchy as bands): data {name, children: [{name, value} or {name, children}]}; innermost items need a value. beeswarm (every value as a dot, no overlap): data [{value, group?, label?}], optional axisXTitle. density (smoothed distribution curves): data [{value, group?}], at least 3 values, optional axisXTitle. Use the dedicated generate_* tool for common types (line, column, pie, maps…). Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "type",
        "data"
      ],
      "properties": {
        "data": {
          "description": "Rows (or a tree object for tree, sunburst and icicle) in the format listed for the type."
        },
        "type": {
          "enum": [
            "rose",
            "radial-bar",
            "bubble",
            "dumbbell",
            "lollipop",
            "slope",
            "chord",
            "circle-packing",
            "parallel-coordinates",
            "tree",
            "population-pyramid",
            "marimekko",
            "sunburst",
            "icicle",
            "beeswarm",
            "density"
          ],
          "type": "string",
          "description": "Which chart to draw; see the description for each type's data format."
        },
        "theme": {
          "enum": [
            "default",
            "dark"
          ],
          "type": "string",
          "description": "default (light) or dark background."
        },
        "title": {
          "type": "string",
          "maxLength": 200,
          "description": "Title shown above the chart."
        },
        "width": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image width in pixels (default 720)."
        },
        "height": {
          "type": "integer",
          "maximum": 2000,
          "minimum": 200,
          "description": "Image height in pixels (default 480)."
        },
        "endLabel": {
          "type": "string",
          "maxLength": 30,
          "description": "dumbbell: name of the end value, e.g. '2025'."
        },
        "afterLabel": {
          "type": "string",
          "maxLength": 30,
          "description": "slope: name of the right column, e.g. 'After'."
        },
        "axisXTitle": {
          "type": "string",
          "maxLength": 60,
          "description": "bubble, beeswarm, density: x-axis title."
        },
        "axisYTitle": {
          "type": "string",
          "maxLength": 60,
          "description": "bubble: y-axis title."
        },
        "brandTheme": {
          "type": "string",
          "maxLength": 40,
          "description": "Name of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or \"colorblind\" for colours that people with colour-vision deficiency can tell apart (anyone can use it)."
        },
        "startLabel": {
          "type": "string",
          "maxLength": 30,
          "description": "dumbbell: name of the start value, e.g. '2020'."
        },
        "beforeLabel": {
          "type": "string",
          "maxLength": 30,
          "description": "slope: name of the left column, e.g. 'Before'."
        }
      }
    }
    arguments 95 lines
  • create_living_chart unknown never probed

    Save a chart, map, dashboard or report with a fixed link that always shows its latest data. Use when the user wants a chart they will update later, embed in a page, or send to Slack/email when it changes; for a one-off image use the generate_* tools. 'chart' is the same JSON as the generate_* tools: { type, title, data, ... } (e.g. { type: 'line', data: [{ time: 'Mon', value: 3 }] }). For a report with several charts and text, send { type: 'report', title, subtitle?, blocks: [...] } with the same blocks as create_report: its fixed link is a page, with PDF and PowerPoint download links using the same report ID, and a PNG of the whole report. Returns the chart id (for update_living_chart) and its fixed link. Each call creates a new chart. Needs a connection signed in to a free account (connector URL ending in /mcp/account). Without one it draws a one-off image and says it was not saved.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name",
        "chart"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "description": "A short name, e.g. 'Weekly sign-ups'."
        },
        "chart": {
          "type": "object",
          "description": "Chart definition: type, title, data and options, as for the generate_* tools.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "stamp": {
          "type": "boolean",
          "description": "Draw the last-updated timestamp in the title."
        }
      }
    }
    arguments 27 lines
  • update_living_chart unknown never probed

    Replace the data (or the whole chart) of a chart made with create_living_chart. Its link stays the same, pages showing it update, and destinations attached to it with send_chart_on_update get a fresh copy. Sending the same data again changes nothing and sends nothing. The previous version stays in the history (list_chart_versions, restore_chart_version). For a report, send the whole report (title and blocks) as chart. Returns a confirmation with the link. Needs a connection signed in to a free account (connector URL ending in /mcp/account).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 40,
          "description": "The chart id from create_living_chart or list_my_charts."
        },
        "data": {
          "description": "The new data rows, same format as before."
        },
        "name": {
          "type": "string",
          "maxLength": 100,
          "description": "A new name for the chart."
        },
        "chart": {
          "type": "object",
          "description": "A whole new chart definition instead of only data.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "stamp": {
          "type": "boolean",
          "description": "Draw the last-updated timestamp in the title."
        }
      }
    }
    arguments 34 lines
  • list_my_charts unknown never probed

    List the user's charts that stay updated (id, name, fixed link) and their destinations (id, type, name for Slack, Teams, Discord, email, webhook). Use it to find the ids that update_living_chart, send_chart_on_update and schedule_chart need. Needs a connection signed in to a free account (connector URL ending in /mcp/account).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • add_destination unknown never probed

    Save a destination that charts can be sent to: 'slack', 'teams' or 'discord' (needs the channel's incoming webhook URL, which the user creates in that app), 'email' (the user's own confirmed address by default; on Pro and Business, give 'email' to send to a client or colleague, who must confirm by email before anything is sent), or 'webhook' (any https URL; requests are signed). Nothing is sent yet; connect a chart to it with send_chart_on_update or schedule_chart. Returns the destination id. Needs a connection signed in to a free account (connector URL ending in /mcp/account).

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "type",
        "name"
      ],
      "properties": {
        "url": {
          "type": "string",
          "maxLength": 1000,
          "description": "The incoming webhook URL (not for email)."
        },
        "name": {
          "type": "string",
          "maxLength": 80,
          "description": "e.g. '#metrics' or 'My inbox'"
        },
        "type": {
          "enum": [
            "slack",
            "teams",
            "discord",
            "email",
            "webhook"
          ],
          "type": "string",
          "description": "Where to send: slack, teams, discord, email or webhook."
        },
        "email": {
          "type": "string",
          "maxLength": 254,
          "description": "For type 'email' only: the recipient's address. Leave out to use the user's own address. Other addresses need a paid plan and the recipient's confirmation."
        }
      }
    }
    arguments 36 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 2a98d3e6713fad59.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/2a98d3e6713fad59/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/2a98d3e6713fad59/badge.svg)](https://brick.blue/agent/2a98d3e6713fad59?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.