Skip to content

TGMCharts

by TGM-Ventures · remote · no sign-in to list tools · v1.1.0 · published by GitHub user TGM-Ventures

US stock fundamentals: SEC financial statements, valuation series, summaries, screens, chart images.

Changes · 1

7 tools: 1 change things and 6 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http tgmcharts https://tgmcharts.com/api/v1/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "get_financial_statement" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_financial_statement" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

7 tools

Changes things 1Claude Code: ask
  • get_financial_statementUse for line items as filed with the SEC (revenue, net income, cash flow, dividends paid, debt…) by year or quarter.1 finding

    Why it is in this group

    • The name "get_financial_statement" says "get": a word for reading.
    • The input takes a statement or command to run (input.statement), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_financial_statement" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_financial_statement" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Use for line items as filed with the SEC (revenue, net income, cash flow, dividends paid, debt…) by year or quarter. Raw as-filed statement rows (income statement, balance sheet, or cash flow) sourced exclusively from SEC EDGAR XBRL company facts — public domain, latest-filed per period, honest nulls (never zero-filled, never vendor-backfilled). Derived quarters are disclosed. Token-frugal default: 5 fiscal years without per-value provenance; set include_provenance for the winning us-gaap tag + accession per value, or use https://tgmcharts.com/api/v1/statements/{symbol}/{statement} for full depth (30y, CSV).

    Annotations the server declares

    • title: Raw financial statement (SEC EDGAR)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 6Claude Code: allow
  • compare_stocksUse to compare companies against each other.No findings

    Why it is in this group

    • The name "compare_stocks" says "compare": a word for reading.
    Description, as the server wrote it
    Use to compare companies against each other. Side-by-side headline fundamentals for 2–4 tickers (latest values with as-of context): market cap, close, P/E, P/S, margins, ROE, dividend yield, and 5-year revenue/EPS CAGRs. Uncovered symbols are reported honestly, not dropped silently.

    Annotations the server declares

    • title: Compare stocks
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_chartUse when the answer should show a picture of a metric's history.No findings

    Why it is in this group

    • The name "get_chart" says "get": a word for reading.
    Description, as the server wrote it
    Use when the answer should show a picture of a metric's history. A ready-to-embed 1600×900 PNG chart of a metric's history in TGMCharts' house style (watermarked, as-of stamped). Returns the canonical URL — fetch or embed it directly (<img src=…>); it is edge-cached and needs no key. Sector-gated or empty histories render an honest explanation card rather than failing.

    Annotations the server declares

    • title: Chart image URL
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_metric_seriesUse for a metric's history or trend (is the P/E high versus its past?No findings

    Why it is in this group

    • The name "get_metric_series" says "get": a word for reading.
    Description, as the server wrote it
    Use for a metric's history or trend (is the P/E high versus its past? how have margins moved?). Historical series for a TGMCharts-computed metric (daily valuation/yield lines, rolling TTM flows, quarterly margins). Points are even-time downsampled to max_points (default 120) to stay token-frugal — raw density is available at https://tgmcharts.com/api/v1/series/{symbol}/{metric}. points:null = intentionally withheld (sector-inappropriate, message included); [] = no stored history.

    Annotations the server declares

    • title: Metric history series
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_stock_summaryUse first for any question about one company.No findings

    Why it is in this group

    • The name "get_stock_summary" says "get": a word for reading.
    Description, as the server wrote it
    Use first for any question about one company. Compact fundamentals summary for one ticker (~5 KB): latest close, market cap, valuation ratios, margins, returns, dividend record, and 3/5/10-year growth CAGRs, with as-of dates and applicability notes. Null values are honest gaps or sector-inappropriate metrics — never zeros.

    Annotations the server declares

    • title: Stock summary
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_metricsUse to find the right metric slug before get_metric_series or get_chart.No findings

    Why it is in this group

    • The name "list_metrics" says "list": a word for reading.
    Description, as the server wrote it
    Use to find the right metric slug before get_metric_series or get_chart. The full metric catalog: slug, label, unit, basis (daily/monthly/annual/quarterly/ttm — the stored sampling density, never overstated), methodology, and whether each metric is available as a JSON series (get_metric_series) and/or a chart render (get_chart). The same dictionary is the resource tgmcharts://metrics.

    Annotations the server declares

    • title: List available metrics
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • screen_stocksUse to find companies that meet conditions (cheap, high dividend, fast growth…).No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Use to find companies that meet conditions (cheap, high dividend, fast growth…). Filter and rank the covered universe (about 4,000 US-listed names) on fundamental fields (marketCap, peRatio, dividendYield, consecutiveYears, margins, 5y CAGRs, …). Returns at most 25 rows — the MCP tier's cap; the full screener lives at https://tgmcharts.com/screener. Units: yields, margins, growth and CAGRs are fractions, not percents (dividendYield gt 0.03 = above 3%; see the field description). Example: filters [{field: "dividendYield", operator: "gt", value: 0.03}, {field: "consecutiveYears", operator: "gte", value: 25}], sortBy "dividendYield".

    Annotations the server declares

    • title: Screen stocks
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http tgmcharts https://tgmcharts.com/api/v1/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__tgmcharts__get_stock_summary",
      "mcp__tgmcharts__list_metrics",
      "mcp__tgmcharts__get_metric_series",
      "mcp__tgmcharts__get_chart",
      "mcp__tgmcharts__compare_stocks",
      "mcp__tgmcharts__screen_stocks"
    ],
    "ask": [
      "mcp__tgmcharts__get_financial_statement"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as tgmcharts. Review it before you use it.