Back to home
Crypto

The Pro Chart’s WebMCP Toolkit Grew From 8 Tools to 21: Draw, Compare, Export, Save, and Run Four Charts at Once

Coinranking
Coinranking
Pro Chart Coinranking WebMCP

Category: AI · Published September 2026

In July we taught the Pro Chart to speak WebMCP. Eight tools: five to read the chart, three to change it. At the bottom of that post we listed what was still missing — drawing, comparisons, export, share links, saved charts — and said it was coming.

It has come. All of it, plus a few things we hadn’t promised. The Pro Chart now exposes 21 WebMCP tools, and there is no longer a category of thing you can do with a mouse on the chart that an agent in your browser can’t do too.

This post is the updated map. If you read the July one, the short version is: everything we said was coming shipped, and the chart also gained viewport control, name resolution, and multi-chart layouts along the way.

What changed since July, in one table

July 2026Now
Tools821
Read the chartview, stats, series, drawings, history+ viewport, saved charts, page layout
Change settingsconfigure, navigate, undo/redo+ zoom and pan
Draw on itlines, rectangles, circles, text, pins — with grouping, restacking, batch edits
Compareother coins, categories, or the global market as overlays
Get it outCSV in the result, or PNG/CSV to a file or the clipboard
Sharea URL that reproduces the exact view, or the device’s share sheet
Savesave, save as, rename, delete, discard — to your account
Find things by nameresolve_subject turns “Ethereum” or “DeFi” into an identifier
Multi-chart1, 2 side by side, 2 stacked, or a 2×2 grid, with asset and time sync

The rules from July haven’t changed. The tools run inside your browser session, as you. If something needs Coinranking Elite when you click it, it needs Elite when an agent calls it. Every change goes through the same code path as a click, lands in the same undo stack, and shows up in the same URL.

How to use it (as a person)

Open any Pro Chart page in Chrome with a WebMCP-aware assistant and talk to it. Things that were impossible in July and work today:

  • “Draw a horizontal line at the all-time high and label it.”
  • “Put a pin on the halving date.”
  • “Compare this against Ethereum and the DeFi category.”
  • “Give me the last 30 days as CSV.”
  • “Save this as ‘BTC weekly, log scale’ — actually, rename it to ‘BTC weekly’.”
  • “Show me BTC price next to BTC market cap, and keep the time ranges in sync.”
  • “Zoom into the first week of August.” (And, because zooming is not a settings change: “now reset the view.”)
  • “Get me a link to exactly this.”

If the agent can’t do something, it will tell you why — not because it guessed, but because the chart told it why. More on that below.

For AI agents reading this

The page registers its tools on document.modelContext, falling back to navigator.modelContext. Start with coinranking_prochart_get_view. It is still the grounding call, and it now reports more than it did: the page layout, whether the chart is saved and has unsaved edits, and for every chart kind and option value that isn’t selectable, the reason.

Read tools (8)

ToolWhat it returns
get_viewThe active chart’s kind, subject, available kinds, every option with its current value, default, and selectable values (with reasons for the rest), entitlements, shareable URL, save state, and layout.slotCount.
get_statsHigh, low, average, first and last per series, with timestamps of the high and low. Exact — use these to anchor drawings.
get_seriesThe plotted { time, value } points, downsampled by default (maxPoints 2–500, default 100). Downsampling keeps extremes and the true high/low come back separately regardless.
get_viewport (new)The time window on screen, the full loaded range, the value-axis bounds, and whether anyone has panned or zoomed. Call it before reading or drawing: get_series describes the loaded data, not what the viewer is looking at.
list_drawingsEvery shape with its points in data space and an id. Each now carries onScreen, so you can tell a missing drawing from one that is just outside the current zoom.
list_historyThe undo/redo stack, newest first, with labels and indices.
list_charts (new)The viewer’s saved charts, newest first — uuid, name, kind, subject. Needs a signed-in account.
list_slots (new)The whole page: layout, active slot, sync state, and what each chart shows.

Write tools (13)

