ceyloncharts
Live and historical market data for the Colombo Stock Exchange (CSE) — Sri Lanka's only stock exchange — via 13 tools covering prices, fundamentals…
What it can do
- Get Symbols: List available CSE symbols with metadata. Optionally search by company name and/or sector. Returns CSV (symbol,name,sector,industry,is_active,last_updated).
- Get Ohlc Data: Get OHLCV (open, high, low, close, volume) data for a CSE symbol. Prices are adjusted for splits by default (clean price action), but NOT for rights issues or dividends, unless requeste
- Get Financial Statement: Get full line-item detail for one financial statement (income statement, balance sheet, or cash flow statement) for a CSE symbol — every quarter available, one row per line it
What data it sees
Do you need an account
No: the server works without sign-in
Live and historical market data for the Colombo Stock Exchange (CSE) — Sri Lanka's only stock exchange — via 13 tools covering prices, fundamentals, technicals, and macro data.
Market data
get_symbols— search listed companies by name or sectorget_ohlc_data— historical OHLCV price history, split-adjustedget_market_summary,get_indices,get_index_data— index-level snapshots and historyget_technicals— moving averages, RSI, relative-strength rating
Screening
screen_stocks— filter by EMA position, RS rating, 52-week highs/lows, unusual volumescreen_indices— sector-level screening
Company & macro data
get_financial_statement— income statement, balance sheet, cash flowget_corporate_actions— dividends, splits, rights issuesget_announcements— company disclosuresget_macro_data,get_macro_series— economic indicators
Access: OAuth 2.0 (authorization code + PKCE), scopes mcp:read and mcp:analyze. Dynamic client registration supported — no manual API key request needed. Full setup: auth.md.
Built and maintained by CeylonCharts — free charting and market data for Sri Lankan retail investors.
How to connect
How to connect ceyloncharts to Claude
The server address to paste into Claude settings:
https://ceyloncharts--creondesigns.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect ceyloncharts to ChatGPT
The server address to paste into ChatGPT settings:
https://ceyloncharts--creondesigns.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect ceyloncharts to Cursor
The server address to paste into Cursor settings:
https://ceyloncharts--creondesigns.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (13)
Raw names from tools/list. Only developers need these.
| get_symbols | List available CSE symbols with metadata. Optionally search by company name and/or sector. Returns CSV (symbol,name,sector,industry,is_active,last_updated). |
| get_ohlc_data | Get OHLCV (open, high, low, close, volume) data for a CSE symbol. Prices are adjusted for splits by default (clean price action), but NOT for rights issues or dividends, unless requested. Defaults to the most recent 50 trading days; if more history is available the response says so and how to page further back with offset. Returns CSV (date,open,high,low,close,volume) preceded by a note if the symbol was resolved from a name/typo, if the company has other instruments, or if any corporate actions (splits/rights/dividends) fall within the requested range. If the input is ambiguous, returns JSON candidates instead. |
| get_financial_statement | Get full line-item detail for one financial statement (income statement, balance sheet, or cash flow statement) for a CSE symbol — every quarter available, one row per line item. Cash-flow figures are cumulative (year-to-date) while income-statement figures are per-quarter — don't diff adjacent columns on the cash flow statement as if they were quarterly deltas. Returns CSV (label,canonical_key,<one column per fiscal period>), or JSON candidates if the input is ambiguous. |
| get_announcements | Get general CSE company disclosures for a symbol — board changes, AGM/EGM notices, listings, trading suspensions/resumptions, name changes, and other regulatory announcements. For dividends, rights issues, or share splits specifically, use get_corporate_actions instead — it has the parsed, structured detail (amounts, ratios, ex-dates) that this tool's raw announcement text does not. Returns CSV (date,type,description,pdf_url), or JSON candidates if the input is ambiguous. |
| get_macro_series | List available macroeconomic series definitions. Optionally search by name. Returns CSV (id,name,description,frequency,unit,source). |
| get_macro_data | Get macroeconomic data for a specific series. Returns CSV (date,value), or JSON candidates if the input is ambiguous. |
| get_indices | List CSE market/sector indices (ASPI, S&P SL20, and industry sub-indices). Optionally search by name. Returns CSV (symbol,name,index_code,index_name,is_main_index). |
| get_index_data | Get historical data for a CSE market/sector index. Returns CSV (date,open,high,low,close,change,change_pct,sector_turnover,sector_volume,sector_trades,price_index,per,pbv,dy,companies_traded,companies_listed), or JSON candidates if the input is ambiguous. Headline indices (ASPI, S&P SL20) populate open/high/low/close; industry sub-indices instead populate sector_turnover/sector_volume/sector_trades and leave high/low empty. |
| screen_stocks | Screen CSE stocks by pre-computed technical criteria (moving-average position, relative-strength rating, 52-week range, unusual volume). Every filter is optional and AND-combined; omit a filter to not constrain on it. E.g. above_ema50=true & above_ema200=true & rs_rating_min=80 finds market-leading uptrends; is_52w_high=true finds stocks making new highs today; vol_vs_sma50_pct_min=100 finds unusual volume (trading at 2x+ its 50-day average). Returns CSV, one row per matching stock. |
| screen_indices | Screen CSE sector/headline indices (ASPI, S&P SL20, and industry sub-indices) by the same pre-computed technical criteria as screen_stocks — moving-average position and relative-strength rating. There is no 52-week-range or volume filter here (those are not tracked for indices). Use this to find which sectors are in a sustained uptrend/downtrend, as distinct from get_indices/get_index_data which show a single day's performance. Returns CSV, one row per matching index. |
| get_technicals | Get pre-computed daily technicals (moving averages, relative-strength rating, 52-week range, volume anomalies) for a CSE stock OR a sector/headline index (ASPI, S&P SL20, industry sub-indices) — one tool for both. Returns CSV, one row per trading day, most recent last. Defaults to the most recent 50 trading days; if more history is available the response says so and how to page further back with offset. If the input is ambiguous, returns JSON candidates instead. |
| get_market_summary | Get a daily/weekly/monthly market-wide overview: top gainers/losers, top by volume/turnover/crossings, ASI and S&P SL20 performance, and top/bottom performing sectors. A weekly or monthly summary requested mid-period covers what has happened so far (e.g. Monday through today for a weekly summary requested on a Wednesday), not a wait for the period to finish and not the prior complete period — the response's isPartialPeriod field says which case applies. Returns JSON (not CSV — this is a bundle of several small lists, not one table). |
| get_corporate_actions | Get a calendar of corporate actions (dividends, rights issues, share splits) — announcement details, not just a price-adjustment factor. This is the tool for dividends/rights/splits specifically; for other company disclosures (board changes, AGM/EGM notices, trading suspensions, etc.), use get_announcements instead. Omit all filters to browse every corporate action in the dataset, past and future, oldest first; pass from=<today> to jump straight to upcoming ones, which is the most common need. Optionally scope to one company (matches every one of its share classes, not just one) and/or one kind. Returns CSV, one row per action. If the symbol is ambiguous, returns JSON candidates instead. |