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.
- finstack_mcp-0.3.0/.env.example +33 -0
- finstack_mcp-0.3.0/.github/workflows/ci.yml +54 -0
- finstack_mcp-0.3.0/.gitignore +41 -0
- finstack_mcp-0.3.0/CHANGELOG.md +68 -0
- finstack_mcp-0.3.0/CONTRIBUTING.md +37 -0
- finstack_mcp-0.3.0/Dockerfile +25 -0
- finstack_mcp-0.3.0/LICENSE +21 -0
- finstack_mcp-0.3.0/PKG-INFO +101 -0
- finstack_mcp-0.3.0/README.md +67 -0
- finstack_mcp-0.3.0/claude_desktop_config.json.example +15 -0
- finstack_mcp-0.3.0/docs/DAILY_BRIEF.md +55 -0
- finstack_mcp-0.3.0/docs/LAUNCH_GUIDE.md +77 -0
- finstack_mcp-0.3.0/docs/LAUNCH_TODAY.md +31 -0
- finstack_mcp-0.3.0/docs/MASTER_TRACKER.md +55 -0
- finstack_mcp-0.3.0/docs/PARTNER_PLAN.md +144 -0
- finstack_mcp-0.3.0/docs/WORKLOG.md +43 -0
- finstack_mcp-0.3.0/landing-page/index.html +794 -0
- finstack_mcp-0.3.0/pyproject.toml +60 -0
- finstack_mcp-0.3.0/pytest.ini +3 -0
- finstack_mcp-0.3.0/railway.json +14 -0
- finstack_mcp-0.3.0/server.json +50 -0
- finstack_mcp-0.3.0/src/finstack/__init__.py +3 -0
- finstack_mcp-0.3.0/src/finstack/briefs.py +168 -0
- finstack_mcp-0.3.0/src/finstack/config.py +140 -0
- finstack_mcp-0.3.0/src/finstack/data/__init__.py +0 -0
- finstack_mcp-0.3.0/src/finstack/data/analytics.py +774 -0
- finstack_mcp-0.3.0/src/finstack/data/fundamentals.py +353 -0
- finstack_mcp-0.3.0/src/finstack/data/global_markets.py +390 -0
- finstack_mcp-0.3.0/src/finstack/data/nse.py +481 -0
- finstack_mcp-0.3.0/src/finstack/data/nse_advanced.py +734 -0
- finstack_mcp-0.3.0/src/finstack/payments.py +381 -0
- finstack_mcp-0.3.0/src/finstack/server.py +173 -0
- finstack_mcp-0.3.0/src/finstack/tools/__init__.py +0 -0
- finstack_mcp-0.3.0/src/finstack/tools/analytics.py +372 -0
- finstack_mcp-0.3.0/src/finstack/tools/fundamentals.py +143 -0
- finstack_mcp-0.3.0/src/finstack/tools/global_.py +203 -0
- finstack_mcp-0.3.0/src/finstack/tools/indian.py +230 -0
- finstack_mcp-0.3.0/src/finstack/utils/__init__.py +0 -0
- finstack_mcp-0.3.0/src/finstack/utils/cache.py +123 -0
- finstack_mcp-0.3.0/src/finstack/utils/helpers.py +215 -0
- finstack_mcp-0.3.0/src/finstack/utils/rate_limiter.py +110 -0
- finstack_mcp-0.3.0/tests/__init__.py +0 -0
- finstack_mcp-0.3.0/tests/test_briefs.py +36 -0
- finstack_mcp-0.3.0/tests/test_payments.py +82 -0
- 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
|
+
[](https://pypi.org/project/finstack-mcp/)
|
|
38
|
+
[](https://opensource.org/licenses/MIT)
|
|
39
|
+
[](https://www.python.org/downloads/)
|
|
40
|
+
[](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
|
+
[](https://pypi.org/project/finstack-mcp/)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://www.python.org/downloads/)
|
|
6
|
+
[](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,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`
|