Skip to main content
Glama
ninjapayofficial

NINX MCP Server

Official
README.md
# NINX MCP Server

A Model Context Protocol (MCP) server that provides financial trading tools and market analysis capabilities. This server enables AI assistants to access real-time market data, execute trades, analyze portfolios, and perform comprehensive financial analysis.

## ๐Ÿš€ Features

### Trading & Portfolio Management
- **Binance Integration**: Access account holdings, balances, and trading data
- **Groww Integration**: Complete trading platform with holdings, positions, orders, and margin data
- **Portfolio Analysis**: Comprehensive portfolio performance and risk assessment
- **Real-time Market Data**: Live prices, OHLC data, and market quotes

### Market Analysis Tools
- **Fundamental Analysis**: Company financials, ratios, and valuation metrics
- **Technical Analysis**: RSI, MACD, Bollinger Bands, moving averages, and chart patterns
- **Options Analysis**: Greeks, implied volatility, and options strategies
- **Market Overview**: Sector performance, market trends, and news sentiment
- **Stock Screening**: Filter stocks based on various criteria
- **Risk Assessment**: Portfolio risk metrics and stress testing

## ๐Ÿ“‹ Prerequisites

- **Node.js** >= 22.x
- **TypeScript** (included in dependencies)
- **API Keys** for trading platforms:
  - Binance API Key & Secret (optional)
  - Groww API Key (optional)

## ๐Ÿ› ๏ธ Installation

1. Clone the repository:
```bash
git clone <repository-url>
cd nin-mcp-server
```

2. Install dependencies:
```bash
npm install
```

3. Set up environment variables:
```bash
cp config_env.example .env
```

Edit `.env` and add your API credentials:
```env
# Binance API (optional)
BINANCE_API_KEY=your_binance_api_key
BINANCE_SECRET_KEY=your_binance_secret_key

# Groww API (optional)
GROWW_API_KEY=your_groww_api_key
```

## ๐Ÿš€ Usage

### Development Mode
```bash
npm run dev
```

### Production Mode
```bash
npm start
```

### Build
```bash
npm run build
```

### Type Checking
```bash
npm run type-check
```

## ๐Ÿ”ง Available MCP Tools

### Market Analysis
- `analyzeFundamentals(symbol)` - Fundamental analysis for a stock
- `analyzeMarket(query)` - Overall market conditions analysis
- `analyzeTechnicals(symbol)` - Technical indicators and chart analysis
- `analyzeOptions(symbol)` - Options chain and Greeks analysis
- `getMarketNews(query)` - Latest market news and sentiment

### Portfolio & Holdings
- `getUserHoldings()` - Get user's portfolio holdings
- `getUserBinanceHoldings()` - Binance account holdings
- `analyzePortfolio(holdings)` - Portfolio performance analysis

### Groww Platform Integration
- `getGrowwHoldings()` - Groww portfolio holdings
- `getGrowwPositions(segment?)` - Positions data
- `getGrowwSymbolsLTP(symbols, segment?)` - Last traded prices
- `getGrowwSymbolsOHLC(symbols, segment?)` - OHLC market data
- `getGrowwSymbolQuote(symbol, exchange?, segment?)` - Detailed quotes

### Trading Operations (Groww)
- `placeGrowwOrder(orderParams)` - Place new orders
- `modifyGrowwOrder(orderParams)` - Modify existing orders
- `cancelGrowwOrder(orderId, segment?)` - Cancel orders
- `getGrowwOrderStatus(orderId, segment?)` - Order status

### Margin & Risk
- `getGrowwUserMargin()` - Available margin
- `getGrowwOrderMargin(orders, segment?)` - Calculate required margin

### Stock Screening
- `screenStocks(criteria)` - Filter stocks by criteria

## ๐Ÿ—๏ธ Project Structure

```
nin-mcp-server/
โ”œโ”€โ”€ server/
โ”‚   โ”œโ”€โ”€ mcp-server-sdk.ts      # Main MCP server implementation
โ”‚   โ”œโ”€โ”€ mcp-server.ts          # Express server (legacy, not used)
โ”‚   โ””โ”€โ”€ manifest.ts            # Server manifest
โ”œโ”€โ”€ services/
โ”‚   โ”œโ”€โ”€ mcpService.ts          # MCP service layer
โ”‚   โ””โ”€โ”€ mcpTools/              # Individual MCP tools
โ”‚       โ”œโ”€โ”€ fundamentalAnalysis.ts
โ”‚       โ”œโ”€โ”€ technicalAnalysis.ts
โ”‚       โ”œโ”€โ”€ portfolioAnalysis.ts
โ”‚       โ”œโ”€โ”€ marketAnalysis.ts
โ”‚       โ”œโ”€โ”€ optionsAnalysis.ts
โ”‚       โ”œโ”€โ”€ stockScreener.ts
โ”‚       โ”œโ”€โ”€ marketNews.ts
โ”‚       โ”œโ”€โ”€ riskAssessment.ts
โ”‚       โ”œโ”€โ”€ userHoldings.ts
โ”‚       โ”œโ”€โ”€ userBinanceHoldings.ts
โ”‚       โ”œโ”€โ”€ growwHoldings.ts
โ”‚       โ”œโ”€โ”€ growwPositions.ts
โ”‚       โ”œโ”€โ”€ growwLiveData.ts
โ”‚       โ”œโ”€โ”€ growwOrders.ts
โ”‚       โ”œโ”€โ”€ growwMargins.ts
โ”‚       โ””โ”€โ”€ index.ts
โ”œโ”€โ”€ types/
โ”‚   โ””โ”€โ”€ mcp.ts                 # MCP type definitions
โ”œโ”€โ”€ config_env.example        # Environment variables template
โ””โ”€โ”€ package.json
```

## ๐Ÿงช Development

### Code Formatting
```bash
# Check formatting
npm run format:check

# Auto-fix formatting
npm run format:write
```

### Type Checking
```bash
npm run typecheck
```

## ๐Ÿ”’ Security

- Store API keys in environment variables, never in code
- Use `dotenv` for local development environment management
- API keys are loaded securely from environment variables

## ๐Ÿ“Š Integration with AI Assistants

This MCP server can be integrated with various AI assistants that support the Model Context Protocol:

### Claude Desktop Configuration

1. Copy the following configuration from your `config_env.example` file
2. Add your actual API keys 
3. Update the file paths to match your installation
4. Paste into Claude Desktop's MCP configuration

```json
{
  "mcpServers": {
    "nin-terminal": {
      "command": "ts-node",
      "args": [
        "/Users/YOUR_USERNAME/path/to/nin-mcp-server/server/mcp-server-sdk.ts"
      ],
      "cwd": "/Users/YOUR_USERNAME/path/to/nin-mcp-server",
      "env": {
        "NINX_API_KEY": "your_actual_ninx_api_key",
        "NINX_SECRET_KEY": "your_actual_ninx_secret_key",
        "BINANCE_API_KEY": "your_actual_binance_api_key",
        "BINANCE_SECRET_KEY": "your_actual_binance_secret_key",
        "GROWW_API_KEY": "your_actual_groww_api_key"
      }
    }
  }
}
```

### Other MCP-Compatible Clients

For other MCP clients, use the stdio transport protocol with similar configuration, adjusting the format as needed for your specific client.

## ๐Ÿค Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and type checking
5. Submit a pull request

## ๐Ÿ“„ License

MIT License - see LICENSE file for details

## ๐Ÿ†˜ Support

For issues and questions:
1. Check the existing issues
2. Create a new issue with detailed description
3. Include logs and environment information

Maintenance

ActivityInactive
ResponsivenessNo issues