Skip to main content
Glama
umer2001

chart-img-mcp

by umer2001

chart-img-mcp

A Model Context Protocol (stdio) server for CHART-IMG — TradingView chart snapshots via https://api.chart-img.com. API reference: doc.chart-img.com.

Existing MCPs?

Public MCP listings include TradingView chart servers that drive a browser (e.g. Selenium) or QuickChart / ECharts — they are not the official CHART-IMG REST API. This package wraps chart-img.com similarly to how binance-mcp wraps the Binance SDK.

Related MCP server: RendShot MCP Server

Prerequisites

Install

cd chart-img-mcp
pnpm install
cp .env.example .env
# Set CHART_IMG_API_KEY in .env (from chart-img.com)
pnpm run build

Run (stdio)

pnpm start
# or
node dist/index.js

Cursor / IDE

Add a server entry (do not commit real keys):

{
  "mcpServers": {
    "chart-img": {
      "command": "node",
      "args": ["/absolute/path/to/auto_trade/chart-img-mcp/dist/index.js"],
      "env": {
        "CHART_IMG_API_KEY": "your-api-key"
      }
    }
  }
}

Dev without building:

"command": "pnpm",
"args": ["exec", "tsx", "src/index.ts"],
"cwd": "/absolute/path/to/auto_trade/chart-img-mcp"

MCP resources

URI

Purpose

chart-img://docs/quick-reference

Curated agent notes (resolution limits, auth, symbols, v3 caveats, errors) with links into doc.chart-img.com. Fetched via Resources: List / Read in MCP clients.

Static snippets stay accurate for common bumps; the live manual remains the source of truth for full parameter lists and indicator/drawing schemas.

Tools

Name

Notes

chartimg_snapshot

Agent-friendly: v2 advanced chart → storage URL with safe defaults (symbol + interval + Volume + max dimensions). Prefer this for typical “show me this chart” requests.

chartimg_v1_mini_chart_storage

GET v1 mini chart → storage JSON (url, etc.)

chartimg_v1_advanced_chart_storage

GET v1 advanced chart → storage JSON

chartimg_v2_advanced_chart_storage

POST v2 advanced chart → storage JSON (preferred for large images). Width/height are clamped automatically.

chartimg_v2_advanced_chart_image

POST v2 advanced chart → base64 PNG/JPEG (can be large). Width/height are clamped automatically.

chartimg_v2_layout_chart_storage

POST v2 shared layout → storage JSON

chartimg_v2_layout_chart_image

POST v2 shared layout → base64

chartimg_v3_exchange_list

GET v3 exchange id list

chartimg_v3_exchange_symbols

GET v3 symbols for an exchange (e.g. binance). Payload may be empty on some plans — use known TradingView symbols (e.g. BINANCE:BTCUSDT.P) from docs instead of relying on this list.

Resolution: v2 chart requests use CHART_IMG_MAX_WIDTH / CHART_IMG_MAX_HEIGHT (default 800×600) to clamp width/height before calling the API, avoiding HTTP 403 when the plan’s max resolution is exceeded. When clamping happens, the JSON response includes _chartimgMcp.dimensionClamps.

Optional v2 headers: tradingviewSessionId + tradingviewSessionIdSign for TradingView subscription data (see CHART-IMG docs).

If CHART_IMG_API_KEY is unset, only chartimg_tools_disabled is registered with a short hint.

Auth (per CHART-IMG)

  • v1: Authorization: Bearer <key> (this server uses the header).

  • v2 / v3: x-api-key: <key>.

Limits

Rate limits, max image dimensions, and storage TTL depend on your CHART-IMG plan — see Request limits in the official docs.

License

MIT

Available Tools

9 tools
chartimg_snapshotA

