Reference

Tools available from the Grunt MCP Server

This page describes the public chart, table, and asset tools. Call tools/list on the MCP endpoint you use to retrieve its available tools and current input schemas.

Pass the exact name from that response as params.name in tools/call. Use the tool's inputSchema for the complete set of fields and supported values. Refresh cached definitions when you reconnect or change endpoints.

#Chart tools

ToolPurpose
create_or_update_bar_chartCreate or update bar and column charts
create_or_update_line_chartCreate or update line and index charts
create_or_update_area_chartCreate or update area and 100% area charts
create_or_update_waterfall_chartCreate or update waterfall charts
create_or_update_combined_chartCreate or update charts that combine bar, column, and line series
create_or_update_pie_or_donut_chartCreate or update pie and donut charts
create_or_update_scatter_or_bubble_chartCreate or update scatter and bubble charts
create_or_update_mekko_chartCreate or update Mekko and Marimekko charts
create_or_update_dumbbell_chartCreate or update dumbbell charts

Each chart tool accepts a chart definition and an optional assetId:

  • Omit assetId to create an asset.
  • Include assetId to update the existing asset.
  • Pass rules and annotations as part of the chart definition.

#Example: create a column chart

After connecting and authenticating, send this JSON-RPC body to your MCP endpoint with method set to tools/call:

{
  "jsonrpc": "2.0",
  "id": "2",
  "method": "tools/call",
  "params": {
    "name": "create_or_update_bar_chart",
    "arguments": {
      "assetName": "Quarterly revenue",
      "chart": {
        "data": [
          ["", "Q1", "Q2"],
          ["Revenue", 120, 150]
        ],
        "orientation": "vertical",
        "stackingMode": "clustered"
      }
    }
  }
}

The first row names the categories. Each following row contains a series name and its values. For a new bar or column chart, supply data, orientation, and stackingMode. To update this chart later, add the returned assetId to arguments alongside chart.

#Table tools

ToolPurpose
create_or_update_tableCreate or update formatted tables and visual grids
search_visual_assetsFind valid built-in icons and flag country codes for table settings

The create_or_update_table tool accepts a table definition with required cells and optional settings. It supports formatting, conditional rules, merged cells, row and column sizing, icons, gauges, shapes, flags, images, logos, and in-cell charts. Include an assetId to update an existing table.

Use search_visual_assets before adding built-in icons or flags. It accepts a query, an asset type of all, icon, or flag, and a result limit from 1 to 50.

#Asset tools

ToolPurpose
fetch_latest_assetLoad the latest version and preview of a chart or table
inspect_objectRead an asset's data, structure, settings, rules, and styles
get_project_changesCompare a known assetCommit with the latest asset version
create_asset_linkCreate an additional permanent view link or an edit link for an existing asset

Use inspect_object before an exact update when you need the current data values, indexes, settings, or rule configuration.

#Share an asset

Call create_asset_link with assetId and an optional permission:

  • view (default) allows access to the rendered image, SVG, and underlying data.
  • edit grants edit access and allows the Grunt PowerPoint add-in to load the complete model for local editing. It does not convert the asset into a built-in PowerPoint chart or automatically publish deck edits to the cloud.

The tool returns assetId, latestCommit, linkId, permission, and assetUrl in structuredContent. The assetUrl returns a JSON manifest. Follow links.svg.href for the image, links.export.href for object export, or links.data.href for data. Edit manifests also include links.project.href for the complete Grunt model. Use these returned URLs instead of constructing delivery URLs yourself.

When embedding an asset in PowerPoint, create one fresh edit link per asset per deck. Reuse it for repeated placements within that deck.

#Common response fields

Chart and table creation or update tools return:

  • structuredContent.assetId
  • structuredContent.assetCommit
  • structuredContent.exportGuideUrl
  • structuredContent.warnings (when present)

They also return a PNG preview of the rendered asset.

When you create an asset, the tool also attempts to create a permanent view link. On success, structuredContent includes assetUrl, linkId, and permission. If link creation fails, it includes linkError; the asset has still been created. Updating an existing asset returns its new assetCommit without creating another link.

fetch_latest_asset returns the current assetId, assetCommit, exportGuideUrl, and preview.

inspect_object returns the inspected components and, when available, workbook data. get_project_changes returns a structured description of changes since the supplied assetCommit.

#Input validation rules

  • Tool schemas reject unknown properties
  • Typed settings must use a supported discriminator, such as annotationType, ruleType, or axisType
  • Invalid schemas return MCP tool errors

#Handle tool errors

Check both JSON-RPC errors and the tool result's isError field. An HTTP success response does not by itself mean the tool succeeded.

If a call reports an unknown tool, compare params.name with the current tools/list response from the same endpoint. Unknown-tool failures can also be reported as an internal error with a reference ID. See troubleshooting before changing permissions or retrying the request.