Fabits MCP Server
# Fabits MCP Server
A Model Context Protocol (MCP) server for [Fabits MyWealth](https://apimywealth.fabits.com) platform. Invest in mutual funds through natural conversation with AI assistants like Claude.
## Features
š **Authentication** - Secure login with phone + OTP, automatic token management
š **Fund Discovery** - Search funds, get details, view recommendations
š° **Investments** - Lumpsum, SIP, basket investments
š **Portfolio Tracking** - View holdings, SIPs, transaction history
šÆ **Production Ready** - Direct integration with Fabits production API
## Available Tools
### Authentication
- `fabits_request_otp` - Step 1: Request OTP to be sent to phone
- `fabits_verify_otp` - Step 2: Verify OTP and complete login
- `fabits_status` - Check authentication and KYC status
- `fabits_refresh_token` - Refresh expired access token using refresh token
- `fabits_logout` - Logout and clear stored tokens
### Fund Discovery
- `fabits_search_funds` - Search mutual funds by name/category
- `fabits_get_fund_details` - Get comprehensive fund information
- `fabits_get_star_funds` - Get Fabits recommended funds
### Investments
- `fabits_invest_lumpsum` - One-time investment
- `fabits_start_sip` - Start monthly SIP
- `fabits_redeem` - Sell mutual fund units
- `fabits_get_baskets` - View investment baskets
- `fabits_invest_basket` - Invest in diversified baskets
### Portfolio
- `fabits_get_portfolio` - View complete portfolio
- `fabits_get_basket_holdings` - View basket holdings organized by baskets
- `fabits_get_sips` - List active SIPs
- `fabits_get_transactions` - View transaction history
- `fabits_cancel_sip` - Cancel SIP
## Installation
### Option 1: NPM Package (Recommended)
```bash
npm install -g fabits-mcp
```
### Option 2: From Source
```bash
# Clone repository
git clone <repository-url>
cd fabits-mcp
# Install dependencies
npm install
# Build
npm run build
```
## Configuration
### Claude Desktop
Add to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"fabits": {
"command": "fabits-mcp"
}
}
}
```
Or if running from source:
```json
{
"mcpServers": {
"fabits": {
"command": "node",
"args": ["/path/to/fabits-mcp/build/index.js"]
}
}
}
```
### Other MCP Clients
Use the built executable:
```bash
node /path/to/fabits-mcp/build/index.js
```
## Usage Examples
### 1. Login Flow
```
User: Login to Fabits
Assistant: *calls fabits_status* You're not logged in.
What's your phone number?
User: +917378666101
Assistant: *calls fabits_request_otp with phone*
š± OTP sent to your phone! Please provide the OTP.
User: The OTP is 123456
Assistant: *calls fabits_verify_otp with phone and OTP*
ā
Login successful! Your KYC is completed. You can start investing.
```
### 2. Search and Invest
```
User: Find good tax-saving funds
Assistant: *calls fabits_search_funds with query="tax saving ELSS"*
Found 15 tax-saving funds. Top picks:
1. HDFC Tax Saver - 1Y: +12.5%, 3Y: +18.2%
2. Axis Long Term Equity - 1Y: +14.1%, 3Y: +17.9%
...
User: Tell me more about fund 1
Assistant: *calls fabits_get_fund_details*
HDFC Tax Saver (Fund ID: ABC123)
- Category: ELSS
- Risk: Moderately High
- Min SIP: ā¹500
- Returns: 1Y: +12.5%, 3Y: +18.2%, 5Y: +15.6%
- Expense Ratio: 1.2%
User: Start a SIP of 5000 per month on the 5th
Assistant: *calls fabits_start_sip with fund_id, amount=5000, date=5*
ā
SIP Started!
Monthly: ā¹5,000 on 5th of every month
Please complete e-mandate setup: [link]
```
### 3. Portfolio Tracking
```
User: Show my portfolio
Assistant: *calls fabits_get_portfolio*
š Your Portfolio
Total Invested: ā¹1,50,000
Current Value: ā¹1,65,250
Total Returns: ā¹15,250 (+10.17%)
Holdings:
1. HDFC Tax Saver: ā¹55,400 (+10.8%)
2. Axis Bluechip: ā¹48,650 (+8.5%)
...
```
## Security
- **Token Storage**: Encrypted tokens stored in `~/.config/fabits-mcp/auth.json`
- **Production API**: Direct connection to `https://apimywealth.fabits.com`
- **No Data Logging**: No transaction or personal data is logged by the MCP server
- **Session Management**: Tokens auto-expire and require re-authentication
## Development
```bash
# Install dependencies
npm install
# Build
npm run build
# Watch mode (auto-rebuild on changes)
npm run watch
# Test locally
node build/index.js
```
## Project Structure
```
fabits-mcp/
āāā src/
ā āāā index.ts # MCP server entry point
ā āāā config.ts # Configuration & API endpoints
ā āāā types.ts # TypeScript type definitions
ā āāā auth.ts # Authentication & token management
ā āāā funds.ts # Fund search & discovery
ā āāā invest.ts # Investment operations
ā āāā portfolio.ts # Portfolio & tracking
āāā build/ # Compiled JavaScript
āāā package.json
āāā tsconfig.json
āāā README.md
```
## API Coverage
Based on [Fabits API Collection](./Fabits_API_Collection.postman_collection.json):
- ā
Authentication (Login, KYC Status)
- ā
Mutual Funds (Search, Details, Star Funds)
- ā
Orders (Lumpsum, SIP, Redemption)
- ā
Baskets (List, Invest)
- ā
Portfolio (Holdings, SIPs, Transactions)
- ā³ Risk Assessment (Planned)
- ā³ Plans & Goals (Planned)
- ā³ Mandates & Payments (Partial)
## Troubleshooting
### "Not authenticated" error
Re-login using `fabits_request_otp` followed by `fabits_verify_otp`. Tokens may expire after 24 hours.
### "KYC not completed" error
Complete KYC on the Fabits app before investing through MCP.
### Build errors
```bash
rm -rf build node_modules
npm install
npm run build
```
### Connection issues
Verify internet connection. The server connects to production Fabits API.
## Contributing
Contributions welcome! Please:
1. Fork the repository
2. Create a feature branch
3. Add tests if applicable
4. Submit a pull request
## License
MIT
## Disclaimer
ā ļø **Investment Warning**
- This tool connects to **PRODUCTION** Fabits API
- All investments are **REAL** and use **LIVE MONEY**
- Mutual fund investments are subject to market risks
- Past performance does not guarantee future returns
- Please read all scheme documents carefully before investing
- The developers are not responsible for investment decisions or losses
## Support
- š§ Issues: [GitHub Issues](https://github.com/your-repo/issues)
- š Fabits API Docs: See `POSTMAN_COLLECTION_README.md`
- š¬ MCP Protocol: [MCP Documentation](https://modelcontextprotocol.io)
---
**Built with ā¤ļø for the MCP ecosystem**
TDQS
Scored across 26 tools
Most tools have distinct purposes targeting specific actions like login, investment, portfolio management, and SIP handling, with clear boundaries. However, some potential overlap exists between fabits_invest_lumpsum and fabits_invest_lumpsum_upi, as both handle lumpsum investments but differ in payment method, which could cause minor confusion if not carefully read.
All tool names follow a consistent fabits_verb_noun pattern with snake_case, such as fabits_get_portfolio and fabits_invest_lumpsum. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.
With 26 tools, the count is on the higher side for a mutual fund investment server, potentially feeling heavy. While it covers many operations, some tools like fabits_invest_basket and fabits_invest_basket_onetime might be consolidated, suggesting a borderline appropriateness for the scope.
The tool set provides comprehensive coverage for mutual fund investment, including authentication (login/logout/token refresh), fund search and details, portfolio and SIP management, investment orders (lumpsum and SIP), redemption, and transaction handling. No obvious gaps are present, ensuring agents can handle full workflows without dead ends.