Portfolio Signals MCP
An MCP server that gives any AI coding agent (Claude Code, Cursor, Claude Desktop, etc.) real-time stock quotes and computed technical-analysis signals — RSI, MACD crossovers, golden/death crosses, and whole-portfolio weekly digests. Indicators are calculated in code, not by the LLM, so the numbers are right.
Data source: Yahoo Finance via yfinance — free, no API key required.
mcp-name: io.github.KhizarShabir1/portfolio-signals
Tools
| Tool | What it does |
|---|---|
get_quote(ticker) |
Price, day change, volume, 52-week range |
get_technical_signals(ticker) |
RSI(14) with overbought/oversold zone, MACD(12,26,9) vs signal line, SMA 50/200 golden/death cross |
compare_tickers(tickers, period) |
Ranked total returns over 1mo–5y |
weekly_digest(tickers) |
Whole-portfolio report: 1w/1mo returns, RSI, MACD position, tickers outside RSI 30–70 |
Design principle: tools return measurements and standard threshold classifications (RSI 70/30 zones, golden/death cross, MACD vs signal line) — never directional opinions or narrative summaries. Interpretation is the agent's job; determinism is the server's.
Quick start
No install needed if you have uv:
uvx portfolio-signals-mcp
Claude Code
claude mcp add portfolio-signals -- uvx portfolio-signals-mcp
Then ask Claude things like:
- "What's the RSI and MACD on NVDA right now?"
- "Compare AAPL, MSFT and VOO over 6 months."
- "Give me a weekly digest for my portfolio: AAPL, NVDA, VOO, TSLA."
Cursor
Settings → Tools & MCP → Add a Custom MCP Server:
{
"mcpServers": {
"portfolio-signals": {
"command": "uvx",
"args": ["portfolio-signals-mcp"]
}
}
}
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"portfolio-signals": {
"command": "uvx",
"args": ["portfolio-signals-mcp"]
}
}
}
Remote (HTTP)
No local install — connects directly to the hosted instance:
claude mcp add --transport http portfolio-signals https://portfolio-signals-mcp.fly.dev/mcp
From source
git clone https://github.com/KhizarShabir1/portfolio-signals-mcp
cd portfolio-signals-mcp
pip install -e .
portfolio-signals-mcp # stdio
portfolio-signals-mcp --http # streamable HTTP on :8000 (PORT env to change)
Disclaimer
Informational only — not financial advice. Market data comes from Yahoo Finance and is subject to Yahoo's terms of use.
License
MIT © Khizar Shabir
Metadata
Release files for portfolio-signals-mcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| portfolio_signals_mcp-0.1.1.tar.gz | 7.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| portfolio_signals_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.7 kB
Release files / portfolio_signals_mcp-0.1.1.tar.gz
| Download URL | portfolio_signals_mcp-0.1.1.tar.gz |
|---|---|
| Size | 7.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c0f60ec485ab72174e5812f796c6a2f09e66ef8faf18ae91e951bb46b74db816
|
|
BLAKE2b-256 checksum How to use checksums |
c25de6a50401c5bf7ad263fa5d38e47add9e4d99498d3e723a53c222c42a8517
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.4
|
Release files / portfolio_signals_mcp-0.1.1-py3-none-any.whl
| Download URL | portfolio_signals_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0bd5b12f27ea48a04ab3cfb9c5220455ddd6853bab2876c649faa656eefe3bf7
|
|
BLAKE2b-256 checksum How to use checksums |
22f8ee988e621772f4e41e057391c5dcf851a5c8ef4617cf3661f2459b7d181b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.4
|