finstack-mcp 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. finstack_mcp-0.3.0/.env.example +33 -0
  2. finstack_mcp-0.3.0/.github/workflows/ci.yml +54 -0
  3. finstack_mcp-0.3.0/.gitignore +41 -0
  4. finstack_mcp-0.3.0/CHANGELOG.md +68 -0
  5. finstack_mcp-0.3.0/CONTRIBUTING.md +37 -0
  6. finstack_mcp-0.3.0/Dockerfile +25 -0
  7. finstack_mcp-0.3.0/LICENSE +21 -0
  8. finstack_mcp-0.3.0/PKG-INFO +101 -0
  9. finstack_mcp-0.3.0/README.md +67 -0
  10. finstack_mcp-0.3.0/claude_desktop_config.json.example +15 -0
  11. finstack_mcp-0.3.0/docs/DAILY_BRIEF.md +55 -0
  12. finstack_mcp-0.3.0/docs/LAUNCH_GUIDE.md +77 -0
  13. finstack_mcp-0.3.0/docs/LAUNCH_TODAY.md +31 -0
  14. finstack_mcp-0.3.0/docs/MASTER_TRACKER.md +55 -0
  15. finstack_mcp-0.3.0/docs/PARTNER_PLAN.md +144 -0
  16. finstack_mcp-0.3.0/docs/WORKLOG.md +43 -0
  17. finstack_mcp-0.3.0/landing-page/index.html +794 -0
  18. finstack_mcp-0.3.0/pyproject.toml +60 -0
  19. finstack_mcp-0.3.0/pytest.ini +3 -0
  20. finstack_mcp-0.3.0/railway.json +14 -0
  21. finstack_mcp-0.3.0/server.json +50 -0
  22. finstack_mcp-0.3.0/src/finstack/__init__.py +3 -0
  23. finstack_mcp-0.3.0/src/finstack/briefs.py +168 -0
  24. finstack_mcp-0.3.0/src/finstack/config.py +140 -0
  25. finstack_mcp-0.3.0/src/finstack/data/__init__.py +0 -0
  26. finstack_mcp-0.3.0/src/finstack/data/analytics.py +774 -0
  27. finstack_mcp-0.3.0/src/finstack/data/fundamentals.py +353 -0
  28. finstack_mcp-0.3.0/src/finstack/data/global_markets.py +390 -0
  29. finstack_mcp-0.3.0/src/finstack/data/nse.py +481 -0
  30. finstack_mcp-0.3.0/src/finstack/data/nse_advanced.py +734 -0
  31. finstack_mcp-0.3.0/src/finstack/payments.py +381 -0
  32. finstack_mcp-0.3.0/src/finstack/server.py +173 -0
  33. finstack_mcp-0.3.0/src/finstack/tools/__init__.py +0 -0
  34. finstack_mcp-0.3.0/src/finstack/tools/analytics.py +372 -0
  35. finstack_mcp-0.3.0/src/finstack/tools/fundamentals.py +143 -0
  36. finstack_mcp-0.3.0/src/finstack/tools/global_.py +203 -0
  37. finstack_mcp-0.3.0/src/finstack/tools/indian.py +230 -0
  38. finstack_mcp-0.3.0/src/finstack/utils/__init__.py +0 -0
  39. finstack_mcp-0.3.0/src/finstack/utils/cache.py +123 -0
  40. finstack_mcp-0.3.0/src/finstack/utils/helpers.py +215 -0
  41. finstack_mcp-0.3.0/src/finstack/utils/rate_limiter.py +110 -0
  42. finstack_mcp-0.3.0/tests/__init__.py +0 -0
  43. finstack_mcp-0.3.0/tests/test_briefs.py +36 -0
  44. finstack_mcp-0.3.0/tests/test_payments.py +82 -0
  45. finstack_mcp-0.3.0/tests/test_server.py +21 -0
