Atlas / MCP servers / mphinance / Momentum

MomentumSAFE

mcp/mphinance/momentum

⚡ Give your AI agent a Bloomberg terminal. MCP server for stock screening, OHLCV data, technical analysis, chart generation, and financial news.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
73 66r · 7w · 0d
Transport
—
License
Apache-2.0
Stars
28
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

⚡ momentum-mcp

Give your AI agent a Bloomberg terminal.

A Model Context Protocol server for quantitative trading analysis.

Tools • Quickstart • Connect Your Client • Tech Stack • License

This toolkit shares its lineage with Vesper, a LangGraph trading agent for Webull — its mcp_server/ is a separate, credential-heavier superset (adds a live-account owner mode and, eventually, an order path). This repo stays the standalone version: point any MCP host at it, no broker anywhere near it. It's also part of the mphinance AI trading stack — if you want packaged Claude/Gemini Skills (screeners, regime detection, backtesting playbooks) that can call these tools instead of a paid API, see alpha-skills; if you want to act on what these tools tell you, see awesome-broker-mcp for which broker an AI can actually trade through.

Changelog

**September

Read from source at commit 44f1e4e632caOBSERVED · 2026-10-09
02

Exposed tools (73)

66 read · 7 write · 0 destructive.

ToolRiskDescription
analyze_breadthreadGet a comprehensive market breadth health score (0-100).
analyze_options_setupreadVoPRTM engine: composite realized vol (4 estimators), VRP ratio,
analyze_pairreadAnalyze a pair of stocks for statistical arbitrage.
analyze_recent_gapreadScore the most recent overnight gap reaction (0-100) for a specific ticker.
analyze_scenarioreadGenerate bull/base/bear scenarios for a ticker based on a catalyst (e.g.
analyze_technicalsreadCompute 24 technical indicators: EMA 8/21/34/55/89, SMA 50/100/200,
analyze_uptrend_participationreadMeasure market participation in structural uptrends.
backtest_strategyreadBacktest a trading strategy on historical data. 6 presets:
calculate_position_sizereadCalculate risk-based position size using Fixed Fractional, ATR, or Kelly methods.
detect_bubble_riskreadAssess current market euphoria and bubble risk (0-15 score).
detect_ftdreadDetect Follow-Through Days (FTDs) on major indices to confirm market bottoms.
detect_macro_regimereadDetect the current structural market regime (Growth, Inflation, Deflation, or Goldilocks).
detect_market_topreadDetect market topping signals using distribution days and leadership trends.
detect_themesreadIdentify trending market themes by clustering thematic ETF performance.
etf_briefingreadPre-market institutional briefing: top ETF buys and sells, multi-provider
etf_divergencesreadCross-fund divergences: where different institutional funds traded the SAME
etf_fund_detailreadOne ETF
etf_global_statsreadCoverage stats: funds tracked, unique underlyings, options contracts,
etf_holdings_changesreadRaw institutional position changes, filterable by provider (
etf_income_fund_detailreadOne income fund
etf_income_overviewreadOption-income funds by structure: covered-call, synthetic, leap-proxy, swap.
etf_institutional_flowreadAggregate accumulation/distribution: all active-equity funds blended into
etf_institutional_trendreadPer-ticker institutional accumulation/distribution trend across day, week
etf_layering_patternsreadLayering: 3+ independent stock-pickers opening the SAME new position within
etf_list_fundsreadAll 71 tracked funds with holdings counts and top positions.
etf_list_tickersreadThe most widely-held underlyings across all tracked funds (~2,270 total).
etf_options_listingsreadCBOE daily diff: newly optionable stocks and new weekly listings.
etf_sector_flowreadSector-level institutional inflows and outflows from fund holdings.
etf_signal_performancereadHistorical backtest performance of TickerTrace conviction signals.
etf_signalsreadConviction-scored institutional buy/sell signals from daily ETF holdings
etf_stock_activityreadEverything institutional for one stock: which funds hold it, how weights
extract_article_textreadExtract the full-text body of a news article. Strips ads and nav.
fetch_ticker_newsreadFetch recent financial news headlines for a stock from RSS feeds.
find_best_to_buyreadAuto-find the best directional option to BUY. Reads technicals
find_best_to_sellreadAuto-find the best puts and calls to SELL. Scans 7-45 DTE across
generate_alpha_cardreadGenerate a shareable Alpha Card — a branded HTML analysis card.
generate_chartreadGenerate a candlestick chart with EMA overlays (8/21/34/55/89).
get_alpha_signalsreadGet recent alpha signals detected by the background signal factory.
get_earnings_calendarreadWeekly earnings calendar — who reports this week.
get_earnings_flowreadPre-earnings options flow — institutional positioning ahead of earnings.
get_exposure_recommendationreadGet a market exposure recommendation (0-100% capital deployment).
get_fundamentalsreadGet fundamental data: P/E, EPS, revenue growth, profit margin,
get_gex_overviewreadGamma Exposure (GEX) for SPY/QQQ/IWM. Positive = pinning/calm.
get_historical_datareadFetch OHLCV historical price data for a stock.
get_learned_patternsreadGet auto-extracted patterns from past backtests with win rates.
get_market_environmentreadGet a cross-asset market environment report.
get_market_pulsereadAI-generated market sentiment with options flow score (-7 to +7).
get_market_statswriteMarket-wide put/call ratios and sentiment indicators.
get_momentum_pulsereadCalculate real-time momentum scores (0-100) for each ticker.
get_politician_tradesreadCongressional stock trading disclosures.
get_put_call_ratioswritePut/call ratios for SPY, QQQ, IWM (or any ticker).
get_sec_filingsreadSEC EDGAR filing index straight from the primary source: the
get_sec_financialsreadMulti-period financials from SEC XBRL, including the accrual gap
get_sector_flowreadSector-by-sector options flow with bullish/bearish sentiment.
get_shares_outstandingreadCover-page share count straight from the 10-Q/10-K filing, not an
get_signalsreadBreakout and continuation signals with technical indicator data.
get_stakes_heldreadAS-FILER 13D/13G: stakes this company holds in OTHER public companies
get_track_recordreadGet the full conviction journal track record with win/loss stats.
get_tv_analysisreadGet TradingView 26-indicator technical consensus for a ticker.
get_unusual_activityreadUnusual options flow feed — institutional trades, premium, conviction.
list_strategiesreadList all saved custom strategies.
log_convictionreadLog a trade conviction to the journal. Direction: bullish/bearish/neutral.
model_price_distributionreadCompute statistical price targets using historical volatility.
run_custom_screenwriteBuild a custom stock screen with dynamic filter conditions.
run_stock_screenwriteRun a stock screen using TradingView
save_strategywriteSave a custom strategy to disk for re-use.
screen_canslimreadScreen for growth stocks matching CANSLIM criteria.
screen_peadwriteScreen for Post-Earnings Announcement Drift (PEAD) setups.
screen_vcpreadScreen for stocks forming a Volatility Contraction Pattern (VCP).
search_knowledgereadSearch Sam
sweep_setupsreadOpportunity Board: scan multiple tickers for best options trades.
sweep_strategywriteRun a strategy across multiple tickers (max 20). Ranks by Sharpe/return.
walk_forward_testreadWalk-forward validation: splits data into n folds, detects overfitting.
03

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (6)

LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
mcp_server/backtest.py:912
content_hash = hashlib.md5(
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
mcp_server/cache.py:119
return hashlib.md5(raw.encode()).hexdigest()
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
mcp_server/knowledge.py:111
chunk_id = hashlib.md5(f"{source}:{section}:{text[:100]}".encode()).hexdigest()
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
mcp_server/memory.py:69
chunk_id = hashlib.md5(
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
mcp_server/memory.py:192
chunk_id = hashlib.md5(f"tech:{ticker}:{date_str}:{source}".encode()).hexdigest()
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
requirements.txt
fastmcp, tradingview-screener, yfinance, pandas, pandas-ta, numba, mplfinance, matplotlib
Why it matters. 15 requirement(s) not pinned with ==
Fix. pin exact versions

Gates applied: no_behavioural_pass.

Audited 2026-10-09 · audit v0.4.1 · source sha 44f1e4e632cafull audit observations/trust-audit/mcp-server/mphinance__momentum.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-0944f1e4e632caSAFEB89first audit
05

Questions

What is the Momentum MCP server?

⚡ Give your AI agent a Bloomberg terminal. MCP server for stock screening, OHLCV data, technical analysis, chart generation, and financial news.

What tools does Momentum expose?

73 in total: 66 read-only, 7 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Momentum safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does Momentum need?

It reads GEMINI_API_KEY, OPENROUTER_API_KEY and TRADERDADDY_PASSWORD from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How current is this page?

The grade is for one exact copy of the source (44f1e4e632ca), read on 2026-10-09. The repository is watched and re-audited when it changes.

Advertisement