PSX MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PSX MCP ServerWhat are the top gainers on PSX today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PSX MCP Server (Modified for Remote/Cloud Deployment)
Based on PSX-MCP-Server by Ahad Raza, modified with HTTP transport, API key authentication, and cloud deployment support. See LICENSE for the original MIT license.
A Model Context Protocol (MCP) server that provides tools to scrape and access Pakistan Stock Exchange (PSX) market data.
What's Changed From the Original
This fork modifies the original stdio-only local server to also run as a remotely-hosted HTTP service, so it can be deployed to a cloud platform and connected to Claude (or any other MCP client) from anywhere, not just from a process running on the same machine.
File | Change |
| Added an |
| Bug fix: this script had its own separate |
| Added |
| Changed exposed port from |
| Added — the original repo declared MIT in |
All 12 original tools (market_data, intraday, history, sector,
gainers, losers, date_range, time_range, ohlcv, multi_ohlcv,
price_at_time, volume_analysis) are unchanged and work identically to the
original — only the transport layer and authentication were added.
Running remotely vs. locally
Original / local use (stdio): still works exactly as documented below, for use with a local MCP client like Gemini CLI or Claude Desktop's local config.
New / remote use (HTTP): set
PSX_MCP_API_KEYand optionallyPORT, then runpython scripts/start_server.py— the server now listens onhttp://0.0.0.0:$PORT/mcpand requires theX-API-Keyheader on every request. This is what allows deployment to Render, Cloud Run, or any other container host.
Related MCP server: PSX MCP Server
🎥 Demo Video
Watch this demo to see the PSX MCP Server in action with real-time market data!
Features
This MCP server provides 12 powerful tools for comprehensive PSX data access:
📊 Basic Tools (Simple & Intuitive)
market_data() - Get current market data for all 460+ stocks listed on PSX
intraday(symbol) - Get intraday time series data for a specific stock
history(symbol) - Get end-of-day historical data for a specific stock (past 5 years)
sector(sector) - Search stocks by sector
gainers(limit) - Get top gaining stocks
losers(limit) - Get top losing stocks
🎯 Advanced Tools (Clean & Powerful)
date_range(symbol, start, end) - Get EOD data for specific date range (YYYY-MM-DD format)
time_range(symbol, start, end) - Get intraday data for specific time range (YYYY-MM-DD HH:MM:SS format)
ohlcv(symbol) - Get OHLCV (Open, High, Low, Close, Volume) data for specific stock
multi_ohlcv(symbols) - Get OHLCV data for multiple stocks (comma-separated symbols)
price_at_time(symbol, timestamp) - Get closest price data at specific Unix timestamp
volume_analysis(symbol, days) - Analyze volume patterns over specified number of days
Installation
Option 1: Direct Installation (local, stdio)
Install dependencies:
pip install -r requirements.txtConfigure Gemini CLI (copy and customize the template):
cp gemini_config.template.json gemini_config.json
# Edit gemini_config.json with your project pathRun the MCP server:
python scripts/start_server.pyOption 2: Development Installation
Install with development tools:
make setup
# or
pip install -e ".[dev]"Run with Makefile:
make run-serverOption 3: Docker (local or cloud deployment)
Build the Docker image:
docker build -t psx-mcp-server .Run the container (requires
PSX_MCP_API_KEYto be set — see below):
docker run -p 8000:8000 -e PSX_MCP_API_KEY=your-key-here -e PORT=8000 psx-mcp-serverOption 4: Remote HTTP mode (new)
Set the required environment variable and run directly:
export PSX_MCP_API_KEY=your-long-random-key-here
export PORT=8000 # optional, defaults to 8000
python scripts/start_server.pyThe server will be reachable at http://localhost:8000/mcp (or your deployed
URL) and requires the X-API-Key header on every MCP request. An
unauthenticated health check is available at /health.
Configuration
Template Files
The project includes template configuration files for easy setup:
gemini_config.template.json- Simple Gemini CLI configuration templatemcp_config.template.json- Advanced MCP configuration template with additional settings
Quick Setup (local stdio)
Copy the template file:
cp gemini_config.template.json gemini_config.jsonEdit the configuration with your project path:
{
"mcpServers": {
"psx-scraper": {
"command": "python",
"args": ["/your/actual/path/scripts/start_server.py"],
"env": {
"PYTHONPATH": "/your/actual/path/src"
}
}
}
}Connect Gemini CLI:
gemini --config gemini_config.jsonEnvironment Variables (remote/HTTP mode)
Variable | Required | Description |
| Yes, for HTTP mode | Shared secret required in the |
| No | Port to bind to. Most hosting platforms (Render, Cloud Run) set this automatically. Defaults to |
Development
Available Commands
make help # Show all available commands
make test # Run test suite
make lint # Run linting checks
make format # Format code with black
make run-demo # Run demonstrations
make clean # Clean build artifactsData Sources
The server scrapes data from the following PSX endpoints:
https://dps.psx.com.pk/market-watch- Market watch datahttps://dps.psx.com.pk/timeseries/int/{SYMBOL}- Intraday datahttps://dps.psx.com.pk/timeseries/eod/{SYMBOL}- End-of-day data
Usage
The server can be used with any MCP client, such as Gemini CLI, Claude Desktop, or claude.ai (via a custom connector, in HTTP mode). The tools return JSON data that can be processed by the client.
Example Queries
Basic Data (Super Simple):
"Show me market data" →
market_data()"Get HBL intraday data" →
intraday('HBL')"Show HBL history" →
history('HBL')"Find banking stocks" →
sector('Banking')"Top 5 gainers" →
gainers(5)
Advanced Filtering (Clean & Intuitive):
"HBL data from Jan to Feb" →
date_range('HBL', '2024-01-01', '2024-02-01')"HBL intraday 9AM to 3PM" →
time_range('HBL', '2024-10-04 09:00:00', '2024-10-04 15:00:00')"HBL OHLCV data" →
ohlcv('HBL')"OHLCV for HBL,OGDC" →
multi_ohlcv('HBL,OGDC')"HBL volume analysis" →
volume_analysis('HBL', 30)
Example Stock Symbols
HBL - Habib Bank Limited
OGDC - Oil and Gas Development Company
PTC - Pakistan Telecommunication Company
LUCK - Lucky Cement
ENGRO - Engro Corporation
Data Models
Stock Data
Symbol, Sector, Listed In
LDCP, Open, High, Low, Current prices
Change amount and percentage
Volume traded
Time Series Data
Unix timestamp
Price/Close price
Volume
Open price (for EOD data)
Error Handling
All tools include proper error handling and return error messages in JSON format if requests fail.
Notes on Data Reliability
This server scrapes PSX's public website (dps.psx.com.pk) directly — it is
not an official PSX API. It provides price/volume/OHLCV data only, not
fundamentals (EPS, profit, dividends, corporate actions). Verify any figure
that will inform an actual trading decision against PSX's primary filings
before acting on it.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server that exposes Pakistan Stock Exchange data (quotes, dividends, announcements, indices) as LLM-callable tools, enabling conversational market queries in plain English.93MIT
- Alicense-qualityDmaintenanceProvides 12 tools to scrape and access Pakistan Stock Exchange market data, including current prices, historical data, intraday, sector search, and volume analysis.5MIT
- Alicense-qualityBmaintenanceProvides TradingView-style market analysis with OHLCV candles, 19 technical indicators, a screener, and a backtester using public Yahoo Finance data without API keys.MIT
- Flicense-qualityCmaintenanceEnables querying Pakistan Stock Exchange data including market summaries, stock quotes, history, and sector breakdowns using natural language.
Related MCP Connectors
TradeOS MCP: ticker search, My Agent, chart TA, macro news. npm stdio or HTTP.
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Access SEC filings, insider transactions, and financial data via the ShareSEER API.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/burhank928/PSX-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server