CG Alpha MCP
Enables crypto market analysis by combining Elfa's sentiment data and trending tokens with technical analysis tools (RSI, Bollinger Bands). Works alongside CoinGecko MCP to provide comprehensive token performance insights across multiple timeframes.
README
cg-alpha-mcp
An MCP server that connects Elfa (crypto news & twitter sentiment data) and works alongside the CoinGecko MCP. Includes a tiny TA module (RSI + Bollinger Bands) to quickly inform users of token performance in various timeframes. Ideally used with CoinGecko feature top gainers/losers, which can be called directly from the LLM with CoinGecko Pro. Users can also connect the Nansen MCP for additional context in their token alpha searches.
Features
- ELFA integrations
/v2/aggregations/trending-tokens/v2/data/token-news/v2/data/keyword-mentions
- Generic ELFA proxy: call any ELFA path with
elfa_query - Auth from
.env(no key pasting into the chat) - TA utilities: RSI (Wilder) and Bollinger Bands (SMA + population stdev)
- Designed to run with any MCP client (Claude Desktop, Cursor, etc. - n.b. designed with Claude desktop)
Prompts and responses
See the full set here: promts_responses_images/
Quick Start
1) Requirements
- Node.js 20+ (works on 22 as well)
- A modern MCP client (e.g., Claude Desktop or Cursor)
2) Install
git clone https://github.com/<you>/cg-alpha-mcp.git
cd cg-alpha-mcp
npm install # installs dependencies (node_modules is ignored in Git)
3) Configure environment
cp .env.example .env
- Edit
.envand setELFA_API_KEY(andCOINGECKO_API_KEYif you use the CoinGecko MCP with a key) - Keep
.envprivate — it’s already in.gitignore.
4) Hook into your MCP client
Most MCP clients let you add a custom server command. Use:
- Command:
node - Args:
C:/Users/YOUR-FILE-NAME/cg-alpha-mcp/mcp-server.js(or./mcp-server.json macOS/Linux) - Working directory: the repo root
On Windows, paths often look like:
C:\Users\YOUR-FILE-NAME\cg-alpha-mcp\mcp-server.js
5) Once added, your client should show tools like:
elfa_statuselfa_reload_envelfa_trending / elfa_trending_tokenselfa_token_newselfa_keyword_mentionselfa_query
6) Environment Variables
See .env.example for all options.
- ELFA_API_KEY (required for ELFA calls)
- Get from ELFA (https://www.elfa.ai/api).
- COINGECKO_API_KEY - add to Claude config file.
Advanced (optional):
ELFA_HEADER: header name for auth (defaults tox-elfa-api-key)ELFA_AUTH_TYPE: set tox-elfa-api-key(default) or bearerELFA_BASE: ELFAbase URL (defaults tohttps://api.elfa.ai)
7) Claude config file - structure at bottom of README
8) (Optional) - Nansen paid users can download .dxt file to install
- Either drag and drop into Extensions or
- Extensions > Advanced Setting > Install Extension > Choose
.dxtfile > Enter your API key
9) Troubleshooting:
401 “API key is required”
- Check
.envhasELFA_API_KEY=... - Run
elfa_reload_env(no restart needed) - Verify header style: ELFA expects
x-elfa-api-key(the server auto-tries both)
404 “Cannot GET …/data/trending”
- Use
/v2/aggregations/trending-tokens(the server’selfa_trendingalready points here) .envin the right place?- Put
.envin the same folder asmcp-server.js(repo root)
Windows path issues
- Use absolute paths in the MCP client if needed, e.g.
C:\Users\YOUR-FILE-NAME\cg-alpha-mcp\mcp-server.js
Security
.envis ignored by git.- Include a public, safe
.env.exampleso others can configure their own keys.
Useful Tools & What They Do
- elfa_status - Shows current base URL and masked auth status.
- elfa_reload_env - Reloads .env at runtime (no restart). Use this after editing the
.env. - elfa_set_auth - Manually sets the API key and header style if needed:
{ "key": "sk-...", "headerName": "x-elfa-api-key", "scheme": "" } - elfa_trending / elfa_trending_tokens - Wrapper around /v2/aggregations/trending-tokens:
{ "timeframe": "24h", "limit": 10, "chain": "all" } - elfa_token_news - Token news:
{ "symbols": "BTC,ETH", "limit": 20, "start": "2025-08-01", "end": "2025-08-16" } - elfa_keyword_mentions - Multi-keyword mentions:
{ "keywords": ["bitcoin","halving"], "limit": 50 } - elfa_query - Generic ELFA proxy for any path:
{ "path": "/v2/aggregations/trending-tokens", "method": "GET", "query": { "timeframe": "24h", "limit": 10 } }
Technical Analysis (TA)
We provide a tiny pure JS TA module in services/ta.js:
rsi(values, period=14)→ last RSI value (0–100)bollinger(values, period=20, mult=2)→{ mean, upper, lower, last, percentB, bandwidth }Inputs are arrays of numeric closes in order oldest → newest. Your MCP orchestration fetches price series (e.g., via CoinGecko MCP) and then calls TA.
Intended Prompt Workflow:
"Show me the top 15 trending tokens on coingecko via their mcp, and the top 10 trending tokens on Elfa." (- Nansen users can ask for the recent smart money flows and activity.) "Show me the top 10 gainers and top 10 losers over the past 7 days in USD (specify timeframe: 24hours, 7days, 30days, specify token range: top 1000 or all tokens)." (- Goingecko Pro API users can call this from the MCP. Demo API users can ask Claude to determine this manually - *tokens with 24hr volume over 50k.)
User Chooses Specific Coins/Tokens of Interest from above lists:
"For (selected coins/tokens), show me the token news from Elfa AI, the trends in mentions and mentions delta from Elfa, and give me the RSI and Bollinger Bands for each." (- Nansen users can also ask for smart money data/comparison for these tokens - who is buying (selected coins/tokens)?)
Other prompts:
Built-in timeframe (fast): "Show me the top 10 gainers and top 10 losers over the past 7 days in USD, and give me the RSI and Bollinger Bands for each." Custom timeframe (computed): "Find the best and worst performing coins over the past 12 hours, limited to the top 200 by market cap. Add RSI and Bollinger Bands." Specific coins/tokens: "For BTC, ETH, and SOL, calculate the percentage change over the last 72 hours and display RSI(14) and Bollinger Bands(20,2)." Multi-window snapshot: "Create a snapshot: "top 5 gainers and losers for 24h, 7d, and 30d, with RSI and Bollinger for each result." Latest Trending Tokens (ELFA) "Show me the top trending tokens from ELFA." RSI Calculation "Fetch Bitcoin's last 50 closing prices from CoinGecko and calculate RSI." Bollinger Bands "Get ETH’s last 30 days of prices and calculate Bollinger Bands." Gainers & Losers "Find the top 5 gainers and losers in the last 24h and calculate their RSI."
Claude config file structure:
{
"mcpServers": {
"cg-alpha-mcp": {
"command": "node",
"args": [
"/absolute/path/to/cg-alpha-mcp/mcp-server.js"
]
},
"coingecko_mcp_local": {
"command": "npx",
"args": [
"-y",
"@coingecko/coingecko-mcp"
],
"env": {
"COINGECKO_DEMO_API_KEY": "YOUR_DEMO_KEY",
"COINGECKO_ENVIRONMENT": "demo"
}
}
}
}
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.