Skip to main content

Chart Library MCP Server — intelligence layer for stock pattern agents. 16 tools across cohort retrieval (search, cohort, cohort_analyze), Layer 5 memory (symbol_intelligence, similar_cohorts, cohort_compare, discover_picks), and analysis (analyze, context, explain, portfolio, anchor_fetch, decompose, clusters, live_search). Conditional distributions, conformal bands, FinBERT news sentiment + narrative_change_score, validated 14-19pp quintile spread.

Project description

Chart Library MCP Server

PyPI License: MIT Glama Score Tools

Works with: Claude Desktop | Claude Code | ChatGPT | GitHub Copilot | Cursor | VS Code | Any MCP client

Ask your AI agent "what happened the last 10 times a chart looked like this?" and get a real answer.

24 million pattern embeddings. 10 years of history. 15,000+ stocks. One tool call.

> "What does NVDA's chart look like right now?"

Found 10 similar historical patterns for NVDA (2026-04-04, RTH timeframe):

  Closest match: AAPL 2023-05-12 (distance: 0.41)

  Forward returns across all 10 matches:
    1-day:  +0.8% avg  (7/10 positive)
    5-day:  +3.1% avg  (8/10 positive)
    10-day: +4.7% avg  (7/10 positive)

  Summary: NVDA's current consolidation near highs mirrors 10 historical
  setups, most notably AAPL's May 2023 pre-breakout pattern. 8 of 10
  resolved higher within a week, with a median 5-day gain of +2.8%.

No hallucinated predictions. No refusals. Just factual historical data your agent can cite.


Quick Start

pip install chartlibrary-mcp

Claude Desktop (One-Click Install)

Download the chart-library-1.1.1.mcpb extension file and open it with Claude Desktop for automatic installation.

Claude Code

claude mcp add chart-library -- chartlibrary-mcp

Claude Desktop (Manual)

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "chart-library": {
      "command": "chartlibrary-mcp",
      "env": {
        "CHART_LIBRARY_API_KEY": "cl_your_key"
      }
    }
  }
}

Cursor / VS Code

Add to .cursor/mcp.json or VS Code MCP settings:

{
  "servers": {
    "chart-library": {
      "command": "chartlibrary-mcp",
      "env": {
        "CHART_LIBRARY_API_KEY": "cl_your_key"
      }
    }
  }
}

GitHub Copilot (VS Code)

Add to .vscode/mcp.json in your project (this file is already included in the chart-library repos):

{
  "servers": {
    "chart-library": {
      "command": "chartlibrary-mcp",
      "env": {
        "CHART_LIBRARY_API_KEY": "cl_your_key"
      }
    }
  }
}

Copilot Chat will auto-detect the MCP server when you open the project. Use @mcp in Copilot Chat to invoke tools.

ChatGPT (Developer Mode)

ChatGPT connects to MCP servers via remote HTTP endpoints. To set up:

  1. Enable Developer Mode: Go to ChatGPT Settings > Apps > Advanced settings > Developer mode (requires Pro, Plus, Business, Enterprise, or Education plan)
  2. Create a connector: In Settings > Connectors, click Create and enter:
    • Name: Chart Library
    • Description: Historical chart pattern search engine -- 24M patterns, 10 years of data
    • URL: https://chartlibrary.io/mcp
    • Authentication: No Authentication (or OAuth if using an API key)
  3. Use in conversations: Select "Developer mode" from the Plus menu, choose the Chart Library app, and ask questions like "What does NVDA's chart look like historically?"

Note: The remote endpoint at https://chartlibrary.io/mcp uses Streamable HTTP transport. If you need SSE fallback, use https://chartlibrary.io/mcp/sse.

Remote MCP Endpoint

For any MCP client that supports remote HTTP connections:

https://chartlibrary.io/mcp

This endpoint supports both Streamable HTTP and SSE transports, no local installation required.

Free tier: 200 calls/day, no credit card required. Get an API key at chartlibrary.io/developers or use basic search without one.


What Can Your Agent Do With This?

"Should I be worried about my TSLA position?"

> get_exit_signal("TSLA")

  Signal: HOLD (confidence: 72%)
  Similar patterns that exited early: 3/10 would have avoided a drawdown
  Similar patterns that held: 7/10 gained an additional +2.1% over 5 days
  Recommendation: Pattern suggests continuation. No exit signal triggered.

"What sectors are rotating in right now?"

> get_sector_rotation()

  Leaders (30-day relative strength):
    1. XLK  Technology     +4.2%
    2. XLY  Cons. Disc.    +3.1%
    3. XLC  Communication  +2.8%

  Laggards:
    9. XLU  Utilities      -1.4%
   10. XLP  Cons. Staples  -2.1%
   11. XLRE Real Estate    -3.3%

  Regime: Risk-On (growth > defensives)

"What happens to AMD if SPY drops 3%?"