Preferred for agents: one-call TradingView snapshot (v2 advanced → storage). Supply a full symbol (e.g. BINANCE:BTCUSDT.P for Binance perp). Defaults: interval 5m, dark theme, candles, Volume on, size = max allowed (800×600 unless CHART_IMG_MAX_* set). Width/height are clamped automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNocandle
themeNodark
widthNoImage width; defaults to max allowed (see CHART_IMG_MAX_WIDTH)
formatNopng
heightNoImage height; defaults to max allowed (see CHART_IMG_MAX_HEIGHT)
symbolYesFull TradingView symbol. Examples: BINANCE:BTCUSDT.P (Binance USDT-M perpetual), BINANCE:BTCUSDT (spot), BYBIT:BTCUSDT.P.
intervalNoe.g. 1m, 5m, 15m, 1h, 4h, 1D5m
extraStudiesNoExtra v2 study objects after Volume, e.g. {"name":"MACD"}
includeVolumeNo
tradingviewSessionIdNoOptional TradingView cookie `sessionid` for subscription data (v2).
tradingviewSessionIdSignNoOptional TradingView cookie `sessionid_sign` — use with tradingviewSessionId.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It usefully discloses defaults (5m, dark, candles, volume on) and automatic width/height clamping. However, it does not explain what 'storage' means in practice, such as where the snapshot is stored, whether existing entries are overwritten, or what the agent receives in return.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the agent-facing recommendation first and defaults grouped efficiently. Every sentence earns its place; there is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with no output schema and no annotations, the description is adequate for basic invocation but incomplete. It covers the critical symbol/defaults/clamping behavior yet omits the return value or storage location, and it doesn't explicitly situate this tool against the sibling v2 advanced chart tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 64%, so the description is not required to fully replace the schema. It adds useful semantics around full-symbol requirements and clamped max dimensions, but it adds little beyond the schema's own defaults and descriptions for parameters like interval, theme, extraStudies, and session cookies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the operation as a 'one-call TradingView snapshot' and specifies the pipeline 'v2 advanced → storage', which distinguishes it from image-only or storage-only siblings. It lacks an explicit verb like 'captures' and doesn't name a specific sibling, but the resource and flow are clear enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It opens with 'Preferred for agents' and 'one-call', signaling this is the convenient combined path, and instructs the agent to supply a full symbol. It doesn't explicitly state when to use the storage-only or image-only siblings instead, but the usage context is otherwise clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartimg_v1_advanced_chart_storageC

CHART-IMG v1: save an advanced chart to public storage; returns JSON with url (GET /v1/tradingview/advanced-chart/storage).

ParametersJSON Schema
NameRequiredDescriptionDefault
logoNo
rangeNoOverrides interval: 1D, 5D, 1M, ...
styleNo
themeNo
widthNo
formatNo
heightNo
symbolNo
studiesNoIndicators, e.g. ["RSI","MACD","EMA:12"]
intervalNoe.g. 1m, 5m, 1h, 4h, 1D — exchange dependent
timezoneNo
watermarkNo
watermarkSizeNo
watermarkOpacityNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With zero annotations, the description carries the full disclosure burden. It does reveal meaningful behavior: the operation mutates state ('save'), the data lands in 'public storage' (a visibility/exposure fact), and it returns JSON with a `url` plus a retrieval endpoint. However, it omits idempotency/overwrite semantics, any auth or rate-limit caveats, and retention or exposure implications — material gaps for a storage-mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence: the verb 'save' and the resource appear immediately, followed by the output contract and endpoint. There is no filler, no repetition of schema content, and every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 14-parameter mutation tool with no annotations, no output schema, and almost no schema-level parameter descriptions. The description covers the purpose and the return shape but says nothing about how to select or format the numerous inputs. For an agent to invoke it correctly on a realistic call, the parameter semantics gap is critical and unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 21%, so 11 of 14 parameters (logo, style, theme, width, format, height, symbol, timezone, watermark, watermarkSize, watermarkOpacity) have no semantics anywhere. The description adds zero parameter guidance and thus fails to compensate for the low coverage, leaving an agent to guess at the meaning and format of most inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('save an **advanced** chart to public storage') and discloses the output contract (JSON with `url`). The qualifier 'advanced' and the version marker 'v1' implicitly separate it from siblings like chartimg_v1_mini_chart_storage and chartimg_v2_advanced_chart_storage, but no sibling is named explicitly and the boundary against v2/layout variants is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no named alternatives, and no conditions for choosing this over chartimg_v1_mini_chart_storage, chartimg_v2_advanced_chart_storage, or the _image variants. The word 'advanced' provides only an implied scoping signal; an agent must infer the choice from the tool name rather than from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartimg_v1_mini_chart_storageB

