{
  "markdown": "# Portfolio Signals MCP\n\n[![PyPI](https://img.shields.io/pypi/v/portfolio-signals-mcp)](https://pypi.org/project/portfolio-signals-mcp/)\n[![Python](https://img.shields.io/pypi/pyversions/portfolio-signals-mcp)](https://pypi.org/project/portfolio-signals-mcp/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\nAn 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.\n\nData source: Yahoo Finance via [yfinance](https://github.com/ranaroussi/yfinance) — free, no API key required.\n\nmcp-name: io.github.KhizarShabir1/portfolio-signals\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `get_quote(ticker)` | Price, day change, volume, 52-week range |\n| `get_technical_signals(ticker)` | RSI(14) with overbought/oversold zone, MACD(12,26,9) vs signal line, SMA 50/200 golden/death cross |\n| `compare_tickers(tickers, period)` | Ranked total returns over 1mo–5y |\n| `weekly_digest(tickers)` | Whole-portfolio report: 1w/1mo returns, RSI, MACD position, tickers outside RSI 30–70 |\n\n**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.\n\n## Quick start\n\nNo install needed if you have [uv](https://docs.astral.sh/uv/):\n\n```bash\nuvx portfolio-signals-mcp\n```\n\n### Claude Code\n\n```bash\nclaude mcp add portfolio-signals -- uvx portfolio-signals-mcp\n```\n\nThen ask Claude things like:\n\n- *\"What's the RSI and MACD on NVDA right now?\"*\n- *\"Compare AAPL, MSFT and VOO over 6 months.\"*\n- *\"Give me a weekly digest for my portfolio: AAPL, NVDA, VOO, TSLA.\"*\n\n### Cursor\n\nSettings → Tools & MCP → Add a Custom MCP Server:\n\n```json\n{\n  \"mcpServers\": {\n    \"portfolio-signals\": {\n      \"command\": \"uvx\",\n      \"args\": [\"portfolio-signals-mcp\"]\n    }\n  }\n}\n```\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"portfolio-signals\": {\n      \"command\": \"uvx\",\n      \"args\": [\"portfolio-signals-mcp\"]\n    }\n  }\n}\n```\n\n### Remote (HTTP)\n\nNo local install — connects directly to the hosted instance:\n\n```bash\nclaude mcp add --transport http portfolio-signals https://portfolio-signals-mcp.fly.dev/mcp\n```\n\n## From source\n\n```bash\ngit clone https://github.com/KhizarShabir1/portfolio-signals-mcp\ncd portfolio-signals-mcp\npip install -e .\nportfolio-signals-mcp           # stdio\nportfolio-signals-mcp --http    # streamable HTTP on :8000 (PORT env to change)\n```\n\n## Disclaimer\n\nInformational only — not financial advice. Market data comes from Yahoo Finance and is subject to Yahoo's terms of use.\n\n## License\n\nMIT © [Khizar Shabir](https://github.com/KhizarShabir1)\n",
  "bytes": 3013,
  "sha": "0cfa1de800f4a7dfca00457402b7918f29c14bdd3daffd3b860ffc8f5436756c",
  "repo_slug": "khizarshabir1/portfolio-signals-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_khizarshabir1_portfolio_signal_d4ae3752/readme"
}