Toolstem Mcp Server
About
Agent-ready financial intelligence tools for AI agents. Derives signals like UNDERVALUED, STRONG, and ACCELERATING — one call, one agent-friendly response.
Details
- Author
- toolstem
- Downloads
- 270
- Categories
- Other, AI
Jump to
- Parallel data fetching from multiple sources concurrently
- Human-readable derived signals (e.g. UNDERVALUED, STRONG, ACCELERATING)
- Pre-computed CAGR, YoY growth, margin trends, and FCF yield
- Flat, predictable response schemas — no nested vendor quirks
- Graceful degradation — partial nulls if one upstream endpoint fails
- Four tools: stock snapshot, company metrics, stock screener, company comparison
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Toolstem Mcp ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install globally via npm (npm install -g toolstem-mcp-server) and run with the required FMP_API_KEY environment variable. Supports stdio mode (default) and Streamable HTTP transport (--http flag, optional PORT). Can also be added to Claude Desktop via claude_desktop_config.json, run as an Apify Actor, or self-hosted on any Node runtime.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"toolstem mcp server": {
"toolstem": {
"command": "npx",
"args": [
"-y",
"toolstem-mcp-server"
]
}
}
}
}
McpServers
{
"toolstem": {
"command": "npx",
"args": [
"-y",
"toolstem-mcp-server"
]
}
}
Toolstem MCP Server
Why Toolstem?
Most financial MCP servers expose one tool per API endpoint — forcing your agent to make 4–5 sequential calls, write glue code, and reason about raw data shapes. Toolstem is built differently: - Parallel data fetching — every tool fans out to multiple sources concurrently. - Derived signals — human-readable recommendations likeUNDERVALUED, STRONG, ACCELERATING computed from raw numbers.
- Pre-computed math — CAGRs, YoY growth, margin trends, distance from 52-week high/low, FCF yield, and more are already in the response.
- Flat, predictable schema — no deeply nested vendor quirks leaking into agent prompts.
- Graceful degradation — if one upstream endpoint fails, the rest of the response still comes through with nulls in place.
---
Tools
get_stock_snapshot
Comprehensive stock overview combining quote, profile, DCF valuation, and rating into a single response.
Input:
``json
{
"symbol": "AAPL"
}
`
Example output (truncated):
`json
{
"symbol": "AAPL",
"company_name": "Apple Inc.",
"sector": "Technology",
"industry": "Consumer Electronics",
"exchange": "NASDAQ",
"price": {
"current": 178.52,
"change": 2.34,
"change_percent": 1.33,
"day_high": 179.80,
"day_low": 175.10,
"year_high": 199.62,
"year_low": 130.20,
"distance_from_52w_high_percent": -10.57,
"distance_from_52w_low_percent": 37.11
},
"valuation": {
"market_cap": 2780000000000,
"market_cap_readable": "$2.78T",
"pe_ratio": 29.5,
"dcf_value": 195.20,
"dcf_upside_percent": 9.35,
"dcf_signal": "FAIRLY VALUED"
},
"rating": {
"score": 4,
"recommendation": "Buy",
"dcf_score": 5,
"roe_score": 4,
"roa_score": 4,
"de_score": 5,
"pe_score": 3
},
"fundamentals_summary": {
"beta": 1.28,
"avg_volume": 55000000,
"employees": 164000,
"ipo_date": "1980-12-12",
"description": "Apple Inc. designs, manufactures..."
},
"meta": {
"source": "Toolstem via Financial Modeling Prep",
"timestamp": "2026-04-17T18:30:00Z",
"data_delay": "End of day"
}
}
`
Derived fields (not in raw APIs):
- dcf_signal — UNDERVALUED if DCF upside > 10%, OVERVALUED if < -10%, else FAIRLY VALUED.
- market_cap_readable — human-friendly $2.78T, $450.2B, $12.5M format.
- distance_from_52w_high_percent / distance_from_52w_low_percent — pre-computed range position.
---
get_company_metrics
Deep fundamentals analysis — profitability, financial health, cash flow, growth, and per-share metrics — synthesized from 5 financial statements endpoints.
Input:
`json
{
"symbol": "AAPL",
"period": "annual"
}
`
period accepts annual (default) or quarter.
Example output (truncated):
`json
{
"symbol": "AAPL",
"period": "annual",
"latest_period_date": "2025-09-30",
"profitability": {
"revenue": 394328000000,
"revenue_readable": "$394.3B",
"revenue_growth_yoy": 7.8,
"net_income": 96995000000,
"net_income_readable": "$97.0B",
"gross_margin": 46.2,
"operating_margin": 31.5,
"net_margin": 24.6,
"roe": 160.5,
"roa": 28.3,
"roic": 56.2,
"margin_trend": "EXPANDING"
},
"financial_health": {
"total_debt": 111000000000,
"total_cash": 65000000000,
"net_debt": 46000000000,
"debt_to_equity": 1.87,
"current_ratio": 1.07,
"interest_coverage": 41.2,
"health_signal": "STRONG"
},
"cash_flow": {
"operating_cash_flow": 118000000000,
"free_cash_flow": 104000000000,
"free_cash_flow_readable": "$104.0B",
"fcf_margin": 26.4,
"capex": 14000000000,
"dividends_paid": 15000000000,
"buybacks": 89000000000,
"fcf_yield": 3.7
},
"growth_3yr": {
"revenue_cagr": 8.2,
"net_income_cagr": 10.1,
"fcf_cagr": 9.5,
"growth_signal": "ACCELERATING"
},
"per_share": {
"eps": 6.42,
"book_value_per_share": 3.99,
"fcf_per_share": 6.89,
"dividend_per_share": 0.96,
"payout_ratio": 14.9
},
"meta": {
"source": "Toolstem via Financial Modeling Prep",
"timestamp": "2026-04-17T18:30:00Z",
"periods_analyzed": 3,
"data_delay": "End of day"
}
}
`
Derived fields:
- margin_trend — EXPANDING, STABLE, or CONTRACTING based on net margin series direction.
- health_signal — STRONG, ADEQUATE, or WEAK from debt-to-equity, current ratio, and interest coverage.
- growth_signal — ACCELERATING, STEADY, or DECELERATING based on YoY growth trajectory.
- revenue_cagr, net_income_cagr, fcf_cagr — compound annual growth rates over the analyzed window.
- fcf_margin, fcf_yield — pre-computed from cash flow + revenue + market cap.
---
screen_stocks
Screen and filter stocks by sector, market cap, price range, beta, volume, dividend yield, exchange, and country. Returns derived category signals for every match.
Input:
`json
{
"sector": "Technology",
"market_cap_min": 10000000000,
"exchange": "NASDAQ",
"volume_min": 500000,
"limit": 20
}
`
All parameters are optional — omit any filter to leave that dimension open.
Example output (truncated):
`json
{
"query_summary": "20 stocks matching: sector=Technology, mktCap≥$10.0B, exchange=NASDAQ, volume≥500,000",
"total_results": 20,
"stocks": [
{
"symbol": "AAPL",
"company_name": "Apple Inc.",
"sector": "Technology",
"industry": "Consumer Electronics",
"exchange": "NASDAQ",
"country": "US",
"price": 178.52,
"market_cap": 2780000000000,
"market_cap_readable": "$2.78T",
"beta": 1.28,
"volume": 55000000,
"last_annual_dividend": 0.96,
"cap_category": "MEGA",
"volatility_category": "MODERATE",
"liquidity_category": "HIGH"
}
],
"meta": {
"source": "Toolstem via Financial Modeling Prep",
"timestamp": "2026-04-20T18:30:00Z",
"data_delay": "Real-time during market hours",
"filters_applied": ["sector: Technology", "market_cap_min: 10000000000", "exchange: NASDAQ", "volume_min: 500000", "limit: 20"]
}
}
`
Derived fields:
- cap_category — MEGA (>$200B), LARGE ($10B–$200B), MID ($2B–$10B), SMALL ($300M–$2B), MICRO ($50M–$300M), NANO (<$50M).
- volatility_category — LOW (beta < 0.8), MODERATE (0.8–1.3), HIGH (> 1.3).
- liquidity_category — HIGH (volume > 1M), MODERATE (100K–1M), LOW (< 100K).
---
compare_companies
Side-by-side comparison of 2–5 companies across price, valuation, profitability, financial health, growth, dividends, and analyst ratings.
Input:
`json
{
"symbols": ["AAPL", "MSFT", "GOOGL"]
}
`
Example output (truncated):
`json
{
"symbols_compared": ["AAPL", "MSFT", "GOOGL"],
"comparison_date": "2026-04-20T18:30:00Z",
"companies": [
{
"symbol": "AAPL",
"company_name": "Apple Inc.",
"sector": "Technology",
"price": { "current": 178.52, "change_percent": 1.33 },
"valuation": { "pe_ratio": 29.5, "dcf_upside_percent": 9.35 },
"profitability": { "net_margin": 24.6, "roe": 160.5, "roic": 56.2 },
"financial_health": { "debt_to_equity": 1.87, "current_ratio": 1.07 },
"growth": { "revenue_growth_yoy": 7.8, "earnings_growth_yoy": 10.1 },
"dividend": { "dividend_yield": 0.5, "payout_ratio": 14.9 },
"rating": { "score": 4, "recommendation": "Buy" }
}
],
"rankings": {
"lowest_pe": "GOOGL",
"highest_margin": "AAPL",
"strongest_balance_sheet": "GOOGL",
"best_growth": "MSFT",
"most_undervalued": "GOOGL",
"highest_rated": "MSFT"
},
"meta": {
"source": "Toolstem via Financial Modeling Prep",
"timestamp": "2026-04-20T18:30:00Z",
"data_delay": "Real-time during market hours",
"api_calls_made": 19
}
}
`
Derived fields:
- rankings — automatically computed: lowest_pe, highest_margin, strongest_balance_sheet, best_growth, most_undervalued, highest_rated.
- All valuation, profitability, health, and growth metrics pre-computed per company.
- Uses batch quote for efficient multi-symbol price retrieval.
---
Installation
npm
`bash
npm install -g toolstem-mcp-server
`
Run as stdio server:
`bash
FMP_API_KEY=your_key_here toolstem-mcp-server
`
Run as HTTP (Streamable HTTP transport) server:
`bash
FMP_API_KEY=your_key_here PORT=3000 toolstem-mcp-server --http
`
Claude Desktop
Add to your claude_desktop_config.json:
`json
{
"mcpServers": {
"toolstem": {
"command": "npx",
"args": ["-y", "toolstem-mcp-server"],
"env": {
"FMP_API_KEY": "your_fmp_api_key"
}
}
}
}
`
Apify
Available on the Apify Store as the toolstem-financial-data Actor. Call it from your Apify workflow with input:
`json
{
"tool": "get_stock_snapshot",
"symbol": "AAPL"
}
`
or
`json
{
"tool": "screen_stocks",
"sector": "Technology",
"market_cap_min": 10000000000,
"limit": 20
}
`
or
`json
{
"tool": "compare_companies",
"symbols": ["AAPL", "MSFT", "GOOGL"]
}
`
Results are pushed to the default dataset. The actor monetizes per tool call via Apify's Pay-Per-Event model.
Self-hosting (Cloudflare Workers / any Node runtime)
Build and run the HTTP transport:
`bash
npm install
npm run build
FMP_API_KEY=your_key npm run start:http
`
Your MCP client can then connect to POST http://your-host:3000/mcp.
---
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| FMP_API_KEY | Yes | Financial Modeling Prep API key. Get one at financialmodelingprep.com. |
| PORT | No | Port for HTTP transport. Defaults to 3000. |
---
Development
`bash
npm install
npm run dev # stdio, hot reload via tsx
npm run build # TypeScript -> dist/
npm start # run built stdio server
npm run start:http # run built HTTP server
`
---
Architecture
`
src/
├── index.ts # MCP server entry (stdio + Streamable HTTP)
├── actor.ts # Apify Actor entry
├── services/
│ └── fmp.ts # Financial Modeling Prep API client
├── tools/
│ ├── get-stock-snapshot.ts
│ ├── get-company-metrics.ts
│ ├── screen-stocks.ts
│ └── compare-companies.ts
└── utils/
└── formatting.ts # Market cap formatting, CAGR, trend signals
`
All FMP endpoints are wrapped in a single FmpClient class. Tool implementations fan out to multiple client methods in parallel via Promise.all`, then synthesize the merged result.
---
License
MIT — see LICENSE. --- Toolstem — curated financial intelligence for the agent-native economy.Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




