Documentation
Everything you need to connect PSX by Rovenin to Claude and start asking about the Pakistan Stock Exchange.
Data disclaimer. All figures come from the public PSX Data Portal at dps.psx.com.pk. The data is unofficial, may be delayed, and is provided for information only. Do not rely on it for trading decisions. PSX by Rovenin is built by Rovenin and is not affiliated with, endorsed by, or operated by the Pakistan Stock Exchange.
Setup
PSX by Rovenin is a remote MCP server using the streamable HTTP transport. It is authless, so there is no account, no API key and no sign in step.
- Open Claude on the web or in the mobile app.
- Go to Settings, then Connectors.
- Choose Add custom connector.
- Paste the URL below as the remote MCP server URL and give it a name such as PSX by Rovenin.
- Save, then start a new chat and ask one of the example questions further down this page.
https://psx.rovenin.com/api/mcpClaude decides when to call the connector. If it does not reach for it, name the market in your question, for example "on the PSX" or "Pakistan Stock Exchange".
Using it from another MCP client
Any client that speaks streamable HTTP can connect to the same URL.
{
"mcpServers": {
"psx": {
"url": "https://psx.rovenin.com/api/mcp"
}
}
}Tools
All 9 tools are read only and annotated as such, so Claude can call them without asking you to confirm each one. Nothing here writes, changes or deletes anything.
Tickers are upper case codes such as HBL, ENGROH or LUCK. Dates use the format YYYY-MM-DD. Prices are in Pakistani rupees. Dates and times are Pakistan Standard Time.
search_symbols
Search PSX Symbols. Searches every listed company and instrument and returns matching tickers with the company name and sector. Use it to turn a company name into a ticker.
Arguments: query (required), limit
get_quote
Get PSX Quote. The latest available price for one ticker, with change since the previous close, day open, high, low and traded volume. Falls back to the last end of day bar for symbols that are not trading today, and says so.
Arguments: symbol (required)
get_history
Get PSX Daily History. Daily closing price and volume for one ticker or index over a date range, plus the change across the range.
Arguments: symbol (required), start_date, end_date, limit
get_month_ohlc
Get PSX Monthly OHLC. Daily open, high, low, close and volume for one ticker across a single calendar month, with a summary of the month.
Arguments: symbol (required), month (required), year (required)
get_intraday
Get PSX Intraday Prices. The intraday price path for the most recent session as a sampled series, with session open, high, low and last.
Arguments: symbol (required), points
market_movers
Get PSX Market Movers. Ranks today’s traded stocks by percentage change, volume or price, optionally inside one sector. Covers gainers, losers and most active names.
Arguments: sort_by, direction, sector, limit
compare_performance
Compare PSX Performance. Compares the price return of two to ten tickers or indices over the same window and ranks them best to worst. Mix stocks and indices freely.
Arguments: symbols (required), start_date, end_date
index_level
Get PSX Index Level. The latest level of KSE100, KSE30, KMI30, ALLSHR or KMIALLSHR, with change since the previous close and the move over the past year.
Arguments: index (required)
company_profile
Get PSX Company Profile. Business description, key people, address, website, auditor, registrar, market capitalisation, shares, free float and ready market statistics for one listed company.
Arguments: symbol (required)
Example prompts
Each of these reaches for a different set of tools.
What is HBL trading at on the PSX today, and how does it compare with where KSE100 sits?
Uses get_quote and index_level.
Show me the ten biggest gainers on the Pakistan Stock Exchange today in the cement sector.
Uses market_movers.
Compare HBL, ENGROH and KSE100 over the past year and tell me which held up best.
Uses compare_performance, with search_symbols if a ticker needs resolving.
Give me the daily candles for LUCK in August 2026 and summarise how the month went.
Uses get_month_ohlc.
Who runs Habib Bank, and what is its market capitalisation and free float?
Uses company_profile.
Indices
| Code | Index |
|---|---|
KSE100 | KSE 100 Index, the headline PSX benchmark |
KSE30 | KSE 30 Index |
KMI30 | KMI 30 Index, Shariah compliant |
ALLSHR | PSX All Shares Index |
KMIALLSHR | KMI All Shares Index |
Limits and behaviour
- Rate limit: 120 requests per 60 seconds per client address, which is there to stop a single abusive client rather than to shape normal use.
- Upstream limit: at most 6 calls in flight and 90 calls a minute actually leave this server for the PSX Data Portal. Together with caching this is what keeps the connector from overloading a public service. Answers already in cache are unaffected by it.
- Caching: the symbol list is cached for a day, prices for about a minute, company profiles for half an hour, and completed months for six hours. A cached answer never touches the portal.
- Upstream calls time out after 8 seconds and are retried once.
- History depth: the portal serves roughly five years of daily bars for most symbols. Requests outside that range return a clear message naming the range that is available.
- Delisted or suspended symbols still appear in the symbol list. Tools flag stale data and say how old it is rather than presenting it as current.
Privacy and support
PSX by Rovenin stores no user data and collects no conversation data. See the privacy page for what is logged and for how long.