Chartory
Server Details
Find and install React charts from your coding agent: search 132 chart types by the question your data answers (100 free and MIT), get each type's props and the JSON Schema of its data, the component files and the design tokens. No auth needed; a Chartory registry token unlocks the code of the paid types.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
search_charts (discovery by intent), get_chart_spec (props/schema), get_chart_code (install command + source files) and get_tokens (design tokens) each have a distinct role in the workflow. The only mild overlap is that get_chart_code and get_chart_spec both take a chart slug and both surface the component, so an agent might occasionally grab the wrong one first.
All four names follow a clean snake_case verb_noun pattern (search_charts, get_chart_spec, get_chart_code, get_tokens). The get_chart_* pair is predictably parallel, and search_ vs get_ correctly distinguishes discovery from retrieval.
Four tools is on the lean side but each maps to a real step of the workflow (find a chart, inspect its contract, fetch its code, theme it). Nothing feels padded or redundant; a slightly larger surface (e.g. a list/browse tool) would round it out.
The core lifecycle is covered end-to-end: search by natural-language intent, read the prop/data schema, then pull install command and source. Minor gaps remain—no dedicated way to enumerate all chart types without a search query, and licensing/key handling is only described inline rather than exposed as an operation.
Available Tools
4 toolsget_chart_codeGet a chart's codeARead-onlyInspect
The install command and the component file for one chart type, plus an example file with sample data. Paid types need a Code or Complete licence key sent as the Bearer token.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The type's slug, e.g. waterfall | |
| with | No | chart (default), its widget, or the interactive widget |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuinely useful non-annotation context: paid chart types require a Code or Complete licence key passed as the Bearer token, which is auth information an agent cannot get from the schema. It stops short of saying what happens when the key is missing or insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, and the payload description is front-loaded ahead of the licensing caveat. The first sentence is a verbless fragment, which reads slightly like a caption rather than an instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters and no output schema, the description usefully enumerates what comes back (install command, component file, example file) and covers the licence requirement. The main missing piece is how this differs from the sibling spec/token tools, which matters given the near-identical naming.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (slug and the chart/widget/interactive enum) are documented in the schema, so the schema does the heavy lifting. The description only implicitly references 'one chart type' and says nothing about the 'with' variants, so it adds no meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete artifacts returned for a single chart type: the install command, the component file, and an example file with sample data. That is specific enough to know exactly what the tool yields, though it never states a verb and does not distinguish the resource from get_chart_spec or get_tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this tool instead of get_chart_spec, get_tokens, or search_charts, and no exclusions or prerequisites beyond the licence note. Usage is only inferable from the noun phrase describing the payload.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chart_specGet a chart's specARead-onlyInspect
The component, its props, sizes and the JSON Schema of its data prop, for one chart type by slug (from search_charts). Shape the user's data to the schema.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The type's slug, e.g. waterfall |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds useful return-content context (component, props, sizes, data schema) but does not discuss errors, limitations, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no wasted words. It packs the return contents, parameter source, and usage instruction efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values, and it does so adequately by naming the component, props, sizes, and data JSON Schema. It is complete for correct invocation, though it could mention error behavior or shape details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single slug parameter is already documented in the schema. The description adds meaningful origin information by saying the slug comes from search_charts, helping the agent know where to source it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and enumerates what is returned: the component, props, sizes, and the JSON Schema of its data prop for one chart type by slug. It is clear but does not explicitly distinguish itself from siblings such as get_chart_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use a slug from search_charts, and shape the user's data to the returned schema. It does not state when not to use it or name alternatives, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tokensGet the theme tokensARead-onlyInspect
Chartory's design tokens (CSS custom properties from chartory.css) in one of the four modes, optionally filtered by a name fragment ("data", "surface", "signal"). Light is :root, dark is .dark; data-theme picks a mode for a subtree.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | The mode (default chartory-light) | |
| filter | No | Only tokens whose name contains this |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful provenance (values come from chartory.css) and mode-resolution semantics, but never says what the response looks like — flat name/value pairs, grouped object, raw CSS text — which matters since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences that front-load the resource and then the two knobs, with no filler. The CSS-selector clause is slightly jargon-heavy but it is the only place that semantics is explained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool this covers source, modes, and filtering, but with no output schema the description should say how tokens are returned (shape, whether values include fallbacks/var() references). That omission leaves a real gap for an agent composing a call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description earns more: it explains what the mode enum actually means (light = :root, dark = .dark, data-theme scopes a subtree) and gives concrete filter fragment examples ("data", "surface", "signal") that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact resource (Chartory design tokens / CSS custom properties from chartory.css), the mode dimension, and the optional name filter, so an agent knows precisely what it gets back. It doesn't explicitly name the chart-oriented siblings, but the resource is distinct enough that confusion is unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: fetch tokens when you need design tokens. There is no statement of when to prefer this over the chart siblings, or when to use one mode rather than another (the :root/.dark/data-theme note explains mechanism, not selection policy).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_chartsSearch chartsARead-onlyInspect
Find the Chartory chart types that fit a question about the user's data, in plain words ("monthly revenue against target", "where users drop off in signup"). Returns each type's slug, what it answers and its install command.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return (default 8) | |
| query | Yes | What the chart should show, in plain words | |
| freeOnly | No | Only the free types (no licence key needed) | |
| question | No | Only types that answer this question |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral detail beyond the read-only annotations by explaining that results include each chart type's slug, what it answers, and its install command. It does not describe ranking or search behavior, but with readOnlyHint=true and openWorldHint=false already covering the safety profile, this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and examples, followed by the return shape. There is no redundant text and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with full schema coverage and no output schema, the description supplies the essential return fields and the query style. It leaves out ranking or result-ordering details, which are minor but would help an agent interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents query, limit, freeOnly, and question. The description reinforces the plain-language intent of query with examples but adds little semantic detail for the other filters, so the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: "Find the Chartory chart types" and ties it to questions about the user's data. It is clear enough to distinguish search_charts from siblings that fetch code, specs, or tokens, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates the usage context: turning a plain-language question about the user's data into chart-type recommendations, with two concrete examples. It does not state when not to use it or explicitly route to get_chart_spec/get_chart_code, so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_chart_code - First observed
get_chart_spec - First observed
get_tokens - First observed
search_charts
Related MCP Connectors
Generate production-ready chart code (Recharts, Chart.js, ECharts, Plotly) from a prompt.
React + Tailwind UI components and recipes your AI coding tool can search and install.
Search, read and install agent-ready React components, screens and blocks for AI products.
Verified React chart generation: select, validate, repair, render, and inspect charts through MCP.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI agents to generate beautiful, presentation-ready charts (SVG + PNG) with zero setup, supporting various chart types and styling options.25 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to search across 340+ React UI registries, inspect component code and quality scores, compare options, detect a project's stack, and generate or execute safe transactional install plans. It provides read and write safeguards with dry-run planning and rollback.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables agents to compile a semantic chart description (data, semantic types, chart intent) into native specs for five charting libraries and headlessly render three of them to SVG or PNG, delivered inline or as signed, expiring artifact URLs. It also exposes tools for validating charts, listing chart types and themes, plus resources and prompts that supply chart-authoring and theming conventions.-
- AlicenseNot gradedqualityBmaintenanceDeterministic chart engine for AI agents. A small JSON spec renders locally to PNG or SVG with no headless browser. 47 chart types, tiled dashboards and 8 scientific plots (Kaplan-Meier, volcano, Bland-Altman, Q-Q).1AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.