loading…
Search for a command to run...
loading…
MCP server for fffinstill — A Research Lab for Your Investment Ideas
MCP server for fffinstill — A Research Lab for Your Investment Ideas
alraico/fffinstill-mcp-server MCP server
MCP server for fffinstill — investment analysis for 2,260+ US equities.
Connect Claude Desktop, Cursor, VS Code, or any MCP-compatible AI assistant to fffinstill's stock analysis, screening, macro data, ML earnings predictions, and alternative data tools.
Sign up at fffinstill.com and generate an API key at Settings → API.
Requires a Founding, Pro, or Business subscription.
Add to ~/.config/claude/claude_desktop_config.json (Linux/macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"fffinstill": {
"command": "npx",
"args": ["-y", "@fffinstill/mcp-server"],
"env": {
"FINSTILL_API_KEY": "finstill_xxx_yyy"
}
}
}
}
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"fffinstill": {
"command": "npx",
"args": ["-y", "@fffinstill/mcp-server"],
"env": {
"FINSTILL_API_KEY": "finstill_xxx_yyy"
}
}
}
}
Add to .vscode/mcp.json in your project root:
{
"servers": {
"fffinstill": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@fffinstill/mcp-server"],
"env": {
"FINSTILL_API_KEY": "finstill_xxx_yyy"
}
}
}
}
Once configured, your AI assistant can:
getCompanyMetrics, getReverseDCF, getBeneishScore, etc.screen-stocks promptcompareTickersmacro-outlook promptearnings-preview prompt# With npx (no install)
npx @fffinstill/mcp-server --api-key finstill_xxx_yyy
# With environment variable
FINSTILL_API_KEY=finstill_xxx_yyy npx @fffinstill/mcp-server
# Global install
npm install -g @fffinstill/mcp-server
fffinstill-mcp --api-key finstill_xxx_yyy
# Show help
fffinstill-mcp --help
| Tool | Description |
|---|---|
getCompanyMetrics(ticker) |
Full fundamentals: revenue, margins, valuations, quality scores |
getAnalystRatings(ticker) |
Consensus, price targets, ratings breakdown |
getPriceHistory(ticker, weeks?) |
Weekly prices with returns (default: 52 weeks) |
getQuarterlyFinancials(ticker) |
8 quarters: revenue, margins, ROIC, D/E |
getScoreHistory(ticker) |
Composite quality score (7 components) over 12 periods |
getReverseDCF(ticker) |
Bear/base/bull fair value scenarios |
getBeneishScore(ticker) |
M-Score earnings manipulation detection |
getZScoreHistory(ticker) |
Altman Z-Score bankruptcy risk history |
getConvictionHistory(ticker) |
Insider conviction trajectory scores (buying patterns) |
getMacroSensitivity(ticker) |
Sensitivity to rates, inflation, VIX, USD |
getEarningsPrediction(ticker) |
ML earnings beat/miss prediction |
getEstimateRevisions(ticker) |
Analyst EPS revision trends |
getCorrelatedStocks(ticker) |
Price correlation analysis with sector peers |
getInstitutionalOwnership(ticker) |
Top holders, whale activity, concentration risk |
getGeographicRevenue(ticker) |
Revenue by geographic region |
getSegmentRevenue(ticker) |
Business segment revenue breakdown |
| Tool | Description |
|---|---|
screenStocks(...) |
Multi-factor screen of 2,260+ stocks |
deepValueScreen(sector?, limit?) |
Piotroski ≥ 6 value stocks |
compareTickers(tickers) |
2-5 stocks side-by-side |
computeMetric(metric, aggregation) |
Aggregate statistics across top 100 stocks |
getPortfolioAnalysis(tickers) |
Multi-holding portfolio analytics |
crossReferencePortfolio(tickers) |
Portfolio vs market signal alignment |
getStrategyPicks(strategy?) |
Pre-computed strategy picks |
| Tool | Description |
|---|---|
getMarketSignal() |
Current signal with 5-component breakdown |
getRegimeAnalysis() |
Macro regime classification |
getMacroIndicator(indicator) |
FRED data (CPI, GDP, rates, etc.) |
getFearGreedIndex(timeline?) |
Fear & Greed with optional history |
getSectorBreakdown(sector?) |
Top stocks by market cap for a sector |
getBLSIndicator(series_id) |
BLS economic data (employment, CPI, PPI) |
getMacroAttention(weeks?) |
Macro Google Search Volume for stress terms |
getRegimeTransitions(days?) |
Historical regime transitions |
getSignalHistory(days?) |
Daily signal history + SPY returns |
getMarketBreadth(period_type?) |
Advance/decline, new highs/lows |
getEarningsCalendar(from?, to?) |
Upcoming earnings reports calendar |
searchStocks(query) |
Fuzzy search 2,260+ US equities |
getMarketHeatmap() |
Sector performance heatmap with top gainers/losers |
| Tool | Description |
|---|---|
getInsiderActivity(ticker) |
SEC Form 4 insider trades |
getCongressionalTrades(...) |
STOCK Act trades |
getEarningsSurprises(ticker) |
Historical beats/misses |
getAccelerationMatrix(...) |
Revenue & earnings acceleration |
getLargeShareholderFilings(ticker) |
13D/13G activist & ownership filings |
getLaborEfficiency(ticker) |
Revenue/employee, SGA/employee, headcount |
getETFExposure(ticker) |
Reverse ETF lookup with weights |
getClinicalTrials(ticker?, phase?) |
Biotech/pharma trial pipeline |
getLobbyingActivity(ticker?, sector?) |
Federal lobbying spend & issues |
| Tool | Description |
|---|---|
getNextEarnings(ticker) |
Next earnings date and reporting details |
getPeerComparison(ticker) |
Peer group analysis with relative rankings |
getValuationHistory(ticker) |
Historical P/E, P/S, EV/EBITDA time series |
getRiskMetrics(ticker) |
Beta, max drawdown, Sharpe, Sortino, VaR |
getAnnualTrends(ticker) |
Multi-year revenue, income, margins trajectory |
getKPIs(ticker) |
Industry-specific KPIs and operational metrics |
getAttentionSignals(ticker) |
Wikipedia + Google Trends anomalies |
getAcademicFactors(ticker) |
Residual income, accruals quality, Fama-French |
getForesightScore(ticker) |
ML composite foresight/trajectory score |
getInsiderSignals(ticker) |
Derived insider conviction patterns and clusters |
getAIVerdict(ticker) |
AI analyst buy/hold/sell verdict with thesis |
| Tool | Description |
|---|---|
getGovtContracts(ticker?, agency?) |
Government contract awards (by company or screened) |
getVolatilityProfile(ticker) |
Volatility analysis: risk metrics, vs SPY benchmark |
getRedditMentions(ticker?) |
Reddit sentiment & mention trends |
getMergerDeals(status?, ticker?) |
Active M&A deals with spreads |
getBatchEarningsPredictions(tickers) |
ML predictions for multiple tickers |
getETFBreakdown(ticker) |
ETF holdings, sector breakdown |
getIPOCalendar(range?) |
Upcoming IPOs with pricing details |
getAttentionAlerts(days?) |
Unusual attention spikes across universe |
getMacroSentiment() |
Full sentiment: AAII, VIX, put/call, ISM |
getGovtContractSummary(ticker) |
Aggregated contract exposure: 12-month totals, top agencies |
getBatchRiskMetrics(tickers) |
Risk metrics for multiple tickers |
getFactorModelScores(model) |
18 academic factor models with scores |
getMarketStreaks(sector?) |
Stocks on quality improvement streaks |
| Resource URI | Description | Cache |
|---|---|---|
finstill://market/signal |
Current market signal | 5 min |
finstill://market/regime |
Macro regime | 1 hour |
finstill://market/fear-greed |
Fear & Greed Index | 1 hour |
finstill://sectors/overview |
Sector aggregates | 1 hour |
finstill://company/{ticker} |
Company summary | 24 hours |
finstill://meta/tools |
Tool documentation | Static |
finstill://meta/coverage |
Covered tickers | 24 hours |
| Prompt | Args | Description |
|---|---|---|
analyze-stock |
{ticker} |
Full stock analysis (15 tools) |
compare-stocks |
{tickers} |
Side-by-side comparison |
screen-stocks |
{criteria} |
NL criteria → stock screen |
macro-outlook |
— | Macro environment summary (10 tools) |
sector-rotation |
— | Sector rotation analysis |
earnings-preview |
{ticker} |
Pre-earnings analysis (10 tools) |
portfolio-health-check |
{tickers} |
Portfolio health: quality, risk, concentration |
alternative-data-scan |
{ticker} |
Non-traditional data deep dive |
market-dashboard |
— | Comprehensive market overview (13 tools) |
deep-value-hunt |
{sector?} |
Deep value stock discovery |
import { createServer, connectStdio } from '@fffinstill/mcp-server';
const server = createServer({
apiUrl: 'https://fffinstill.com',
apiKey: process.env.FINSTILL_API_KEY!,
});
await connectStdio(server);
This server implements the full MCP specification:
readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, and human-readable title fieldstitle, mimeType, description, and audience/priority annotationstools, resources, and prompts with listChanged: falseRate limits depend on your subscription tier:
| Plan | Requests/min | Monthly cap |
|---|---|---|
| Founding | 20 | 1,000 |
| Pro | 20 | 1,000 |
| Business | 60 | Unlimited |
MIT
Выполни в терминале:
claude mcp add fffinstill -- npx