Best used with an AI agent

40+ live apps, open data APIs, MCP servers, and 200+ guides - more than anyone wants to click through. Point your AI here and it reads the whole map and does the work: finds the tool, pulls the data, runs the analysis, and hands you the links.

Here for the open-source code? Your agent finds the right repo for you - and can even clone and deploy it.

Prefer to explore on your own? Go right ahead.

Paste this to Claude Code, Codex, or any AI agent:
Go to tigzig.com and read tigzig.com/llms.txt. It is a practitioner toolkit - 40+ analytics apps, open no-auth data APIs, MCP servers, open-source repos (github.com/amararun), and 200+ build guides. Help me [your task]. Surface the exact links; where there is an API or MCP, call it directly; and if I want to self-host, find the repo and help me deploy it.
TigZig API & MCP Hub

QRep Portfolio Profiling API (QuantStats-Lumi) - Single-Symbol Analytics

REST / HTTP APIMCP Server (AI agents)Analytics APIOpen - no auth

Open, no-auth HTTP API and MCP server for single-symbol portfolio profiling against a benchmark - Sharpe, Sortino, Max Drawdown, Value at Risk, rolling statistics and return-distribution analysis, delivered as a professional HTML report. Powered by QuantStats-Lumi (the Lumiwealth fork of QuantStats). Built for AI agents first, humans second: every page here has a Copy-as-Markdown button so you can hand it straight to your agent.

Single symbolvs benchmark
QuantStats-Lumiengine
HTML reportoutput
MCP + RESTtwo interfaces
No authfully open

Overview

AI agents: open (no auth), listed in the machine-readable catalog at api.tigzig.com/.well-known/api-catalog (RFC 9727); OpenAPI at /openapi.json. Connect the MCP server below to generate a report as a tool call.

QRep Portfolio Profiling analyzes a single symbol against a benchmark and returns a professional HTML report with Sharpe and Sortino ratios, Max Drawdown, Value at Risk, rolling statistics, correlations and return-distribution analysis. Powered by QuantStats-Lumi (the Lumiwealth fork with bug fixes). Two access shapes over one backend:

  • REST - GET /analyze with symbols, benchmark (default ^GSPC), start_date, end_date, optional risk_free_rate.
  • MCP - the same report as an agent tool call (see below).

Two QuantStats versions exist. This is the older single-symbol profiling server on the QuantStats-Lumi fork. The newer QREP - Compare Securities server runs the original ranaroussi/quantstats and focuses on multi-security metric comparison. For multi-symbol portfolio reports, see SPR.

MCP Server (for AI agents)

Connect an AI agent and let it profile a security directly. No auth. Three transports:

  • https://quantstats-h.tigzig.com/v1/mcp/http - Streamable HTTP (recommended; MCP spec 2025-03-26).
  • https://quantstats-h.tigzig.com/v1/mcp/sse - SSE (legacy fallback).
  • https://quantstats-h.tigzig.com/mcp - original SSE endpoint, kept for back-compat.

Example prompt: "Profile AAPL against QQQ from January 2020 to March 2023."

Add to Claude.ai: Settings -> Connectors -> Add custom connector -> paste the Streamable HTTP URL (fall back to SSE if needed) -> approve. The same URLs work for Cursor, n8n, and any MCP client.

How it works

  • Historical price data for the symbol and benchmark is fetched from Yahoo Finance and aligned.
  • QuantStats-Lumi computes the metrics and renders the HTML report with visualizations.
  • FastAPI backend + fastapi-mcp, Flask web UI, deployed on Coolify (Hetzner) behind Cloudflare.

Informational only, not investment advice. Metrics use the open-source QuantStats-Lumi version; some calculations rely on assumptions (trading days, compounding). Always validate outputs.

Build your own (open source)

Clone the repo and run your own instance:

  1. Clone github.com/amararun/shared-quantstats
  2. pip install -r requirements.txt
  3. Set IS_LOCAL_DEVELOPMENT=1 (0 for production) and BASE_URL_FOR_REPORTS.
  4. uvicorn main:app --host 0.0.0.0 --port 8000
Self-hosting a public MCP server is your responsibility for security. A public endpoint needs edge rate limiting, abuse detection and secret hygiene. Full checklist: tigzig.com/security.

API Endpoints (REST / HTTP)

Base URLhttps://quantstats-h.tigzig.comPrepend this to every path listed below (e.g. /series becomes https://quantstats-h.tigzig.com/series). The curl example on each card shows the full URL.

Generated from the live OpenAPI spec - always in sync with the API. Try them interactively in Swagger.

GET /analyze

Analyze

Generate a comprehensive portfolio analysis report using QuantStats.

ParamInTypeDescription
symbolsquerystringrequiredMANDATORY: Primary stock symbol to analyze (e.g., 'AAPL', 'MSFT', 'GOOGL'). Must be a valid Yahoo Finance ticker symbol. This is the main asset being analyzed. Note: Despite the plural name, only one symbol should be provided.
benchmarkquerystringoptionalMANDATORY: Benchmark symbol for comparison (e.g., '^GSPC' for S&P 500, '^IXIC' for NASDAQ, '^DJI' for Dow Jones). Must be a valid Yahoo Finance ticker symbol. While this defaults to '^GSPC', a benchmark is ALWAYS used in analysis - this tool requires exactly 2 symbols for comparative analysis. If you don't specify a benchmark, '^GSPC' (S&P 500) will be used automatically.
start_datequerystringrequiredMANDATORY: Start date in YYYY-MM-DD format
end_datequerystringrequiredMANDATORY: End date in YYYY-MM-DD format
risk_free_ratequerynumberoptionalRisk-free rate as percentage (default: 5.0)
curl "https://quantstats-h.tigzig.com/analyze?symbols=AAPL,MSFT&start_date=2020-01-01&end_date=2024-12-31"
POST /api/analyze

Analyze Api

API endpoint for analysis

curl -X POST "https://quantstats-h.tigzig.com/api/analyze"
POST /qpulse/analyze

Qpulse Analyze

QPulse Tearsheet Generation - Simple API using native QuantStats

curl -X POST "https://quantstats-h.tigzig.com/qpulse/analyze"
GET /qpulse/analyze

Qpulse Analyze Get

GET version of QPulse analyze for easy browser/curl testing

ParamInTypeDescription
symbolquerystringrequiredStock symbol (e.g., 'AAPL')
benchmarkquerystringoptionalBenchmark symbol
start_datequerystringrequiredStart date (YYYY-MM-DD)
end_datequerystringrequiredEnd date (YYYY-MM-DD)
curl "https://quantstats-h.tigzig.com/qpulse/analyze?symbol=AAPL&start_date=2020-01-01&end_date=2024-12-31"