CHART-IMG v1: save a TradingView mini chart to public storage; returns JSON with url (see GET /v1/tradingview/mini-chart/storage).

ParametersJSON Schema
NameRequiredDescriptionDefault
themeNo
widthNo
formatNo
heightNo
symbolNoTradingView symbol, e.g. BINANCE:BTCUSDT
intervalNoMini chart intervals: 1D, 1M, 3M, 1Y, 5Y, ALL
watermarkNo
watermarkSizeNo
watermarkOpacityNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It does disclose the core side effect ('save ... to public storage') and the response format ('returns JSON with url'), which is useful. However, it omits behavioral details like whether existing files are overwritten, authentication requirements, storage limits, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that communicates the action, destination, return format, and a related retrieval route. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this tool has 9 parameters, no output schema, and no annotations, the description is too thin. It does not explain parameter defaults, which fields are essential for a valid save, or how this storage option differs from the advanced/layout/snapshot siblings. The GET endpoint hint is helpful but does not make the definition complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is very low and the description adds no parameter-level meaning. Only 'symbol' has a schema description; width, height, interval, watermark, watermarkSize, and watermarkOpacity remain unexplained. Theme and format enums help somewhat, but the description does not compensate for the missing semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('save'), the resource ('a TradingView mini chart'), and the destination ('public storage'), and also notes the return type ('JSON with url'). It distinguishes the tool from siblings via the 'mini' qualifier, but it does not explicitly name or contrast any sibling, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the advanced, layout, or snapshot siblings. It mentions a GET endpoint for retrieval, but it never states selection criteria, exclusions, or scenarios where another chart storage tool should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartimg_v2_advanced_chart_imageA

CHART-IMG v2: POST advanced chart and return base64 image data (POST /v2/tradingview/advanced-chart). Responses can be large; prefer storage tools. Width/height in body are auto-clamped.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON body for POST /v2/tradingview/advanced-chart. Doc: https://doc.chart-img.com — Example (Binance USDT perp + volume): {"symbol":"BINANCE:BTCUSDT.P","interval":"5m","studies":[{"name":"Volume"}]}. Width/height are **auto-clamped** to CHART_IMG_MAX_WIDTH/HEIGHT (default 800×600) to avoid HTTP 403.
tradingviewSessionIdNoOptional TradingView cookie `sessionid` for subscription data (v2).
tradingviewSessionIdSignNoOptional TradingView cookie `sessionid_sign` — use with tradingviewSessionId.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral disclosure burden. It does so by revealing the return type, warning about response size, and explaining that width/height are auto-clamped to avoid HTTP 403. It does not cover rate limits or error cases, but the key behavioral traits are visible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and each sentence contributes distinct value: operation and endpoint, return format plus size warning, and clamping behavior. There is no filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three parameters, a nested body, and no output schema, the description and schema together cover the essential calling context: endpoint, example body, return format, clamping, and the storage-tool alternative. It stops short of addressing error behavior and rate limits, but nothing critical is missing for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The top-level description adds little parameter meaning beyond echoing the auto-clamping detail already present in the body parameter description. The detailed example and doc link live in the schema rather than the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation (POST advanced chart), a specific resource (/v2/tradingview/advanced-chart), and the concrete output format (base64 image data). It also separates itself from storage-oriented siblings by saying 'prefer storage tools', making the distinction clear even without naming the exact sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear practical directive: responses can be large, so prefer storage tools when that matters. It could be more explicit about when the base64 image version is the right choice versus the storage variant, but the guidance is still actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartimg_v2_advanced_chart_storageA