> run_scenario("AMD", spy_change=-3.0)

  When SPY fell ~3%, AMD historically:
    Median move:  -5.2%
    Best case:    +1.1%
    Worst case:  -11.4%
    Positive:     18% of the time

  AMD shows 1.7x beta to SPY downside moves.

8 Canonical Tools

Chart Library 2.0 consolidates 22 legacy tools into 8 composable primitives. Chain them via cohort_id handles for sub-second refinement without re-running kNN.

Tool What it does
search Entry point. Returns cohort_id + anchor + n_matches for a ticker+date. Feed the handle into cohort, analyze, or explain to chain.
cohort The core primitive. Conditional distribution (p10/p25/p50/p75/p90 + calibrated bands + MAE/MFE + hit rates + survivorship) for a chart pattern, filtered by regime/sector/liquidity/event. One call replaces the legacy get_cohort_distribution, refine_cohort_with_filters, run_scenario, and get_regime_win_rates.
analyze Analytic metrics via metric= enum: anomaly, volume_profile, crowding, correlation_shift, earnings_reaction, pattern_degradation, regime_accuracy.
context Situational data via target=: ticker metadata, market regime + sector rotation, or DB coverage stats.
explain Narrative + rankings via style= enum: filter_ranking (which filter shifts the distribution most), prose (plain-English summary), position_guidance (exit signals), risk_ranking (Sharpe-ranked picks).
portfolio Portfolio-level conditional distribution across holdings. Weight-averages distributions, ranks tail contributors.
anchor_fetch New in 2.0. Lightweight (symbol, date) metadata fetch — sector, market cap, point-in-time regime. Avoids full kNN when you just need context for a ticker.
report_feedback Report errors or suggest improvements.

These tools replace hallucinated "on average this pattern returns X%" with real conditional base rates. See the grounded-base-rates pattern for the full loop.

Typical agent flow

1. search("NVDA 2024-06-18")                          → cohort_id
2. cohort(cohort_id=..., filters={regime:{same_vix_bucket: true}})
                                                       → conditional distribution
3. explain(cohort_id=..., style="filter_ranking")     → which filter matters most
4. cohort(cohort_id=..., filters={...new filter...})  → refined distribution

Legacy tools (deprecated, still callable)

For backward compatibility, these 22 legacy tool names remain in place and are marked deprecated in their MCP annotations. They forward to the canonical tool and will be removed in a future major release. Migrate via the mapping below:

Legacy Replacement
search_charts, search_batch, get_discover_picks search
get_cohort_distribution, refine_cohort_with_filters, run_scenario, get_regime_win_rates, compare_to_peers cohort
detect_anomaly, get_volume_profile, get_crowding, get_earnings_reaction, get_correlation_shift, get_pattern_degradation, get_regime_accuracy analyze (metric=)
get_sector_rotation, get_status, get_market_context context
get_pattern_summary, explain_cohort_filters, get_exit_signal, get_risk_adjusted_picks explain (style=)
get_portfolio_health portfolio
analyze_pattern, get_follow_through, check_ticker search + cohort (+ optional explain)

How It Works

Chart Library indexes a large library of historical chart patterns and exposes them behind a conditional-distribution API. Every query returns sample sizes, percentiles, and calibrated forward-return bands — never a point forecast.

When your agent calls analyze_pattern("NVDA"), the server:

  1. Builds a representation of NVDA's current chart state
  2. Retrieves historically similar patterns
  3. Looks up what happened over the following 1, 3, 5, and 10 days
  4. Returns the distribution + a plain-English summary via Claude Haiku

The result: factual, citation-ready statements like "out of N similar historical patterns, the median 5-day return was X% (80% band [p10, p90])" that your agent can present without hallucinating or hedging.


API Key

Tier Calls/day Price
Sandbox 200 Free
Builder 5,000 $29/mo
Scale 50,000 $99/mo

Get your key at chartlibrary.io/developers.

export CHART_LIBRARY_API_KEY=cl_your_key

Links


Chart Library provides historical pattern data for informational purposes. Not financial advice.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chartlibrary_mcp-3.2.0.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chartlibrary_mcp-3.2.0-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file chartlibrary_mcp-3.2.0.tar.gz.

File metadata

  • Download URL: chartlibrary_mcp-3.2.0.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for chartlibrary_mcp-3.2.0.tar.gz
Algorithm Hash digest
SHA256 a719e9bb1f21ab6a1948b53d5aab0d60249470ecbabd8ec9f393eed29db7e297
MD5 2f5e04484c52d653551a94b55f617043
BLAKE2b-256 d931d8131ce24f52b12056ccf7b091818a31e474d5db067af8cf5ca36f14192f

See more details on using hashes here.

File details

Details for the file chartlibrary_mcp-3.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for chartlibrary_mcp-3.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5d68fd1a25294b99fc8f01cfd4da24a5883f5be11658ab413f06d45a64286954
MD5 cc7fa67083a4a4dc94aea06763ab03d8
BLAKE2b-256 f1c28d7717adcc3248283fdfb512e3f22588e59e144bb8bcfa79840c5501878f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page