dse-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DSE_MCP_CACHE_DIR | No | Snapshot persistence | ~/.cache/dse-mcp |
| DSE_MCP_LOG_LEVEL | No | Logs go to stderr (never stdout — MCP) | WARNING |
| DSE_MCP_RATE_LIMIT | No | Outbound requests/second (token bucket) | 5.0 |
| DSE_MCP_CACHE_TTL_OPEN | No | Seconds, while the market is live | 30 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| market_statusA | Current DSE market state: live or closed, session hours, Dhaka local time. |
| market_summaryA | Latest market snapshot: DSEX/DS30 indices + changes, session totals, and DSES from the 30-day market information table. |
| get_index_historyA | Daily index history (DSEX, DS30, totals) for the last N days (max ~365; DSE keeps a rolling one-year archive). |
| top_moversA | Top movers by category: gainers | losers | most_active | turnover. Gain/loss lists reflect the +-10% circuit breaker; turnover leaders are computed from live quotes (untraded instruments excluded). |
| sector_performanceA | Aggregate live-quote performance per sector: advancing/declining counts and average change percent, sorted best-to-worst. |
| search_symbolsA | Find DSE instruments by trading code or company name (case-insensitive). |
| get_quoteA | Latest quote for one instrument: LTP, day range, close, YCP, change, trades, value, volume. Untraded instruments carry traded=false. |
| get_price_historyA | Day-end OHLCV candles, oldest-first. Give ISO start/end, or just days (default 90; DSE keeps a rolling one-year archive). |
| get_company_profileB | Company profile from displayCompany: capital structure, listing year, market lot, 52-week range, latest dividend status, EPS block. |
| get_fundamentalsB | Analysis-ready fundamentals: EPS, P/E (interim/audited/trailing), dividend yield + latest dividend, reserves, market cap, 52-week range. |
| get_market_depthB | Live order book: best bid/ask levels with volumes, plus session price statistics. Empty sides are normal outside trading hours. |
| get_newsA | Company or market-wide news/disclosures. Omit symbol for market-wide (inst=All); returns newest items first with titles, bodies, post dates. |
| get_pe_ratiosB | P/E table for all instruments (interim basic/diluted, audited, trailing). |
| compute_indicatorsA | Compute technical indicators for a symbol over the last year of day-end candles. Values are null when history is too short (e.g. recent IPOs). |
| technical_summaryA | Rule-based technical read: trend (SMA50/200 cross), RSI zone, MACD direction, Bollinger position, support/resistance, volume context, and a plain-language outlook with reasons. Informational only. |
| screen_stocksA | Filter the live board: sector (case-insensitive substring), max P/E (interim basic, falls back to trailing), price range, minimum volume. Untraded instruments are excluded. Sorted by traded value (turnover). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Each tool targets a distinct data aspect (quotes, history, fundamentals, news, technicals), so most boundaries are clear. However, get_company_profile, get_fundamentals, and get_pe_ratios share overlapping metrics like EPS and P/E, which could cause confusion if an agent relies on descriptions alone.
The naming pattern is mostly get_ for retrievals and noun phrases for snapshots (market_summary, top_movers), which is readable and predictable. Minor deviations like search_symbols versus get_index_history and compute_indicators versus technical_summary keep it from being fully uniform.
With 16 tools, the server is on the upper end but still well-scoped for a stock exchange data platform. Each tool earns its place by covering a meaningful query type—pricing, fundamentals, news, technicals—without unnecessary fragmentation or duplication.
The surface covers the core domain well: market state, indices, quotes, history, fundamentals, news, screening, and technical analysis. Minor omissions like a direct list-all-instruments endpoint or corporate actions beyond dividends are workable through search_symbols and screen_stocks, so no severe dead ends exist.