CHART-IMG v2: POST advanced chart to storage; returns JSON with hosted image URL (POST /v2/tradingview/advanced-chart/storage). Prefer chartimg_snapshot for common cases. Width/height in body are auto-clamped.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON body for POST /v2/tradingview/advanced-chart. Doc: https://doc.chart-img.com — Example (Binance USDT perp + volume): {"symbol":"BINANCE:BTCUSDT.P","interval":"5m","studies":[{"name":"Volume"}]}. Width/height are **auto-clamped** to CHART_IMG_MAX_WIDTH/HEIGHT (default 800×600) to avoid HTTP 403.
tradingviewSessionIdNoOptional TradingView cookie `sessionid` for subscription data (v2).
tradingviewSessionIdSignNoOptional TradingView cookie `sessionid_sign` — use with tradingviewSessionId.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral load. It discloses the HTTP method, the hosted-URL return format, and the width/height auto-clamping safeguard that prevents HTTP 403. This goes beyond the schema fields by explaining why the clamp exists, which is genuinely useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main description is compact and front-loaded: action, storage target, return type, then routing advice. The auto-clamp behavior appears in both the main description and body schema description, which is a minor redundancy but not harmful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition covers the endpoint, return shape, an example body, optional cookie params, and a key error-avoidance behavior; for a no-output-schema tool that is reasonably complete. It could improve by explicitly stating that a chart body is expected despite the schema listing zero required parameters, so just short of a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The body property description adds a doc link, a concrete Binance example, and auto-clamp behavior, while the session cookie params are clearly labeled optional. This adds real guidance beyond the raw property definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation: POST an advanced chart to storage and get back a hosted image URL. It names the endpoint explicitly and even points users to chartimg_snapshot for common cases, which helps differentiate among the sibling tools. The 'storage' wording and v2 marker make it distinct from image-returning or layout variants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Prefer chartimg_snapshot for common cases', which gives a clear alternative and implies this tool is for advanced/stored chart cases. However, it doesn't provide a complete routing to all relevant siblings such as chartimg_v2_advanced_chart_image, so the guidance is good but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartimg_v2_layout_chart_imageA

CHART-IMG v2: POST shared layout chart image as base64 (POST /v2/tradingview/layout-chart/{layoutId}). Prefer storage variant. Width/height in body are auto-clamped.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoOptional overrides: symbol, interval, width, height, format, etc. Width/height are auto-clamped like other v2 chart tools.
layoutIdYesTradingView shared layout id from the chart URL.
tradingviewSessionIdNoOptional TradingView cookie `sessionid` for subscription data (v2).
tradingviewSessionIdSignNoOptional TradingView cookie `sessionid_sign` — use with tradingviewSessionId.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It does mention that the output is base64 and that width/height are auto-clamped, which is useful. But it does not clarify whether the POST has side effects, what the response structure looks like beyond base64, or why the optional session cookies matter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the core action, endpoint, and output format. The 'CHART-IMG v2:' prefix and the terse 'Prefer storage variant' add some noise, but overall the definition is efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives the endpoint, method, output format, and an input constraint, but no output schema is present and no annotations exist. It does not describe the response container, error cases, or when to supply the optional session cookies, leaving some important context for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the params are already well documented in the schema. The tool description only repeats the auto-clamping behavior already present in the schema's body description, adding minimal new parameter insight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation (POST), the resource (shared layout chart image), the endpoint, and the output format (base64). The phrase 'Prefer storage variant' also distinguishes it from the sibling storage tool, so an agent can tell what this tool does and what it is not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names a preference for the storage variant, which helps an agent choose between the layout chart image and layout chart storage siblings. However, it does not elaborate on when to use this image tool over other image-generation tools or what specific conditions favor it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartimg_v2_layout_chart_storageA

CHART-IMG v2: render a shared TradingView layout to storage (POST /v2/tradingview/layout-chart/storage/{layoutId}). Layout must be shared unless session cookies are provided. Width/height in body are auto-clamped.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoOptional overrides: symbol, interval, width, height, format, etc. Width/height are auto-clamped like other v2 chart tools.
layoutIdYesTradingView shared layout id from the chart URL.
tradingviewSessionIdNoOptional TradingView cookie `sessionid` for subscription data (v2).
tradingviewSessionIdSignNoOptional TradingView cookie `sessionid_sign` — use with tradingviewSessionId.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It discloses the auth requirement ('Layout must be shared unless session cookies are provided') and the auto-clamping behavior for width/height, while the POST endpoint and 'to storage' make the write nature clear. It does not describe the response or storage location in detail, but the key invocation behaviors are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences: first the purpose and endpoint, then the most important constraints. Every clause earns its place and there is no redundant elaboration or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no annotations and no output schema, the description covers the endpoint, the required layoutId via the schema, optional overrides, the sharing/cookie prerequisite, and clamping behavior. It does not describe the return value or storage location in detail, but an agent has enough to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents each parameter, including the body overrides and the session cookie fields. The description adds the condition that session cookies can substitute for sharing and reiterates clamping, but does not substantially extend parameter meaning beyond the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('render'), a specific resource ('shared TradingView layout'), and the storage target, reinforced by the explicit POST endpoint. This clearly differentiates it from siblings like chartimg_v2_layout_chart_image, which is about returning an image rather than storing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage for shared TradingView layouts and gives a key precondition: 'Layout must be shared unless session cookies are provided.' However, it does not explicitly name alternatives or state when to prefer this tool over sibling storage/image tools, so the guidance is more implied than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartimg_v3_exchange_listA

