Chart Library MCP
Market memory for AI, with published research for agents and people.
Version 6.3.2 adds version-pinned source reading and clear recovery when a publication changes. Existing integrations retain their callable tool names. Use each document's supplied read arguments to retain its full publication version.
Five read-only tools
| Tool | Input | Result |
|---|---|---|
market_state |
Symbol; optional date | Completed-session state, historical analogs, outcome ranges, transition memory and tape |
daily_note |
Optional date | Published daily research, selection rule and settled-note tally |
research_quality |
None | Published calibration receipt, dated sample and qualifications |
search_research |
Query; optional kind, limit and offset | Relevant publications, IDs, findings, sample receipts, limitations and versions |
read_research |
Research ID; optional section, offset and version | Overview or an exact source document, with pagination and hashes |
Market-state requests need no preliminary search or cohort handle. For published research, search for an ID, then read its evidence.
Example question: “Read AAPL's latest completed-session state. Report the historical analog ranges, sample sizes, session date and limitations.”
Omitting date uses the latest built/published session, not a real-time quote. Dates use YYYY-MM-DD. Missing or thin evidence stays missing or thin.
Connect
The primary remote endpoint is https://chartlibrary.io/mcp, using Streamable HTTP and no authentication.
For a command-based client, install or upgrade the package:
python -m pip install --upgrade chartlibrary-mcp
Then use the equivalent of this configuration in your MCP client:
{
"mcpServers": {
"chartlibrary": {
"command": "chartlibrary-mcp"
}
}
}
No API key or server-side Python packages are required. An optional
CHART_LIBRARY_API_KEY is forwarded as a Bearer token when set. An empty key
does not send an Authorization header. CHART_LIBRARY_API_URL can select your
own compatible endpoint; only point it at a server you trust with that key.
Python 3.10+ is required. This release uses the MCP 1.x FastMCP interface and
pins mcp>=1.28.1,<2.0.0; MCP 2.x is a separate migration.
The equivalent HTTP calls
curl "https://chartlibrary.io/api/v1/state-packet?symbol=AAPL"
curl "https://chartlibrary.io/api/v1/daily"
curl "https://chartlibrary.io/api/v1/calibration"
Use only the call relevant to the question. For a historical state add
&date=YYYY-MM-DD. Daily REST requests call the date parameter session.
Research workflow
search_research(query="IONQ noon", kind="casebook")
read_research(research_id="casebook:ionq-noon", section="article",
version="FULL_VERSION_FROM_SEARCH")
Replace FULL_VERSION_FROM_SEARCH with the full 64-character version from the chosen search result. Updated servers supply documents[section].read_arguments directly; copy those into the tool and follow content.next_read until null. With earlier servers, pass the returned version and next_offset explicitly. Omitting the optional version reads the current publication without checking it against earlier responses. A changed version returns an error explaining how to restart from the current overview; the client does not retry automatically.
Search summaries are discovery metadata, not a source read. Read available guides and relevant limiting findings before making claims. Keyword search ranks document relevance, not market similarity or evidence strength. A partial result means a publication source was unavailable. Withdrawn articles cannot be read. Publication dates and market cutoffs differ; the noon IONQ case must not be merged with completed-session state analogs.
Complete IONQ example · Agent research plan
Read the evidence accurately
- Preserve dates, sample sizes, informative receipts, warnings and provenance.
- State-packet excess returns are percentage-point observations relative to a date-matched liquid-stock baseline. Each horizon has its own observed n.
- Raw historical percentiles are not automatically calibrated forecasts.
research_qualityaudits only the method and population its receipt names. Do not transfer its coverage percentage to every market state or all research.- Daily research has its own selection rule and settled-note tally.
- Historical frequencies are not recommendations to buy or sell.
Research access is free. Service limits and underlying data terms still apply. Honor HTTP 429 and retry guidance; do not assume unlimited throughput.
Existing integrations
Existing tool names stay registered and callable, including pull_comps,
search, state_packet, and the cohort inspection tools. To discover the
extended menu in a local client, set CHART_LIBRARY_MCP_PROFILE=advanced.
This changes discovery, not authorization or access to private research.
The public menu does not expose private fund operations or every experimental
state-memory method. Legacy examples in examples/ use the advanced interface.
Build with us
For a custom integration, a larger study, or a product built on the memory, contact Graham McCain — graham@chartlibrary.io.
Developer guide · Methodology · Data terms · Privacy
Local verification
python -m pytest test_vendor_import.py
The import smoke runs without an API key and without application services/
or db/ packages. No package or registry publication is performed by tests.
Release files for chartlibrary-mcp 6.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chartlibrary_mcp-6.3.2.tar.gz | 41.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chartlibrary_mcp-6.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.6 kB
Release files / chartlibrary_mcp-6.3.2.tar.gz
| Download URL | chartlibrary_mcp-6.3.2.tar.gz |
|---|---|
| Size | 41.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15624f8910194a587518abb6f98663c803d706694ebe8545299daa6c45403530
|
|
BLAKE2b-256 checksum How to use checksums |
95315ededaedf21ded947c564aabd316a86733994ab50b2e3b720cca0a0bb051
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Release files / chartlibrary_mcp-6.3.2-py3-none-any.whl
| Download URL | chartlibrary_mcp-6.3.2-py3-none-any.whl |
|---|---|
| Size | 42.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b2eb0704b65cf0dd0526ecf37ec582fa1cc64f1a31edd5abaf64abd208751eb
|
|
BLAKE2b-256 checksum How to use checksums |
07ca233efda7ed7bef9442ebf7189811b58a48a61bc39eb9fe9ac213de5f5cb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|