@@ -0,0 +1,33 @@
1
+ # FinStack MCP Server Configuration
2
+ # Copy this to .env and fill in your values
3
+
4
+ # ===== FREE DATA SOURCES (no key needed for basic usage) =====
5
+ # yfinance: No API key required
6
+ # SEC EDGAR: No API key required (but set a user agent)
7
+ SEC_EDGAR_USER_AGENT="FinStack/0.1.0 your-email@example.com"
8
+
9
+ # ===== OPTIONAL: Enhanced Data Sources =====
10
+ # Alpha Vantage (free tier: 25 requests/day)
11
+ # Get yours at: https://www.alphavantage.co/support/#api-key
12
+ ALPHA_VANTAGE_API_KEY=""
13
+
14
+ # CoinGecko (free tier: 30 calls/min)
15
+ # Get yours at: https://www.coingecko.com/en/api
16
+ COINGECKO_API_KEY=""
17
+
18
+ # ===== HOSTED MODE (Phase 2+) =====
19
+ # Only needed if you're running the hosted/paid version
20
+ FINSTACK_MODE="free" # free | pro | enterprise
21
+ FINSTACK_API_KEY="" # For hosted mode authentication
22
+ STRIPE_SECRET_KEY="" # For payment processing
23
+ STRIPE_WEBHOOK_SECRET=""
24
+ RAZORPAY_KEY_ID=""
25
+ RAZORPAY_KEY_SECRET=""
26
+
27
+ # ===== SERVER CONFIG =====
28
+ FINSTACK_HOST="127.0.0.1"
29
+ FINSTACK_PORT=8000
30
+ FINSTACK_LOG_LEVEL="INFO"
31
+ FINSTACK_CACHE_TTL_QUOTES=300 # 5 minutes for live quotes
32
+ FINSTACK_CACHE_TTL_FUNDAMENTALS=3600 # 1 hour for fundamentals
33
+ FINSTACK_CACHE_TTL_HISTORICAL=86400 # 24 hours for historical data
@@ -0,0 +1,54 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ lint-and-check:
11
+ name: Lint & Import Check
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12"]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Set up Python ${{ matrix.python-version }}
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+
25
+ - name: Install dependencies
26
+ run: |
27
+ pip install -e ".[dev]"
28
+
29
+ - name: Check syntax (all Python files compile)
30
+ run: |
31
+ find src -name "*.py" -exec python -m py_compile {} +
32
+ echo "All files compiled successfully"
33
+
34
+ - name: Ruff lint
35
+ run: ruff check src/
36
+
37
+ - name: Run tests
38
+ env:
39
+ PYTHONPATH: src
40
+ run: pytest tests -q -p no:cacheprovider
41
+
42
+ - name: Verify server imports
43
+ run: |
44
+ python -c "from finstack.server import mcp; print('Server OK')"
45
+
46
+ - name: Verify all tool modules load
47
+ run: |
48
+ python -c "
49
+ from finstack.tools.indian import register_indian_tools
50
+ from finstack.tools.global_ import register_global_tools
51
+ from finstack.tools.fundamentals import register_fundamental_tools
52
+ from finstack.tools.analytics import register_analytics_tools
53
+ print('All tool modules OK')
54
+ "
@@ -0,0 +1,41 @@
1
+ # Python
2
+ __pycache__/
3
+ **/__pycache__/
4
+ *.py[cod]
5
+ *$py.class
6
+ *.egg-info/
7
+ dist/
8
+ build/
9
+ *.egg
10
+
11
+ # Environment
12
+ .env
13
+ .venv/
14
+ venv/
15
+
16
+ # IDE
17
+ .vscode/
18
+ .idea/
19
+ *.swp
20
+ *.swo
21
+
22
+ # OS
23
+ .DS_Store
24
+ Thumbs.db
25
+
26
+ # Testing
27
+ .pytest_cache/
28
+ .coverage
29
+ htmlcov/
30
+ pytest-cache-files-*/
31
+
32
+ # Logs
33
+ *.log
34
+
35
+ # Local DB (payments)
36
+ *.db
37
+ *.sqlite
38
+
39
+ # Secrets
40
+ *.pem
41
+ *.key
@@ -0,0 +1,68 @@
1
+ # Changelog
2
+
3
+ All notable changes to FinStack MCP are documented here.
4
+ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
5
+
6
+ ---
7
+
8
+ ## [0.3.0] — 2025-03-25
9
+
10
+ ### Added
11
+ - **37 total MCP tools** across Indian markets, global markets, fundamentals, and analytics
12
+ - `mutual_fund_nav` — live NAV for any Indian mutual fund via AMFI (free, no key)
13
+ - `nse_circuit_breakers` — scan stocks hitting upper/lower circuit limits today
14
+ - `sensex_components` — full constituent list of Nifty 50 or Sensex with live prices, top gainers/losers within the index
15
+ - `nse_52week_scanner` — scan Nifty 50 for stocks near 52-week high or low with configurable threshold
16
+ - `stock_screener` (Pro) — filter stocks by P/E, ROE, market cap, sector, momentum
17
+ - `nse_options_chain` (Pro) — full options chain with PCR, max pain, IV skew
18
+ - `backtest_strategy` (Pro) — SMA crossover backtesting with CAGR, win rate, trade log
19
+ - `portfolio_analysis` (Pro) — P&L, weights, correlation, risk for a basket of stocks
20
+ - `support_resistance` (Pro) — pivot points and key price levels
21
+ - `nse_fii_dii_data` — FII/DII institutional activity
22
+ - `nse_bulk_deals` — bulk and block deals
23
+ - `nse_corporate_actions` — dividends, splits, bonuses
24
+ - `nse_quarterly_results` — latest quarterly financials with QoQ growth
25
+ - `earnings_calendar` — upcoming earnings dates
26
+ - `ipo_calendar` — upcoming and recent IPOs
27
+ - `sector_performance` — Nifty sectoral index performance
28
+ - Landing page (`landing-page/index.html`) with interactive mesh background
29
+ - Dockerfile and Railway deployment config
30
+ - Health check function for hosted deployments
31
+ - GitHub Actions CI (Python 3.10 / 3.11 / 3.12)
32
+
33
+ ### Changed
34
+ - SEC filing fetcher now uses context manager — eliminates resource leak on error paths
35
+ - Removed unused `pandas-ta` and `cachetools` dependencies
36
+ - Added `numpy` as explicit dependency
37
+ - Version classifier upgraded Alpha → Beta
38
+
39
+ ---
40
+
41
+ ## [0.2.0] — 2025-03-18
42
+
43
+ ### Added
44
+ - **20 total MCP tools**
45
+ - `stock_quote`, `stock_historical` — global equities (US, EU, Asia)
46
+ - `crypto_price`, `crypto_historical` — Bitcoin, Ethereum, any coin
47
+ - `forex_rate` — any currency pair live
48
+ - `market_news` — news by ticker or general market
49
+ - `sec_filing`, `sec_filing_search` — SEC EDGAR 10-K / 10-Q / 8-K
50
+ - `income_statement`, `balance_sheet`, `cash_flow` — annual & quarterly
51
+ - `key_ratios`, `company_profile`, `dividend_history`
52
+ - TTL cache system (5 min quotes / 1 hr fundamentals / 24 hr history)
53
+ - Per-tier rate limiter
54
+
55
+ ---
56
+
57
+ ## [0.1.0] — 2025-03-11
58
+
59
+ ### Added
60
+ - Initial release — 6 Indian market tools
61
+ - `nse_quote` — real-time NSE price, P/E, market cap
62
+ - `bse_quote` — real-time BSE price
63
+ - `nse_market_status` — open / closed / pre-open check
64
+ - `nifty_index` — Nifty 50, Sensex, Bank Nifty, IT index
65
+ - `nse_historical` — OHLCV for any period and interval
66
+ - `nse_top_movers` — top gainers, losers, most active
67
+ - FastMCP-based server with stdio and HTTP transport
68
+ - MIT license
@@ -0,0 +1,37 @@
1
+ # Contributing to FinStack MCP
2
+
3
+ Thanks for your interest! Here's how to contribute.
4
+
5
+ ## Setup
6
+
7
+ ```bash
8
+ git clone https://github.com/SpawnAgent/finstack-mcp.git
9
+ cd finstack-mcp
10
+ pip install -e ".[dev]"
11
+ ```
12
+
13
+ ## Adding a New Tool
14
+
15
+ 1. Add data fetcher function in `src/finstack/data/`
16
+ 2. Add MCP tool wrapper in `src/finstack/tools/`
17
+ 3. Register in `src/finstack/server.py`
18
+ 4. Test with Claude Desktop locally
19
+ 5. Submit PR
20
+
21
+ ## Code Style
22
+
23
+ - Python 3.10+, type hints everywhere
24
+ - Docstrings on all public functions (Claude reads these)
25
+ - Use `clean_nan()` on all return dicts
26
+ - Use `@cached()` decorator for API calls
27
+ - Return `{"error": True, "message": "..."}` on failures
28
+
29
+ ## Tool Naming
30
+
31
+ - Indian tools: `nse_*` or `bse_*` prefix
32
+ - Global tools: `stock_*`, `crypto_*`, `forex_*`
33
+ - Analytics: descriptive name (`technical_indicators`, `stock_screener`)
34
+
35
+ ## Questions?
36
+
37
+ Open an issue or reach out on [Twitter/X @SpawnAgent](https://x.com/SpawnAgent).
@@ -0,0 +1,25 @@
1
+ FROM python:3.12-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Install dependencies
6
+ COPY pyproject.toml .
7
+ COPY src/ src/
8
+ COPY README.md .
9
+ COPY LICENSE .
10
+
11
+ RUN pip install --no-cache-dir -e ".[hosted]"
12
+
13
+ # Environment
14
+ ENV FINSTACK_HOST=0.0.0.0
15
+ ENV FINSTACK_PORT=8000
16
+ ENV FINSTACK_TRANSPORT=streamable-http
17
+ ENV FINSTACK_LOG_LEVEL=INFO
18
+
19
+ EXPOSE 8000
20
+
21
+ # Health check
22
+ HEALTHCHECK --interval=30s --timeout=5s --start-period=10s \
23
+ CMD python -c "import httpx; httpx.get('http://localhost:8000/health')" || exit 1
24
+
25
+ CMD ["python", "-m", "finstack.server", "--transport", "streamable-http"]
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 SpawnAgent
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,101 @@
1
+ Metadata-Version: 2.4
2
+ Name: finstack-mcp
3
+ Version: 0.3.0
4
+ Summary: Open-source MCP server for Indian (NSE/BSE) + Global financial data with built-in AI analytics
5
+ Project-URL: Homepage, https://github.com/SpawnAgent/finstack-mcp
6
+ Project-URL: Repository, https://github.com/SpawnAgent/finstack-mcp
7
+ Project-URL: Issues, https://github.com/SpawnAgent/finstack-mcp/issues
8
+ Author-email: SpawnAgent <spawnagent@proton.me>
9
+ License: MIT
10
+ License-File: LICENSE
11
+ Keywords: ai-agents,bse,claude,cursor,finance,mcp,nse,stocks,trading
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Financial and Insurance Industry
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Topic :: Office/Business :: Financial
18
+ Requires-Python: >=3.10
19
+ Requires-Dist: httpx>=0.27.0
20
+ Requires-Dist: mcp[cli]>=1.0.0
21
+ Requires-Dist: numpy>=1.26.0
22
+ Requires-Dist: pandas>=2.0.0
23
+ Requires-Dist: pydantic>=2.0.0
24
+ Requires-Dist: python-dotenv>=1.0.0
25
+ Requires-Dist: yfinance>=0.2.40
26
+ Provides-Extra: dev
27
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
28
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
29
+ Requires-Dist: ruff>=0.5.0; extra == 'dev'
30
+ Provides-Extra: hosted
31
+ Requires-Dist: stripe>=8.0.0; extra == 'hosted'
32
+ Requires-Dist: uvicorn>=0.30.0; extra == 'hosted'
33
+ Description-Content-Type: text/markdown
34
+
35
+ # FinStack MCP
36
+
37
+ [![PyPI version](https://badge.fury.io/py/finstack-mcp.svg)](https://pypi.org/project/finstack-mcp/)
38
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
39
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
40
+ [![MCP](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io)
41
+
42
+ India-first MCP server for market data, fundamentals, and research workflows.
43
+
44
+ 39 tools. Zero API keys. Works with Claude, Cursor, ChatGPT, and MCP clients.
45
+
46
+ ## Install
47
+
48
+ ```bash
49
+ pip install finstack-mcp
50
+ ```
51
+
52
+ Add to Claude Desktop config:
53
+
54
+ ```json
55
+ {
56
+ "mcpServers": {
57
+ "finstack": {
58
+ "command": "python",
59
+ "args": ["-m", "finstack.server"]
60
+ }
61
+ }
62
+ }
63
+ ```
64
+
65
+ Restart Claude and ask:
66
+
67
+ - "What's Reliance's stock price?"
68
+ - "Compare TCS, Infosys, and Wipro."
69
+ - "Show me technical indicators for HDFCBANK."
70
+
71
+ ## Coverage
72
+
73
+ - Indian markets: NSE/BSE quotes, indices, historical data, corporate actions, quarterly results, FII/DII, bulk deals, IPOs
74
+ - Global markets: stocks, crypto, forex, market news, SEC filings
75
+ - Fundamentals: income statement, balance sheet, cash flow, key ratios, company profile, dividend history
76
+ - Analytics: indicators, stock comparison, sector performance, screeners, options chain, backtesting
77
+
78
+ ## Product Role
79
+
80
+ This repo is the open-source engine and public distribution layer for FinStack.
81
+
82
+ The paid wedge we are building on top of this is the hosted **Indian market daily brief** product.
83
+
84
+ - Strategy: [docs/PARTNER_PLAN.md](docs/PARTNER_PLAN.md)
85
+ - Running updates: [docs/WORKLOG.md](docs/WORKLOG.md)
86
+
87
+ ## Data Sources
88
+
89
+ | Source | Covers | API Key |
90
+ |---|---|---|
91
+ | yfinance | NSE, BSE, US, Crypto, Forex | Not needed |
92
+ | SEC EDGAR | US company filings | Not needed |
93
+ | NSE Direct | FII/DII, bulk deals, IPOs | Not needed |
94
+
95
+ ## Contributing
96
+
97
+ PRs are welcome. Keep changes focused, test what you touch, and document any new tool clearly.
98
+
99
+ ## License
100
+
101
+ MIT
@@ -0,0 +1,67 @@
1
+ # FinStack MCP
2
+
3
+ [![PyPI version](https://badge.fury.io/py/finstack-mcp.svg)](https://pypi.org/project/finstack-mcp/)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
6
+ [![MCP](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io)
7
+
8
+ India-first MCP server for market data, fundamentals, and research workflows.
9
+
10
+ 39 tools. Zero API keys. Works with Claude, Cursor, ChatGPT, and MCP clients.
11
+
12
+ ## Install
13
+
14
+ ```bash
15
+ pip install finstack-mcp
16
+ ```
17
+
18
+ Add to Claude Desktop config:
19
+
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "finstack": {
24
+ "command": "python",
25
+ "args": ["-m", "finstack.server"]
26
+ }
27
+ }
28
+ }
29
+ ```
30
+
31
+ Restart Claude and ask:
32
+
33
+ - "What's Reliance's stock price?"
34
+ - "Compare TCS, Infosys, and Wipro."
35
+ - "Show me technical indicators for HDFCBANK."
36
+
37
+ ## Coverage
38
+
39
+ - Indian markets: NSE/BSE quotes, indices, historical data, corporate actions, quarterly results, FII/DII, bulk deals, IPOs
40
+ - Global markets: stocks, crypto, forex, market news, SEC filings
41
+ - Fundamentals: income statement, balance sheet, cash flow, key ratios, company profile, dividend history
42
+ - Analytics: indicators, stock comparison, sector performance, screeners, options chain, backtesting
43
+
44
+ ## Product Role
45
+
46
+ This repo is the open-source engine and public distribution layer for FinStack.
47
+
48
+ The paid wedge we are building on top of this is the hosted **Indian market daily brief** product.
49
+
50
+ - Strategy: [docs/PARTNER_PLAN.md](docs/PARTNER_PLAN.md)
51
+ - Running updates: [docs/WORKLOG.md](docs/WORKLOG.md)
52
+
53
+ ## Data Sources
54
+
55
+ | Source | Covers | API Key |
56
+ |---|---|---|
57
+ | yfinance | NSE, BSE, US, Crypto, Forex | Not needed |
58
+ | SEC EDGAR | US company filings | Not needed |
59
+ | NSE Direct | FII/DII, bulk deals, IPOs | Not needed |
60
+
61
+ ## Contributing
62
+
63
+ PRs are welcome. Keep changes focused, test what you touch, and document any new tool clearly.
64
+
65
+ ## License
66
+
67
+ MIT
@@ -0,0 +1,15 @@
1
+ {
2
+ "mcpServers": {
3
+ "finstack": {
4
+ "command": "uv",
5
+ "args": [
6
+ "--directory",
7
+ "/ABSOLUTE/PATH/TO/finstack-mcp",
8
+ "run",
9
+ "python",
10
+ "-m",
11
+ "finstack.server"
12
+ ]
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,55 @@
1
+ # Daily Brief
2
+
3
+ ## Purpose
4
+
5
+ `finstack-mcp` remains the public open-source engine.
6
+
7
+ The first commercial bridge built on top of it is the **Indian market daily brief** workflow.
8
+
9
+ This repo now includes a first generator module for that workflow.
10
+
11
+ ## CLI Usage
12
+
13
+ ```bash
14
+ python -m finstack.briefs --watchlist RELIANCE,TCS,HDFCBANK
15
+ ```
16
+
17
+ Or after install:
18
+
19
+ ```bash
20
+ finstack-brief --watchlist RELIANCE,TCS,HDFCBANK
21
+ ```
22
+
23
+ ## Output
24
+
25
+ The generator returns structured JSON with:
26
+
27
+ - market status
28
+ - Nifty, Sensex, Bank Nifty snapshot
29
+ - gainers, losers, most active
30
+ - sector performance
31
+ - FII/DII summary
32
+ - bulk deals
33
+ - watchlist earnings, results, and corporate actions
34
+ - short narrative summary
35
+
36
+ ## Intended Product Path
37
+
38
+ This generator should be reused later in:
39
+
40
+ - email briefs
41
+ - Telegram or WhatsApp formatted briefs
42
+ - premium watchlist products
43
+ - the future hosted `finstack-brief` product
44
+
45
+ ## Current Status
46
+
47
+ This is version 1 of the brief engine.
48
+
49
+ It is suitable for:
50
+
51
+ - demos
52
+ - early user feedback
53
+ - launch positioning
54
+
55
+ It is not yet a full hosted product.
@@ -0,0 +1,77 @@
1
+ # Launch Guide
2
+
3
+ ## Goal
4
+
5
+ Launch `finstack-mcp` today as a clean open-source repo and use it as the public engine for the future paid daily brief product.
6
+
7
+ ## 1. Local Checks
8
+
9
+ ```bash
10
+ cd finstack-mcp
11
+ pip install -e ".[dev]"
12
+ pytest -q -p no:cacheprovider
13
+ python -m finstack.server
14
+ python -m finstack.briefs --watchlist RELIANCE,TCS,HDFCBANK
15
+ ```
16
+
17
+ ## 2. GitHub
18
+
19
+ Create a new public repository named `finstack-mcp`.
20
+
21
+ Recommended metadata:
22
+
23
+ - description: `India-first MCP server for NSE/BSE, fundamentals, analytics, and daily research workflows.`
24
+ - topics: `mcp`, `finance`, `nse`, `bse`, `stocks`, `india`, `python`, `claude`
25
+
26
+ Push commands:
27
+
28
+ ```bash
29
+ git init
30
+ git add .
31
+ git commit -m "Launch finstack-mcp v0.3.0"
32
+ git branch -M main
33
+ git remote add origin https://github.com/<your-username>/finstack-mcp.git
34
+ git push -u origin main
35
+ ```
36
+
37
+ ## 3. PyPI
38
+
39
+ Build locally:
40
+
41
+ ```bash
42
+ python -m pip install build
43
+ python -m build
44
+ ```
45
+
46
+ Publish with Twine or GitHub Trusted Publishing after you create the project on PyPI.
47
+
48
+ ## 4. MCP Registries
49
+
50
+ Use the current `server.json` after GitHub and PyPI are live.
51
+
52
+ Submit the project to the registries you plan to target after the package is public.
53
+
54
+ ## 5. Landing Page
55
+
56
+ Deploy `landing-page/` as a static site.
57
+
58
+ Current message:
59
+
60
+ - FinStack MCP = open-source engine
61
+ - FinStack Brief = paid Indian market daily brief
62
+
63
+ ## 6. Demo Story
64
+
65
+ Use this story consistently in posts and conversations:
66
+
67
+ 1. install `finstack-mcp`
68
+ 2. use the MCP tools locally
69
+ 3. show the daily brief generator
70
+ 4. explain that the paid layer is delivery and workflow, not just access
71
+
72
+ ## 7. After Launch
73
+
74
+ 1. collect first users
75
+ 2. collect first daily brief feedback
76
+ 3. build delivery formats
77
+ 4. validate pricing before adding more features
@@ -0,0 +1,31 @@
1
+ # Launch Today Checklist
2
+
3
+ ## Public OSS Launch
4
+
5
+ 1. Create the public GitHub repo: `finstack-mcp`
6
+ 2. Push the current codebase
7
+ 3. Add repo description, topics, and website
8
+ 4. Add at least one screenshot or GIF to the README
9
+ 5. Build and publish the package to PyPI
10
+ 6. Submit `server.json` to MCP registries
11
+
12
+ ## Landing Page
13
+
14
+ 1. Deploy `landing-page/`
15
+ 2. Set the main CTA to GitHub for now
16
+ 3. Set the waitlist CTA for the paid daily brief
17
+ 4. Replace placeholder social/contact links before publishing
18
+
19
+ ## Product Narrative
20
+
21
+ Use this message consistently:
22
+
23
+ `FinStack MCP is the open-source engine. FinStack Brief is the paid Indian market daily brief built on top of it.`
24
+
25
+ ## Minimum Launch Assets
26
+
27
+ - GitHub repo
28
+ - PyPI package
29
+ - landing page
30
+ - one short demo video or GIF
31
+ - one sample daily brief output
@@ -0,0 +1,55 @@
1
+ # FinStack Master Tracker
2
+
3
+ ## Current Position
4
+
5
+ FinStack now has two clear layers:
6
+
7
+ - `finstack-mcp`: public open-source engine
8
+ - `finstack-brief`: future paid Indian market daily brief built on top of the engine
9
+
10
+ ## Engine Status
11
+
12
+ ### Core package
13
+
14
+ - MCP server with `39` tools
15
+ - India-first market coverage
16
+ - global markets and fundamentals support
17
+ - daily brief generator module added
18
+ - local tests passing
19
+
20
+ ### Public repo tasks
21
+
22
+ - README cleaned
23
+ - landing page repositioned
24
+ - `server.json` updated
25
+ - CI now runs tests
26
+ - partner plan and worklog added
27
+
28
+ ## Product Direction
29
+
30
+ ### What we are building
31
+
32
+ - Indian market daily brief
33
+ - watchlist-oriented workflow
34
+ - reusable output for email, Telegram, and future hosted delivery
35
+
36
+ ### What we are not building first
37
+
38
+ - generic finance SaaS
39
+ - broad advisor platform
40
+ - enterprise-heavy product
41
+
42
+ ## Current Priorities
43
+
44
+ 1. Launch the public GitHub repo cleanly
45
+ 2. Publish to PyPI
46
+ 3. Submit to MCP registries
47
+ 4. Use the daily brief generator in demos
48
+ 5. Build the first paid delivery layer
49
+
50
+ ## Working Docs
51
+
52
+ - Strategy: `docs/PARTNER_PLAN.md`
53
+ - Daily brief: `docs/DAILY_BRIEF.md`
54
+ - Launch checklist: `docs/LAUNCH_TODAY.md`
55
+ - Progress log: `docs/WORKLOG.md`