Stoxly
# Stoxly MCP Server
[](https://smithery.ai/servers/stoxlyanalysis/stoxly)
Free stock, ETF and crypto analysis for AI agents, powered by [Stoxly](https://www.stoxlyonline.com).
Stoxly evaluates any publicly traded company against a 10-point fundamental checklist (P/E, PEG, price/book, revenue growth, ROE, operating margin, return on assets, quick ratio, debt/equity, free cash flow yield) — any US-listed ETF against 10 fund criteria (expense ratio, fund size, fund age, holdings, concentration, volatility, 1/3/5-year returns) — and any crypto-asset listed on CoinGecko or CoinPaprika against 10 crypto criteria (market cap, market cap rank, 24h volume/market cap, exchange count, supply issued, project age, developer commits, volatility, 1/3-year returns). Each analysis returns a 0–10 score, a descriptive verdict, every underlying metric and a link to the full analysis page.
Available as a **remote MCP server** (Streamable HTTP, nothing to install) and as a **stdio server** (`server.js`, for clients and platforms that run MCP servers as a local process — e.g. Glama, Docker).
**Docs:** https://www.stoxlyonline.com/mcp
## Endpoint
```
https://www.stoxlyonline.com/api/mcp
```
- Transport: Streamable HTTP
- Authentication: none
- Rate limit: 30 tool calls per IP per hour
## Tools
- `analyze_stock` - Fundamental analysis of a publicly traded stock. Returns a 0-10 fundamental score, a descriptive verdict, 10 per-criterion checks, all underlying metrics and a link to the full analysis page.
- `analyze_etf` - Analysis of a US-listed ETF. Returns a 0-10 fund score, a descriptive verdict, 10 per-criterion checks, all underlying metrics and a link to the full analysis page.
- `analyze_crypto` - Analysis of a crypto-asset (coin or token). Returns a 0-10 crypto score, a descriptive verdict, 10 per-criterion checks, all underlying metrics and a link to the full analysis page.
### analyze_stock
Fundamental analysis of a publicly traded stock. Returns company name, price, the 10-point `score`, a descriptive `verdict`, per-criterion `checks` (P/E, PEG, price/book, revenue growth, ROE, operating margin, return on assets, quick ratio, debt/equity, free cash flow yield), all metric values and the canonical analysis URL. `null` means a metric was unavailable — never treat it as 0.
**Parameters:**
- `symbol` (string, required): Ticker in Yahoo Finance format, e.g. `AAPL`, `BRK-B`, `SAP.DE`
### analyze_etf
Analysis of a US-listed ETF. Returns fund name, price, the 10-point `score`, `verdict`, per-criterion `checks` (expense ratio, fund size, fund age, holdings, concentration, volatility, 1/3/5-year returns), all metric values and the canonical analysis URL.
**Parameters:**
- `symbol` (string, required): Ticker, e.g. `VOO`, `QQQ`, `SCHD`
### analyze_crypto
Analysis of a crypto-asset (coin or token). Returns coin name, price, the 10-point `score`, `verdict`, per-criterion `checks` (market cap, market cap rank, 24h volume/market cap, exchange count, supply issued, project age, developer commits, volatility, 1-year and 3-year returns), all metric values and the canonical analysis URL. Unknown symbols return an error.
**Parameters:**
- `symbol` (string, required): Crypto ticker symbol, e.g. `BTC`, `ETH`, `SOL` (a `-USD` suffix is accepted)
## Setup
### Local stdio server
```bash
git clone https://github.com/wizard-exe/Stoxly-mcp.git
cd Stoxly-mcp
npm ci
node server.js
```
Or with Docker:
```bash
docker build -t stoxly-mcp .
docker run -i --rm stoxly-mcp
```
MCP client config (stdio):
```json
{
"mcpServers": {
"stoxly": {
"command": "node",
"args": ["/path/to/Stoxly-mcp/server.js"]
}
}
}
```
The stdio server fetches the scored analysis from `https://www.stoxlyonline.com/api/analyze` (`type=stock|etf|crypto`, same 30 requests per IP per hour limit). No API key or environment variables are required.
### Claude Code
```bash
claude mcp add --transport http stoxly https://www.stoxlyonline.com/api/mcp
```
### Claude (Desktop / claude.ai)
Settings → Connectors → **Add custom connector** → URL: `https://www.stoxlyonline.com/api/mcp`
### Cursor / other MCP clients
```json
{
"mcpServers": {
"stoxly": {
"url": "https://www.stoxlyonline.com/api/mcp"
}
}
}
```
## Example
> "Analyze AAPL's fundamentals"
The agent calls `analyze_stock` with `{"symbol": "AAPL"}` and receives:
```json
{
"symbol": "AAPL",
"companyName": "Apple Inc.",
"score": "7/10 criteria met",
"verdict": "Strong Fundamentals",
"checks": { "revenueGrowth": true, "peRatio": false, "...": "..." },
"metrics": { "peRatio": 33.2, "roe": 104.2, "...": "..." },
"url": "https://www.stoxlyonline.com/analysis/AAPL"
}
```
## Data & methodology
Data is aggregated from Financial Modeling Prep, Yahoo Finance, Finnhub and Alpha Vantage, plus official regulatory filings (SEC EDGAR for US filers, ESEF/UKSEF via filings.xbrl.org for Europe/UK). Crypto market, supply and developer data comes from CoinGecko with CoinPaprika as fallback; crypto price history from Yahoo Finance. Scoring thresholds are documented at [stoxlyonline.com/about](https://www.stoxlyonline.com/about) and in [llms-full.txt](https://www.stoxlyonline.com/llms-full.txt).
## Disclaimer
For educational purposes only — not financial advice. Data may be delayed.
TDQS
Scored across 2 tools
The two tools target mutually exclusive asset types (single stock vs US-listed ETF), and each description explicitly names its own checklist, so there is no realistic chance of misselection. Their inputs, outputs, and caveats (null metrics, US-listing requirement) are clearly scoped to one instrument class each.
Both names follow the identical verb_noun snake_case pattern (analyze_stock, analyze_etf), with the noun mapping cleanly onto the asset class being analyzed. Fully predictable and extensible.
Two tools is thin for a server framed around stock/ETF research, even if the scope is deliberately narrow and each tool is substantial. It is borderline rather than wrong, but leaves no room for lookups, comparisons, or screener-style operations.
Coverage of the two core analysis operations is solid and symmetric, and each returns a pointer to a fuller page. However, there is no discovery or lookup surface (e.g. resolving a ticker/company name, searching or listing available instruments) and no comparison or batch analysis, so an agent that does not already know a valid symbol hits a dead end.