vvk-charts-mcp
Provides chart generation capabilities using Plotly, including line, bar, pie, scatter, area charts and combined dashboards with customizable themes and export to PNG, SVG, or base64.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vvk-charts-mcpCreate a line chart of monthly sales for the last quarter."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vvk-charts-mcp
Documentation language:
English:
README.mdRussian:
README_ru.md
Modern Python MCP server for rendering charts and diagrams (line, bar, pie, scatter, area, and combined dashboard) with customizable themes and export to PNG/SVG/base64.
Table of contents
Related MCP server: mcp-plots
Features
MCP tools for single charts and mixed dashboards.
Terminal chart tools with ANSI rendering and monochrome fallback.
Modern Plotly styling with full theme customization.
Works with multi-series and larger datasets.
Export formats:
png,svg,base64.Interactive CLI test client with predefined templates.
Quick start
Install from GitHub with uvx:
uvx install git+https://github.com/valderan/vvk-charts-mcp.gitRun MCP server:
uvx run vvk-charts-mcpRun interactive test client:
uvx run vvk-charts-cliThe CLI asks what to draw, where to save, output format, and image size.
Tip: set output mode to terminal in vvk-charts-cli to preview console dashboards.
MCP tools
Tool | Purpose |
| Lists available image/terminal themes |
| Trends over time |
| Category comparison |
| Part-to-whole split |
| Correlation and bubble plots |
| Stacked/cumulative composition |
| Multiple chart types in one image |
| ANSI/mono chart output for terminal clients |
| Multi-panel terminal dashboard as plain text |
Common options supported by all tools:
theme_preset,theme,title,width,heightformat(png,svg,base64)filename,save_to_disk
Image tools always return chat preview (ImageContent).
To save files, set save_to_disk: true and configure OUTPUT_DIR in MCP env.
Theme presets
Use list_theme_presets to get all available theme names at runtime.
Image theme presets:
clean_light(default)dark_corporatepastel_startupmedical_monitor
Terminal theme presets:
dark_corporate_cli(default)pastel_startup_cli
Example request:
{
"tool": "list_theme_presets",
"arguments": {}
}Combined dashboard payload example
{
"title": "Marketing Dashboard",
"rows": 1,
"cols": 2,
"theme_preset": "dark_corporate",
"format": "png",
"save_to_disk": true,
"filename": "combined_dashboard",
"panels": [
{
"type": "line",
"row": 1,
"col": 1,
"title": "Revenue Trend",
"x_label": "Month",
"y_label": "k USD",
"data": [
{
"name": "Revenue",
"x": ["Jan", "Feb", "Mar", "Apr"],
"y": [120, 132, 148, 160]
}
],
"options": {
"line_shape": "spline"
}
},
{
"type": "pie",
"row": 1,
"col": 2,
"title": "Budget Split",
"data": [
{
"labels": ["Search", "Social", "Email"],
"values": [45, 35, 20]
}
],
"options": {
"hole": 0.45
}
}
]
}Terminal chart payload example
{
"tool": "create_terminal_chart",
"arguments": {
"type": "line",
"title": "Revenue Trend (CLI)",
"x_label": "Month",
"y_label": "k USD",
"theme": "dark_corporate_cli",
"use_color": true,
"force_mono": false,
"raw_output": true,
"data": [
{
"name": "Revenue",
"x": ["Jan", "Feb", "Mar", "Apr", "May"],
"y": [120, 132, 148, 160, 178]
}
]
}
}raw_output: true is recommended for terminal clients: tool returns only chart text (no JSON wrapper).
Image save behavior (OUTPUT_DIR)
save_to_disk: false(default): no file is written, preview is returned to chat.save_to_disk: trueandOUTPUT_DIRis set: file is saved only intoOUTPUT_DIR.save_to_disk: trueandOUTPUT_DIRis not set: no error, preview only (saved=falsein metadata).output_pathis not supported.
Example MCP config fragment:
{
"mcp": {
"vvkcharts": {
"type": "local",
"enabled": true,
"command": ["uvx", "--from", "git+https://github.com/valderan/vvk-charts-mcp.git", "vvk-charts-mcp"],
"env": {
"OUTPUT_DIR": "./output"
}
}
}
}Demo gallery
AI presets (skill and agent)
Repository includes reusable AI presets in ai/:
ai/vvk-charts-skill.md- skill instructions for chart payload building.ai/vvk-charts-agent.md- chart-specialized subagent profile.
Use whichever workflow is more convenient.
OpenCode setup (detailed)
1) Add this MCP server
Create or edit opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"vvkcharts": {
"type": "local",
"enabled": true,
"command": [
"uvx",
"--from",
"git+https://github.com/valderan/vvk-charts-mcp.git",
"vvk-charts-mcp"
]
}
}
}2) Install as an OpenCode skill
mkdir -p .opencode/skills/vvk-charts-mcp
cp ai/vvk-charts-skill.md .opencode/skills/vvk-charts-mcp/SKILL.md3) Install as an OpenCode agent
mkdir -p .opencode/agents
cp ai/vvk-charts-agent.md .opencode/agents/vvk-charts.md4) Verify
Start
opencodein this repository.Ensure
vvkcharts_*tools are visible.Test prompt:
Build a monthly revenue line chart and save as png in ./output using vvkcharts.
References:
Codex setup (detailed)
Codex-compatible clients may vary, but this flow works in MCP-enabled environments.
1) Register MCP server
uvx --from git+https://github.com/valderan/vvk-charts-mcp.git vvk-charts-mcpTypical JSON shape used by many clients:
{
"mcpServers": {
"vvkcharts": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/valderan/vvk-charts-mcp.git",
"vvk-charts-mcp"
]
}
}
}2) Reuse skill and agent presets
Use
ai/vvk-charts-skill.mdas a reusable prompt template.Use
ai/vvk-charts-agent.mdas a dedicated chart profile/system prompt.
3) Verify
Run a request like:
Use vvkcharts tools to generate a bar chart and save it to ./output/sales-q1.png.
Local development
uv sync
uv run ruff check .
uv run mypy srcRepository
Русская версия документации: README_ru.md
Available Tools
9 toolscreate_area_chartB
Создаёт диаграмму с областями с поддержкой стекинга. Возвращает base64 изображение или путь к файлу.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Массив серий данных | |
| stack | No | Складывать области | |
| theme | No | ||
| title | No | ||
| width | No | ||
| format | No | base64 | |
| height | No | ||
| opacity | No | ||
| x_label | No | ||
| y_label | No | ||
| filename | No | area_chart | |
| normalize | No | Нормализовать к 100% | |
| save_to_disk | No | Сохранять файл на диск в директорию из env OUTPUT_DIR | |
| theme_preset | No | Название базовой темы оформления | clean_light |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the disclosure burden. It does reveal that the tool returns a base64 image or a file path and supports stacking, which is useful. However, it omits behavioral details like saving to disk, output format resolution, and other side effects controlled by parameters.
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 a single sentence with no filler and is front-loaded with the core purpose. Every phrase earns its place, making it highly concise for a tool description.
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?
Given 14 parameters, nested data objects, no output schema, and no annotations, a one-sentence description is not enough for an agent to use the tool correctly. Important context about parameter behavior, output mode choices, theme presets, and file-saving behavior is missing.
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 description coverage is only 36%, so the description needs to compensate, but it barely does. It only hints at stacking and at output via base64 or file path, leaving most of the 14 parameters—data structure, themes, labels, dimensions, normalization, opacity—without meaningful explanation.
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 clearly identifies the tool as creating an area chart and adds the distinguishing feature of stacking support. It names the specific chart type, which helps separate it from line, bar, pie, and scatter chart siblings, though it does not explicitly state why this chart type is chosen over others.
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?
No guidance is given on when to use this tool versus the sibling chart-creation tools. The mention of stacking implies a possible use case, but there are no explicit conditions, exclusions, or comparisons to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_bar_chartB
Создаёт столбчатую диаграмму с поддержкой группировки и стекинга. Возвращает base64 изображение или путь к файлу.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Массив серий данных | |
| theme | No | Тема оформления | |
| title | No | Заголовок графика | |
| width | No | ||
| format | No | base64 | |
| height | No | ||
| barmode | No | group | |
| x_label | No | Подпись оси X | |
| y_label | No | Подпись оси Y | |
| filename | No | bar_chart | |
| orientation | No | v - вертикальная, h - горизонтальная | v |
| save_to_disk | No | Сохранять файл на диск в директорию из env OUTPUT_DIR | |
| theme_preset | No | Название базовой темы оформления | clean_light |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full disclosure burden. It usefully discloses the return form (base64 image or file path) and the grouping/steacking modes, but remains silent on the disk-write side effect exposed via save_to_disk/OUTPUT_DIR, theme preset behavior, and any error or edge-case semantics. Partial disclosure, so a 3 is fair.
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 sentence, purpose front-loaded, output format second, zero filler. Every word earns its place, and the structure lets an agent grasp the core function within a second.
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 tool with 13 parameters, nested data series, 4 enums, and 8 sibling chart tools, a two-sentence description is thin. It does not explain when a bar chart fits the data, how theme_preset relates to the list_theme_presets sibling, whether the return is a path or base64 depending on save_todisk, or the side effect of writing to OUTPUT_DIR — and there is no output schema to fill those gaps.
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 description coverage is 62%, so the schema already documents most parameters. The description adds meaning for two undocumented ones — 'grouping and stacking' maps to barmode and 'base64 или путь к файлу' maps to format/save_todisk — but it does not systematically cover width, height, filename, or the exact interplay of barmode and orientation. At mid coverage with partial compensation, the baseline 3 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 specifies a concrete verb-resource pair ('Создаёт столбчатую диаграмму' — creates a bar chart) and names distinctive capabilities (grouping and stacking) plus the return form. It distinguishes itself from chart-type siblings (line, pie, scatter, area) by virtue of the explicit chart type, though it never names a sibling explicitly.
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?
No guidance is given on when to choose a bar chart over create_line_chart, create_pie_chart, create_scatter_chart, or the terminal/dashboard variants. There are no exclusions, no alternatives named, and no data-shape heuristics; the only implied context is the сhart type itself, which the name already conveys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_combined_dashboardB
Создаёт комбинированный дашборд из нескольких графиков и диаграмм на одном изображении.
| Name | Required | Description | Default |
|---|---|---|---|
| cols | No | ||
| rows | No | ||
| theme | No | Тема оформления | |
| title | No | Общий заголовок дашборда | |
| width | No | ||
| format | No | base64 | |
| height | No | ||
| panels | Yes | Массив панелей дашборда | |
| filename | No | combined_dashboard | |
| save_to_disk | No | Сохранять файл на диск в директорию из env OUTPUT_DIR | |
| shared_xaxes | No | ||
| theme_preset | No | Название базовой темы оформления | clean_light |
| vertical_spacing | No | ||
| horizontal_spacing | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It only states that an image is created and does not disclose side effects like save_to_disk writing to OUTPUT_DIR, output format behavior, return value, or prerequisites for panels. This is a meaningful gap for a tool that can persist files.
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 a single front-loaded sentence with no filler or repetition. However, given the tool has 14 parameters and nested objects, the extreme brevity borders on under-specification, though the structure itself is clean.
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?
The description is insufficient for a complex tool with no output schema, no annotations, and a deeply nested panels array. Critical context is missing: how panels must be arranged, what output formats are possible, whether a file is saved, and what the return value is.
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 description coverage is low (~36%), and the description adds no parameter-level meaning. It does not explain the required panels structure, row/col coordinates, format options, theme_preset values, or spacing parameters, so it fails to compensate for the schema gaps.
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?
Description uses a specific action ('Создаёт комбинированный дашборд') and resource ('из нескольких графиков и диаграмм на одном изображении'), clearly distinguishing it from sibling single-chart tools. It tells the agent exactly what the tool produces.
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?
The description implies use when multiple charts/diagrams need to be combined, but it does not explicitly state when to choose this over single-chart siblings or mention alternatives. There is no exclusion like 'for a single chart use create_line_chart instead', so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_line_chartB
Создаёт линейный график с поддержкой множественных серий данных. Возвращает base64 изображение или путь к файлу.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Массив серий данных | |
| theme | No | Тема оформления (кастомизация) | |
| title | No | Заголовок графика | |
| width | No | Ширина изображения | |
| format | No | Формат вывода | base64 |
| height | No | Высота изображения | |
| x_label | No | Подпись оси X | |
| y_label | No | Подпись оси Y | |
| filename | No | Имя файла | line_chart |
| line_mode | No | lines+markers | |
| line_shape | No | linear | |
| save_to_disk | No | Сохранять файл на диск в директорию из env OUTPUT_DIR. По умолчанию false (только preview для чата). | |
| theme_preset | No | Название базовой темы оформления | clean_light |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the main behavioral outcome: the tool returns a base64 image or a file path. However, it does not mention disk-writing side effects, the default save_to_disk=false behavior, or the OUTPUT_DIR dependency; those are only stated in the schema.
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 a single compact sentence that states the core purpose and the return contract without filler. It is front-loaded and easy to parse, though slightly sparse for a tool with 13 parameters.
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 complex 13-parameter tool with nested objects and no output schema, the description is minimally sufficient: the schema fills in most parameter details, and the description states the return format. However, it lacks guidance on when to choose this chart type, how to request a file vs. a preview, and what the output structure looks like when returning a path.
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 description coverage is high (~85%), so the baseline is appropriate. The description adds the useful fact that multiple series are supported and that output can be base64 or a file path, but it does not need to detail individual parameters because the schema already documents them well.
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 clearly names the operation ('Создаёт линейный график') and the resource, and adds the key capability of multiple data series. It does not explicitly distinguish itself from sibling chart tools, though the 'line chart' resource is fairly self-evident without opening the schema.
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?
No guidance is given about when to use this tool versus alternatives like create_bar_chart, create_scatter_chart, or create_area_chart. The description does not mention common use cases or exclusions, leaving the choice entirely to the agent based on the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pie_chartB
Создаёт круговую диаграмму с поддержкой doughnut. Возвращает base64 изображение или путь к файлу.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Данные для диаграммы | |
| hole | No | Размер отверстия (0 = pie, >0 = doughnut) | |
| theme | No | Тема оформления | |
| title | No | Заголовок графика | |
| width | No | ||
| format | No | base64 | |
| height | No | ||
| filename | No | pie_chart | |
| textinfo | No | label+percent | |
| save_to_disk | No | Сохранять файл на диск в директорию из env OUTPUT_DIR | |
| theme_preset | No | Название базовой темы оформления | clean_light |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only mentions creation and return format. It does not disclose the possibility of writing to disk via save_to_disk, effects of format and filename, or behavior around the output directory, which are material for an agent invoking the tool.
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 short, front-loaded sentences with no filler or repetition. It states the core function and the key output modes 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?
Given 11 parameters, nested required data, no annotations, and no output schema, the description is far too sparse to fully guide invocation. It omits practical details about data shape, output formats beyond base64/path, disk side effects, theme presets, and chart text settings.
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?
The description adds only high-level meaning by mentioning doughnut support and base64/file-path output, which loosely map to hole and format. It does not explain the required nested data structure, colors, themes, sizes, textinfo, or save behavior, and schema coverage is only 55%, so the description does not compensate for the undocumented parameters.
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 clearly states the tool's primary action ('Создаёт круговую диаграмму') and its unique doughnut capability, distinguishing it from line, bar, scatter, and area chart siblings. It also specifies the two return modes: base64 image or file path.
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?
The description implies usage when a pie or doughnut chart is needed, which is enough to differentiate it from sibling chart tools by chart type. However, it offers no explicit guidance on when not to use it or which alternative to prefer, leaving selection mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_scatter_chartA
Создаёт точечный график с поддержкой пузырьковых диаграмм. Возвращает base64 изображение или путь к файлу.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Массив серий данных | |
| theme | No | ||
| title | No | ||
| width | No | ||
| format | No | base64 | |
| height | No | ||
| x_label | No | ||
| y_label | No | ||
| filename | No | scatter_chart | |
| show_line | No | Показывать линии между точками | |
| save_to_disk | No | Сохранять файл на диск в директорию из env OUTPUT_DIR | |
| theme_preset | No | Название базовой темы оформления | clean_light |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It does disclose output behavior (base64 image or file path) and bubble support, but says nothing about disk-saving side effects, data prerequisites, or what 'bubble' requires. Partial transparency, so a 3.
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 short sentences front-load the core action and result without wasted words. Ideal length for a simple chart-creation tool.
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?
Despite 12 parameters and no output schema, the description is minimal. It omits usage context, the relationship between save_to_disk/format and the promised return value, and how to enable bubble sizing. The schema partially fills gaps, but the overall package is not complete enough for an agent to confidently call this tool.
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 description coverage is only 33%, and the description adds no parameter-level meaning. It doesn't explain that bubble size is controlled via marker.size, how format relates to return type, or what data must look like beyond what the schema already shows. The description therefore fails to compensate for the undocumented parameters.
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 states a clear verb (Создаёт/creates) and resource (scatter chart), and explicitly notes bubble chart support, which differentiates it from sibling line/bar/pie chart tools. It also gives the return type, making the tool's core function unambiguous.
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?
No explicit when-to-use guidance or comparison with alternatives. Usage with respect to sibling tools is only implied by the tool name and the generic chart-type wording, so an agent gets no help choosing between scatter and line or bar charts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_terminal_chartC
Рисует график для консоли (ANSI с авто-fallback в монохром).
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Серии данных | |
| type | Yes | Тип терминального графика | |
| theme | No | ||
| title | No | ||
| width | No | ||
| height | No | ||
| x_label | No | ||
| y_label | No | ||
| text_mode | No | Режим текстового рендера: авто, strip ANSI из plotext, или fallback | auto |
| use_color | No | ||
| force_mono | No | ||
| raw_output | No | Вернуть только сырой текст графика без JSON-обёртки |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it does disclose one meaningful trait: ANSI output with automatic fallback to monochrome. However, it is a single clause that omits rendering requirements and side effects, and it sits uneasily with the schema default use_color=false, which implies monochrome output by default despite the ANSI-first framing.
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 one tight sentence that front-loads the verb and resource and ends with a useful technical qualifier (ANSI/fallback). It has zero filler and every word earns its place, though its brevity borders on under-specification for a tool of this complexity.
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?
This is a complex tool — 12 parameters, overlapping chart-type siblings, no output schema, no annotations, and only 33% schema coverage — yet the description is a single clause. An agent lacks the context needed to invoke it correctly, particularly around the theme system, raw_output behavior, and how it differs from the dedicated chart tools.
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?
The description adds nothing about parameters, while schema coverage is only 33% — theme, title, width, height, x_label, y_label, use_color, and force_mono are undocumented in both the schema and the description. The few schema descriptions that exist ('Серии данных', 'Тип терминального графика') are terse, so the description does not compensate for the coverage gap.
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 states a concrete verb and resource — 'Рисует график для консоли' (draws a chart for the console) — and adds a specific rendering trait (ANSI with auto-fallback to monochrome). However, it does not distinguish this generic tool from its siblings create_line_chart, create_bar_chart, create_area_chart, and create_scatter_chart, despite the type parameter overlapping directly with those tools, so an agent cannot tell which to select.
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 guidance on when to use this tool versus the specific chart-type siblings (create_line_chart, create_bar_chart, create_scatter_chart, create_area_chart) or the dashboard tools. No conditions, exclusions, or alternative routing are mentioned, so the agent must infer the tool is a generic type-dispatching chart renderer from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_terminal_dashboardC
Рисует текстовый дашборд для консоли из нескольких панелей.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | ||
| title | No | ||
| width | No | ||
| height | No | ||
| panels | Yes | ||
| text_mode | No | Режим текстового рендера: авто, strip ANSI из plotext, или fallback | auto |
| use_color | No | ||
| force_mono | No | ||
| raw_output | No | Вернуть только сырой текст дашборда без JSON-обёртки |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the desescription must carry the full burden. It conveys that the tool draws a text dashboard, but does not disclose output format, rendering behavior, failure modes, or any side effects, which is a significant gap for a 9-parameter tool.
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 a single, short sentence with no filler or redundant wording. It is front-loaded and easy to parse, though it sacrifices necessary detail for brevity.
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 complex tool with 9 parameters, no output schema, and no annotations, this description is far too sparse. It does not explain parameter usage, output behavior, or when to choose this over the many sibling visualization tools, leaving the agent without enough context to invoke it correctly.
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 description coverage is only 22%, and the description does not explain the meaning or format of key parameters like panels, theme, width, height, or raw_output. It only implies that multiple panels are involved, which is insufficient for an agent to construct valid arguments.
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 clearly states a specific action ('draws') and resource ('text dashboard for console') and highlights the multi-panel aspect, which helps distinguish it from single-chart siblings. However, it does not explicitly differentiate itself from closely related siblings like create_combined_dashboard or create_terminal_chart.
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?
No guidance is provided on when to use this tool versus alternatives such as create_line_chart or create_combined_dashboard. The desciption only describes the action at a high level and leaves all usage decisions up to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_theme_presetsA
Возвращает список доступных тем для image и terminal графиков, чтобы выбрать тему без чтения документации.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It makes the read-only, non-mutating nature explicit by saying it returns a list, and it adds domain scope for image and terminal charts. It doesn't detail output format, but the behavior is low-risk and simple.
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?
A single, well-formed sentence with no filler. It front-loads the core action and includes a purposeful clause explaining the intended use case.
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 zero-parameter list tool, the description is essentially complete: it states the return type, scope, and intended use. It could be slightly stronger by confirming whether the list contains display names, identifiers, or both, but this is a minor gap without an output schema.
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?
The tool has zero parameters and 100% schema coverage, so there is nothing for the description to document. Baseline 4 applies for a parameterless tool.
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 states a specific action ('Возвращает список') and a concrete resource ('доступных тем'), scoped to image and terminal charts. This clearly differentiates it from the chart-creation sibling tools.
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 a clear usage context: call this to choose a theme without reading documentation. It doesn't list exclusions, but no sibling tool competes for the same purpose, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct chart type or output format: line, bar, pie, scatter, area, combined dashboard, terminal chart, and terminal dashboard. The only pair with potential overlap is the two dashboards, but one is explicitly image-based and the other is explicitly terminal-based.
Tool names follow a consistent snake_case verb_noun pattern, with create_*_chart for individual chart types and create_*_dashboard for dashboard variants. The list_theme_presets tool also fits the pattern by using a list verb.
Nine tools is well-scoped for a charting server, covering the main chart types, dashboards, terminal output, and theme discovery. Each tool has a clear responsibility and none feel redundant.
The tool surface covers the major standard chart types, multi-chart dashboards, terminal-specific charts, and theme selection. Since this is a stateless chart-generation server rather than a CRUD system, the absence of update/delete operations is not a gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Bar-first MCP server for Tabula chart authoring, PNG rendering, and editor handoff.
Primarily to be used as a template repository for developing MCP servers with FastMCP in Python, P…
A simple MCP server built with FastMCP and python
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that generates lightweight ASCII charts directly in terminal environments, supporting line charts, bar charts, scatter plots, histograms, and sparklines without GUI dependencies.5409MIT
- AlicenseAqualityDmaintenanceA MCP server for data visualization. It exposes tools to render charts (line, bar, pie, scatter, heatmap, etc.) from data and returns plots as either image/text/mermaid diagram.24MIT
- FlicenseBqualityDmaintenanceAn MCP server that enables advanced CSV analysis and data visualization using Google's Gemini AI and Plotly. It allows users to perform exploratory data analysis, generate interactive charts, and conduct complex reasoning on tabular data.32
- AlicenseNot gradedqualityCmaintenanceA modern MCP server that provides interactive graphical user interface, terminal command execution, and AI-powered prompt enhancement for MCP-compatible clients.197MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/valderan/vvk-charts-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server