npm package: @iflow-mcp/crypto-indicators-mcp
Description: An MCP server providing a range of cryptocurrency technical analysis indicators and strategies, empowering AI trading agents to efficiently analyze market trends and develop robust quantitative strategies.
Latest version: 1.0.1

# Crypto Indicators MCP Server

An MCP server providing a range of cryptocurrency technical analysis indicators and strategies, empowering AI trading agents to efficiently analyze market trends and develop robust quantitative strategies.

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Node.js](https://img.shields.io/badge/Node.js-18.x-green.svg)](https://nodejs.org/)
![Status](https://img.shields.io/badge/status-active-brightgreen.svg)

## Features

- **Technical Indicators**: 50+ indicators across trend, momentum, volatility, and volume categories.
- **Trading Strategies**: Corresponding strategies outputting signals: `-1` (SELL), `0` (HOLD), `1` (BUY).
- **Flexible Data Source**: Defaults to Binance, configurable to any `ccxt`-supported exchange.
- **Modular Design**: Indicators and strategies are categorized for easy maintenance.

## Installation

### Prerequisites

- [Node.js](https://nodejs.org/) (v18.x or higher)
- npm (v8.x or higher)

### Steps

1. **Clone the Repository**:
   ```bash
   git clone https://github.com/kukapay/crypto-indicators-mcp.git
   cd crypto-indicators-mcp
   ```

2. **Install Dependencies**:
   ```bash
   npm install
   ```

3. **Configure MCP Client**:
   To use this server with an MCP client like Claude Desktop, add the following to your config file (or equivalent):
   ```json
    {
      "mcpServers": {
        "crypto-indicators-mcp": {
          "command": "node",
          "args": ["path/to/crypto-indicators-mcp/index.js"],
          "env": {
            "EXCHANGE_NAME": "binance"
          }
        }
      }
    }   
    ```

## Available Tools

### Trend Indicators
- `calculate_absolute_price_oscillator`: Measures the difference between two EMAs to identify trend strength (APO).
- `calculate_aroon`: Identifies trend changes and strength using high/low price extremes (Aroon).
- `calculate_balance_of_power`: Gauges buying vs. selling pressure based on price movement (BOP).
- `calculate_chande_forecast_oscillator`: Predicts future price movements relative to past trends (CFO).
- `calculate_commodity_channel_index`: Detects overbought/oversold conditions and trend reversals (CCI).
- `calculate_double_exponential_moving_average`: Smooths price data with reduced lag for trend detection (DEMA).
- `calculate_exponential_moving_average`: Weights recent prices more heavily for trend analysis (EMA).
- `calculate_mass_index`: Identifies potential reversals by measuring range expansion (MI).
- `calculate_moving_average_convergence_divergence`: Tracks momentum and trend direction via EMA differences (MACD).
- `calculate_moving_max`: Computes the maximum price over a rolling period (MMAX).
- `calculate_moving_min`: Computes the minimum price over a rolling period (MMIN).
- `calculate_moving_sum`: Calculates the sum of prices over a rolling period (MSUM).
- `calculate_parabolic_sar`: Provides stop-and-reverse points for trend following (PSAR).
- `calculate_qstick`: Measures buying/selling pressure based on open-close differences (Qstick).
- `calculate_kdj`: Combines stochastic and momentum signals for trend analysis (KDJ).
- `calculate_rolling_moving_average`: Applies a rolling EMA for smoother trend tracking (RMA).
- `calculate_simple_moving_average`: Averages prices over a period to identify trends (SMA).
- `calculate_since_change`: Tracks the time since the last significant price change.
- `calculate_triple_exponential_moving_average`: Reduces lag further than DEMA for trend clarity (TEMA).
- `calculate_triangular_moving_average`: Weights middle prices more for smoother trends (TRIMA).
- `calculate_triple_exponential_average`: Measures momentum with triple smoothing (TRIX).
- `calculate_typical_price`: Averages high, low, and close prices for a balanced trend view.
- `calculate_volume_weighted_moving_average`: Incorporates volume into moving averages for trend strength (VWMA).
- `calculate_vortex`: Identifies trend direction and strength using true range (Vortex).

### Momentum Indicators
- `calculate_awesome_oscillator`: Measures market momentum using midline crossovers (AO).
- `calculate_chaikin_oscillator`: Tracks accumulation/distribution momentum (CMO).
- `calculate_ichimoku_cloud`: Provides a comprehensive view of support, resistance, and momentum (Ichimoku).
- `calculate_percentage_price_oscillator`: Normalizes MACD as a percentage for momentum (PPO).
- `calculate_percentage_volume_oscillator`: Measures volume momentum via EMA differences (PVO).
- `calculate_price_rate_of_change`: Tracks price momentum as a percentage change (ROC).
- `calculate_relative_strength_index`: Identifies overbought/oversold conditions via momentum (RSI).
- `calculate_stochastic_oscillator`: Compares closing prices to ranges for momentum signals (STOCH).
- `calculate_williams_r`: Measures momentum relative to recent high-low ranges (Williams %R).

### Volatility Indicators
- `calculate_acceleration_bands`: Frames price action with dynamic volatility bands (AB).
- `calculate_average_true_range`: Measures market volatility based on price ranges (ATR).
- `calculate_bollinger_bands`: Encloses price action with volatility-based bands (BB).
- `calculate_bollinger_bands_width`: Quantifies volatility via band width changes (BBW).
- `calculate_chandelier_exit`: Sets trailing stop-losses based on volatility (CE).
- `calculate_donchian_channel`: Tracks volatility with high/low price channels (DC).
- `calculate_keltner_channel`: Combines ATR and EMA for volatility bands (KC).
- `calculate_moving_standard_deviation`: Measures price deviation for volatility (MSTD).
- `calculate_projection_oscillator`: Assesses volatility relative to projected prices (PO).
- `calculate_true_range`: Calculates daily price range for volatility analysis (TR).
- `calculate_ulcer_index`: Quantifies downside volatility and drawdowns (UI).

### Volume Indicators
- `calculate_accumulation_distribution`: Tracks volume flow to confirm price trends (AD).
- `calculate_chaikin_money_flow`: Measures buying/selling pressure with volume (CMF).
- `calculate_ease_of_movement`: Assesses how easily prices move with volume (EMV).
- `calculate_force_index`: Combines price and volume for momentum strength (FI).
- `calculate_money_flow_index`: Identifies overbought/oversold via price-volume (MFI).
- `calculate_negative_volume_index`: Tracks price changes on lower volume days (NVI).
- `calculate_on_balance_volume`: Accumulates volume to predict price movements (OBV).
- `calculate_volume_price_trend`: Combines volume and price for trend confirmation (VPT).
- `calculate_volume_weighted_average_price`: Averages prices weighted by volume (VWAP).

### Trend Strategies
- `calculate_absolute_price_oscillator_strategy`: Generates buy/sell signals from APO crossovers (APO Strategy).
- `calculate_aroon_strategy`: Signals trend reversals using Aroon crossovers (Aroon Strategy).
- `calculate_balance_of_power_strategy`: Issues signals based on BOP thresholds (BOP Strategy).
- `calculate_chande_forecast_oscillator_strategy`: Predicts reversals with CFO signals (CFO Strategy).
- `calculate_kdj_strategy`: Combines KDJ lines for trend-based signals (KDJ Strategy).
- `calculate_macd_strategy`: Uses MACD crossovers for trading signals (MACD Strategy).
- `calculate_parabolic_sar_strategy`: Signals trend direction with PSAR shifts (PSAR Strategy).
- `calculate_typical_price_strategy`: Generates signals from typical price trends.
- `calculate_volume_weighted_moving_average_strategy`: Issues signals based on VWMA crossovers (VWMA Strategy).
- `calculate_vortex_strategy`: Signals trend direction with Vortex crossovers (Vortex Strategy).

### Momentum Strategies
- `calculate_momentum_strategy`: Issues signals based on momentum direction.
- `calculate_awesome_oscillator_strategy`: Signals momentum shifts with AO crossovers (AO Strategy).
- `calculate_ichimoku_cloud_strategy`: Generates signals from Ichimoku cloud positions (Ichimoku Strategy).
- `calculate_rsi2_strategy`: Signals overbought/oversold with RSI thresholds (RSI Strategy).
- `calculate_stochastic_oscillator_strategy`: Uses stochastic crossovers for signals (STOCH Strategy).
- `calculate_williams_r_strategy`: Signals momentum reversals with Williams %R (Williams %R Strategy).

### Volatility Strategies
- `calculate_acceleration_bands_strategy`: Signals breakouts with acceleration bands (AB Strategy).
- `calculate_bollinger_bands_strategy`: Issues signals from Bollinger Band breaches (BB Strategy).
- `calculate_projection_oscillator_strategy`: Signals volatility shifts with PO (PO Strategy).

### Volume Strategies
- `calculate_chaikin_money_flow_strategy`: Signals volume pressure with CMF (CMF Strategy).
- `calculate_ease_of_movement_strategy`: Issues signals based on EMV trends (EMV Strategy).
- `calculate_force_index_strategy`: Signals momentum with force index shifts (FI Strategy).
- `calculate_money_flow_index_strategy`: Signals overbought/oversold with MFI (MFI Strategy).
- `calculate_negative_volume_index_strategy`: Signals trends with NVI changes (NVI Strategy).
- `calculate_volume_weighted_average_price_strategy`: Issues signals from VWAP crossovers (VWAP Strategy).

## Usage Examples

### Example 1: Calculate MACD Indicator

**Input (Natural Language Prompt)**:
```
Calculate the MACD for BTC/USDT on a 1-hour timeframe with fast period 12, slow period 26, signal period 9, and fetch 100 data points.
```

**Output**:
```
{"macd": [...], "signal": [...], "histogram": [...]}
```

### Example 2: Calculate RSI Strategy

**Input (Natural Language Prompt)**:
```
Give me the RSI strategy signals for ETH/USDT on a 4-hour timeframe with a period of 14 and 50 data points.
```

**Output**:
```
[-1, 0, 1, 0, ...]
```

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.