mcp-tradecanvas
You can use this server as a read-only catalog and validation layer for the TradeCanvas chart library.
List built-in indicators by id/name/placement, and get full indicator details: default params, inputs, output line keys, levels, and code examples.
List drawing tools with their
type, required anchor points, pointer behavior, and available options.List options for
ChartWidget,Chart, orChartWidgetGrid, including types, docs, and allowed values.List
ChartWidgetfeature switches, optionally filtered by prefix.List chart style override keys and their value kinds, optionally filtered by prefix.
Validate an options object before use, catching unknown options, invalid values, wrong entry-point options, numeric strings, interval/feature/style/language issues, including nested options.
A complete trading chart for the web. Candlesticks to Renko, 134 indicators, 73 drawing tools, live feeds and orders on the chart, on Canvas 2D or WebGL, with no third-party dependencies. Use the full ChartWidget, or build your own interface on the headless Chart, in TypeScript, React, Vue or Svelte.
Highlights
18 chart types, 134 indicators, 73 drawing tools, indicators on indicators, alerts on lines, undo and redo.
Trading on the chart: positions with live P&L, orders and stops you drag, a paper broker or your own.
Live data from Binance, Bybit, Coinbase, Kraken and Upbit, or your own feed in about twenty lines.
Fast: a million bars panned at 60 fps with WebGL; a live tick in about a microsecond; ten minutes of 30,000 trades a second on a million bars with no memory growth (soak).
A workspace: grids of charts, layouts, bar replay, backtesting.
Yours to shape: themes, five looks, 133 switches, plugins; 30 languages; phones and apps.
Related MCP server: navigation-agent-mcp
Quick start
npm install @tradecanvas/chartimport { ChartWidget } from '@tradecanvas/chart/widget'
import { BinanceAdapter } from '@tradecanvas/chart'
new ChartWidget(document.getElementById('chart')!, {
symbol: 'BTCUSDT',
timeframe: '5m',
theme: 'dark',
adapter: new BinanceAdapter(), // live data, no API key
trading: true,
})The headless Chart takes your own bars (chart.setData(bars)) and leaves the interface to you. A source of your own is a DataFeed of two methods (getBars, subscribeBars), given as feed wherever an adapter goes; one feed serves any number of charts. For React, Vue and Svelte, @tradecanvas/react, /vue and /svelte wrap it in a component with the same props.
Documentation
Getting started · API · Indicators · Drawing tools · Realtime · Trading · Styling · Frameworks · Plugins · Phones and apps · Performance
The docs are in English, Tiếng Việt, 简体中文, 日本語, 한국어 and Español. Measurements, limits and how it is tested are on the system audit.
AI coding tools
The agent skill in skills/tradecanvas teaches coding agents the API, with examples that CI type-checks. In Claude Code:
/plugin marketplace add bonguynvan/tradecanvas
/plugin install tradecanvas@tradecanvasOther agents (Cursor, Codex, Copilot and more): npx skills add bonguynvan/tradecanvas. Without a skill, llms.txt and llms-full.txt give an assistant the docs in one file. Changing TradeCanvas itself with an agent? AGENTS.md holds the repo's rules.
The MCP server @tradecanvas/mcp looks up indicators, drawing tools, options, feature switches and style keys in the library's own catalog, and checks an options object before it is used (set it up in other clients):
claude mcp add tradecanvas -- npx -y @tradecanvas/mcpOn Windows outside WSL: claude mcp add tradecanvas -- cmd /c npx -y @tradecanvas/mcp. In Git Bash, which runs the ! commands of Claude Code on Windows, write //c: Git Bash turns /c into a path.
More
Packages:
@tradecanvas/chart(the chart and the widget),react·vue·svelte, andanalyticsfor backtests, andmcpfor coding agents.Previews: every pull request and commit on
mainis on pkg.pr.new, installable before a release.Browsers: Chrome 80+, Edge 80+, Firefox 80+, Safari 14+.
For businesses: no logo to show, nothing to apply for; the For businesses page answers an IT review. business@tradecanvas.dev
Related: bo-grid, a fast Svelte data grid for the table half of a trading desk.
Contributing: questions in Discussions, bugs in the issues, and CONTRIBUTING.md for pull requests. Security issues: SECURITY.md.
Sponsor: TradeCanvas is free and built in the open; GitHub Sponsors keeps it going.
Available Tools
7 toolsget_indicatorGet an indicatorARead-onlyIdempotent
One built-in indicator in full: its default params (what addIndicator takes), its inputs, its lines (the keys getIndicatorOutput returns per bar, which are often not the indicator id: RSI's line is value), its levels, and code that adds it and reads it. Takes the id, the short name or the full name.
Inputs: id (required).
list_drawing_toolsList drawing toolsARead-onlyIdempotent
Lists the built-in drawing tools: the type that chart.addDrawing and chart.setDrawingTool take, the number of points (anchors) each needs, how the pointer draws it, and the options it offers. Search by words of the type or name ("fib", "channel").
Inputs: query.
list_indicatorsList built-in indicatorsARead-onlyIdempotent
Lists the built-in indicators with their ids, names and where they draw (overlay: on the price pane; panel: in a pane of their own). Search by words of the id or name ("moving average", "bollinger"). Use the id with chart.addIndicator(id, params); get_indicator has the params and line keys.
Inputs: query, placement.
list_optionsList the options of an entry pointARead-onlyIdempotent
Lists the options that new ChartWidget(el, options), new Chart(el, options) or new ChartWidgetGrid(el, options) take: each name, its TypeScript type, its doc, and the values it allows where it allows only some. Search by words of the name or doc.
Inputs: target (required), query.
list_style_keysList chart style keysARead-onlyIdempotent
Lists the style keys of the chart's look and the kind of value each takes (color, boolean, lineStyle: 'solid' | 'dashed' | 'dotted', width: pixels up to 20). They go in Chart's overrides option or chart.applyOverrides({...}). Narrow by a prefix such as 'grid.' or 'series.candlestick.'.
Inputs: prefix.
list_widget_featuresList ChartWidget feature switchesARead-onlyIdempotent
Lists the names ChartWidget's features option takes (every switch is on unless set false). A name without a dot turns a whole capability off ('alerts', 'hotkeys'); a dotted name, one place ('toolbar.screenshot', 'menu.chart.settings'). Narrow by a prefix.
Inputs: prefix.
validate_optionsCheck an options objectARead-onlyIdempotent
Checks an options object before it goes to new ChartWidget, new Chart or new ChartWidgetGrid: unknown option names (with the one likely meant, and where an option of another entry point belongs), values outside the allowed ones, numbers given as strings, intervals, feature switch names, style override keys and values, and languages, nested options included. Write functions and adapters as strings; they pass.
Inputs: target (required), options (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool targets a clearly distinct resource or action: indicator discovery has separate list and get tools, while drawing tools, constructor options, widget features, style keys, and option validation each cover a different area. The descriptions explicitly distinguish the option-related tools, so an agent can tell them apart.
All tool names follow a consistent snake_case verb_noun pattern: list_indicators, get_indicator, list_drawing_tools, list_options, list_widget_features, list_style_keys, validate_options. The single get_ tool is the standard counterpart to its list_ tool.
Seven tools is well-scoped for a chart-library discovery and validation server. Each tool earns its place by covering a distinct lookup or validation need without bloating the surface.
The set covers the main discovery workflows: indicators, drawing tools, constructor options, widget features, style keys, and option validation. Minor gaps exist, such as no dedicated get_drawing_tool detail tool and no validator for indicator params or drawing-tool options, but agents can largely work around these using the list tools.
Maintenance
Related MCP Connectors
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
MCP server for stocksense-ai documentation, generated by doc2mcp.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for accessing curated awesome list documentation
Related MCP Servers
- AlicenseAqualityDmaintenanceA read-only MCP server that provides LLMs with introspection data and documentation for the Freqtrade codebase. It enables AI tools to access class signatures, method details, and configuration schemas to assist in writing more reliable trading strategies.1319 PyPI18GPL 3.0
- FlicenseNot gradedqualityDmaintenanceA minimal MCP server providing a normalized API for code navigation and repository inspection through tools like symbol searching and call tracing. It enables AI agents to perform structured analysis of codebases by mapping endpoints, inspecting file trees, and tracing symbol relationships.3-
- AlicenseAqualityDmaintenanceA type-safe MCP server that enables AI agents to control TradingView Desktop via Chrome DevTools Protocol, allowing chart state reading, symbol/timeframe changes, and OHLCV data fetching.1193 npm1MIT
- AlicenseAqualityDmaintenanceMCP server that indexes your codebase's public API at startup and serves it via compact tool responses, saving tokens vs reading source files.533 PyPI21MIT