This MCP server provides cryptocurrency technical analysis indicators and strategies, allowing AI trading agents to analyze market trends and develop quantitative strategies. It includes over 50 indicators across trend, momentum, volatility, and volume categories with corresponding trading strategies that output buy, hold, or sell signals.
Clone the repository:
git clone https://github.com/kukapay/crypto-indicators-mcp.git
cd crypto-indicators-mcp
Install dependencies:
npm install
Configure MCP Client: To use with an MCP client like Claude Desktop, add this to your config file:
{
"mcpServers": {
"crypto-indicators-mcp": {
"command": "node",
"args": ["path/to/crypto-indicators-mcp/index.js"],
"env": {
"EXCHANGE_NAME": "binance"
}
}
}
}
calculate_absolute_price_oscillator
: Measures difference between two EMAs to identify trend strengthcalculate_aroon
: Identifies trend changes using high/low price extremescalculate_exponential_moving_average
: Weights recent prices more heavily for trend analysiscalculate_moving_average_convergence_divergence
: Tracks momentum and trend direction via EMA differencescalculate_parabolic_sar
: Provides stop-and-reverse points for trend followingcalculate_simple_moving_average
: Averages prices over a period to identify trendscalculate_awesome_oscillator
: Measures market momentum using midline crossoverscalculate_ichimoku_cloud
: Provides comprehensive view of support, resistance, and momentumcalculate_relative_strength_index
: Identifies overbought/oversold conditionscalculate_stochastic_oscillator
: Compares closing prices to ranges for momentum signalscalculate_williams_r
: Measures momentum relative to recent high-low rangescalculate_average_true_range
: Measures market volatility based on price rangescalculate_bollinger_bands
: Encloses price action with volatility-based bandscalculate_keltner_channel
: Combines ATR and EMA for volatility bandscalculate_donchian_channel
: Tracks volatility with high/low price channelscalculate_accumulation_distribution
: Tracks volume flow to confirm price trendscalculate_chaikin_money_flow
: Measures buying/selling pressure with volumecalculate_money_flow_index
: Identifies overbought/oversold via price-volumecalculate_on_balance_volume
: Accumulates volume to predict price movementscalculate_volume_weighted_average_price
: Averages prices weighted by volumeInput (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": [...]}
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, ...]
The strategy functions output numerical signals that can be interpreted as:
-1
: SELL signal0
: HOLD signal1
: BUY signalThese signals can be used directly by AI agents to make trading decisions or as part of a more complex trading system.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"cursor-rules-mcp": {
"command": "npx",
"args": [
"-y",
"cursor-rules-mcp"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.