CHART-IMG v3: list TradingView exchange ids (GET /v3/tradingview/exchange/list).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It does clarify that this is a GET request and a listing operation, implying a non-mutating read, but it does not mention authentication needs, response format, or any usage limits. This is acceptable for a zero-parameter list endpoint but still leaves some behavioral aspects implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler or redundancy. It front-loads the core purpose and includes the exact endpoint, giving an agent all the essential information efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description is sufficiently complete: it names the resource, the operation, and the endpoint. Since the description explicitly states that it returns exchange ids, the agent has enough context to invoke it correctly and interpret the basic result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides no parameter semantics to clarify. The description appropriately focuses on the resource being listed rather than parameter details, which is the correct baseline for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('list') and a specific resource ('TradingView exchange ids'), making the tool's function immediately clear. It also distinguishes itself from sibling tools like chartimg_v3_exchange_symbols, which handles symbols rather than exchange ids.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as chartimg_v3_exchange_symbols. It simply states the endpoint without explaining the typical workflow context, prerequisites, or cases where a different tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartimg_v3_exchange_symbolsA

CHART-IMG v3: symbols for an exchange (GET /v3/tradingview/exchange/{exchangeId}). Note: payload may be empty (plan or API); do not rely on it to discover symbols — use TradingView / CHART-IMG docs (e.g. BINANCE:BTCUSDT.P for Binance USDT perpetual).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter: spot, swap, futures, index, ...
symbolNoFilter by symbol substring
exchangeIdYesLowercase exchange id in the URL path, e.g. binance → GET .../exchange/binance

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden; it deserves credit for the explicit warning that payload may be empty depending on plan/API and that it cannot be relied on for symbol discovery. But it omits the response shape, error cases, and any auth or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is two compact sentences: purpose/endpoint up front, then a crucial caveat. There is no filler, redundancy, or unnecessary context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema fully documents all parameters and the note covers an important failure mode, but because there is no output schema or annotations, an agent is left without a clear picture of the non-empty response shape or how returned symbols map onto the documented formula. Adequate, with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented; the description only adds an example symbol format (BINANCE:BTCUSDT.P) rather than clarifying type or exchangeId beyond the schema. This is baseline utility, not added semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool returns ('symbols for an exchange') and pins it to a concrete endpoint (GET /v3/tradingview/exchange/{exchangeId}), which acts as the verb. This is clearly distinct from sibling tools such as chartimg_v3_exchange_list and the chart/storage tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this when you need the symbol list for one exchange. However, the description never names sibling alternatives or conditions, and the caveat directs users to docs rather than explaining when to choose this tool over exchange_list or others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation3/5

The exchange and layout tools are reasonably distinct, but v1_advanced_chart_storage, v2_advanced_chart_storage, and chartimg_snapshot all cover saving advanced charts to storage, creating real overlap. Versioning and 'prefer snapshot' guidance help, but agents may still misselect among them.

Naming Consistency4/5

Most tools follow a predictable chartimg_{vX}_{feature}_{output} pattern, which makes versions and storage/image output modes easy to identify. chartimg_snapshot breaks the pattern, but it is the only notable deviation.

Tool Count4/5

Nine tools is a reasonable size for a chart-image service, covering snapshots, storage, image output, and exchange metadata. The count is slightly padded by redundant v1/v2/snapshot storage variants, but still within an appropriate range.

Completeness4/5

Core workflows are covered: one-call snapshot, advanced and layout charts, storage URLs, base64 output, and exchange lookup. Minor gaps exist such as no direct mini-chart image output and the exchange-symbols payload being unreliable, but agents can work around these.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/umer2001/chart-img-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server