ToolWhat it does
configurePatch options — timePeriodintervalchartTypescaleindicatorscurrencytimezonevolumeEnabledvolumeDisplayhighLowEnabled. One patch, one undo step, all or nothing. Constrained pairs are judged together, so 7d + 1day is accepted in one call even if get_view said 1day was unavailable while the period was still 24h.
navigateSwitch kind (immediate) or subject (returns a URL to open, since it needs a page load).
set_viewport (new)Zoom or pan to a fromTimetoTime window, or reset. View-only: not in the URL, no undo step, and cleared by the next configure or navigate. Set your options first, then the window.
historyundoredo, or jump to an index from list_history.
resolve_subject (new)A name, ticker, category, or contract address → the identifier compare and navigate take. Nothing else accepts a name; a guessed uuid plots an unnamed line rather than failing, so resolve first.
compare (new)Add or remove an overlay: a coin uuid, global, or category:<slug>. One target per call, each its own undo step. Refused with the reason if the overlay doesn’t fit this kind, is the chart itself, is a duplicate, or exceeds the account’s overlay limit.
draw (new)See below.
export (new)csv or pngreturn (CSV only), download, or clipboard. CSV comes straight back in the result. Download and clipboard prompt the viewer, because browsers only allow those inside a user gesture.
share_link (new)A URL that reproduces the chart exactly — kind, subject, range, styling, drawings. Set share: true to open the device’s share sheet instead (prompts the viewer).
save (new)savesave_asrenamedeletediscard. First save needs a name. Delete asks the viewer to confirm. Saving someone else’s chart makes your own copy.
set_layout (new)"1""2h""2v", or "4". Growing fills new slots with copies of the active chart; shrinking drops the highest-numbered ones.
set_active_slot (new)Point every other tool at chart n (numbered in reading order from 0). Only one chart is active at a time.
set_sync (new)asset mirrors subject and overlays across charts (each keeps its own kind — BTC price beside BTC market cap). time mirrors period, interval, timezone, and pan/zoom. Turning either on applies the active chart’s settings everywhere immediately.

Drawing, in detail

draw is the biggest single addition, so it gets its own section.

Shapes: line (2 points), rectangle and circle (2 opposite corners, or 4 for an exact quad), text (1 anchor for a box centred on it, or 4 to place the box yourself), time-pin (a labelled vertical guide — “halving”, “listed here”), value-pin (a labelled horizontal guide — “entry”, “all-time high”).

Actions: addremoveupdate (move, restyle, or retext by id), duplicatereorder (to front or back), groupungroupclear.

Coordinates are data, not pixels. time is a Unix-millisecond timestamp and value is on the chart’s own y-axis. Get them from get_stats (exact) or get_series. Positions are absolute, not deltas — read the current ones from list_drawings before moving something.

Style is optional on add and partial on updatecolorthicknessdash (solid / dashed / dotted), fill (none / light / solid, for rectangles and circles), and fontSize / fontFamily for text.

Ids are stable for as long as the shape exists and don’t shift when a neighbour is removed. They are per-session, so re-read them after a reload. Pass ids (plural) to removeduplicatereordergroup, or ungroup and the whole batch is one undo step — and if any id is stale, nothing happens rather than half of it.

Order matters. Set the kind and time range before drawing: switching kind discards drawings, because a shape anchored to price means nothing on a market-cap scale. Time-pins are the exception and survive, since a date means the same thing on every kind.

Multi-chart layouts

This is the part we didn’t promise in July.

A Pro Chart page can now be one chart, two side by side, two stacked, or a 2×2 grid. Every other tool acts on the active chart, so the pattern is: set_layout → list_slots → set_active_slot → navigate/configure/draw → repeat. get_view tells you when there are other charts on the page (layout.slotCount > 1) so you don’t describe one chart and think you’ve described the page.

Sync is two independent toggles. With asset on, charts follow the active chart’s subject and overlays while keeping their own kind. With time on, they share period, interval, and timezone, and pan and zoom together. The crosshair is mirrored across charts either way.

Not every layout is available to every viewer. A layout the viewer can’t use is refused with the page left as it was — read the result rather than assuming it applied.

The design rules, restated

The eight tools in July followed a few principles, and the thirteen since follow the same ones.

  • Refusals carry reasons. Wrong kind, needs Elite, overlay limit reached, invalid value, not signed in, chart hasn’t loaded. You get a status code and a sentence, not a silent no-op.
  • Patches are atomic. A configure call or a batch draw either fully applies or doesn’t apply at all, and it’s one entry in the undo stack.
  • Anything a browser gates behind a user gesture prompts the viewer. Downloading a file, copying to the clipboard, opening the share sheet, deleting a saved chart. The tool asks; if the viewer declines, you get cancelled.
  • Nothing is invented. Tools that take identifiers don’t accept names, and there’s a tool to convert one to the other. The tools that return third-party content (get_viewresolve_subjectcomparenavigate) are annotated untrustedContentHint so a careful client treats coin names as data, not instructions.
  • Read first. get_view grounds everything. get_viewport before you draw. list_drawings before you move. list_slots before you assume there’s one chart.

No browser? The URL still works

Nothing here replaces the URL grammar. The chart’s entire state — including drawings and comparisons — still lives in the query string, documented in section 12 of coinranking.com/llms-full.txt. An agent with no browser can compose a full view as a link and hand it to a person. share_link is, in fact, just the chart writing that URL for you.

What’s here today (and what’s next)

All 21 tools are live on every Pro Chart page. The directory listing at webmcp.com/sites/coinranking.com shows 17 at the time of writing; the four layout tools are newer than its last crawl.

We’re not going to end with a promise list this time — the July one is fully paid off. If there’s something you can do to the chart by hand that an agent can’t, that’s a bug, and we’d like to hear about it.

No MCP server to install, no API key, nothing to configure. Open the chart, and ask.



Stay Updated

Join 30,000+ readers. Get the latest crypto news, analysis, and insights delivered to your inbox weekly. No spam, unsubscribe anytime.