Stoxly
Free financial analysis server for AI agents: get scored 0–10 assessments of stocks, ETFs, and crypto assets.
analyze_stock: Scores a publicly traded stock against 10 fundamental criteria (P/E, PEG, price/book, revenue growth, ROE, operating margin, ROA, quick ratio, debt/equity, free cash flow yield).
analyze_etf: Scores a US-listed ETF against 10 fund criteria (expense ratio, fund size, fund age, holdings, concentration, volatility, 1/3/5-year returns).
analyze_crypto: Scores a crypto-asset against 10 criteria (market cap, rank, volume/mcap, exchange count, supply, project age, developer commits, volatility, 1/3-year returns).
Each tool returns a verdict, per-criterion checks, underlying metric values, and a link to the full Stoxly analysis page.
Accessible remotely via Streamable HTTP at
https://www.stoxlyonline.com/api/mcpwith no authentication, or locally as a stdio server.
Stoxly MCP Server
Free stock, ETF and crypto analysis for AI agents, powered by Stoxly.
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/mcpTransport: Streamable HTTP
Authentication: none
Rate limit: 30 tool calls per IP per hour
Related MCP server: Toolstem MCP Server
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-USDsuffix is accepted)
Setup
Local stdio server
git clone https://github.com/wizard-exe/Stoxly-mcp.git
cd Stoxly-mcp
npm ci
node server.jsOr with Docker:
docker build -t stoxly-mcp .
docker run -i --rm stoxly-mcpMCP client config (stdio):
{
"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
claude mcp add --transport http stoxly https://www.stoxlyonline.com/api/mcpClaude (Desktop / claude.ai)
Settings → Connectors → Add custom connector → URL: https://www.stoxlyonline.com/api/mcp
Cursor / other MCP clients
{
"mcpServers": {
"stoxly": {
"url": "https://www.stoxlyonline.com/api/mcp"
}
}
}Example
"Analyze AAPL's fundamentals"
The agent calls analyze_stock with {"symbol": "AAPL"} and receives:
{
"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 and in llms-full.txt.
Disclaimer
For educational purposes only — not financial advice. Data may be delayed.
Available Tools
2 toolsanalyze_etfAnalyze ETFARead-onlyInspect
Free analysis of a US-listed ETF. Scores the fund against Stoxly's 10-point checklist (expense ratio, fund size, fund age, number of holdings, top-10 weight, top sector weight, volatility, 1/3/5-year returns) and returns the score, a descriptive verdict, every metric value and a link to the full analysis page. Fund stats are usually only available for US-listed ETFs.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker symbol in Yahoo Finance format, e.g. AAPL, BRK-B, SAP.DE, VOO |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds meaningful context beyond them: it is free, it summarizes what is returned (score, verdict, per-metric values, analysis link), and it warns that data coverage is mostly limited to US-listed funds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and then the coverage caveat. The parenthetical metric list is dense but earns its place by revealing the scoring criteria; it is slightly long but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the return payload (score, verdict, metric values, link). Combined with the US-listing caveat, an agent has enough to call it correctly; only failure/edge-case behavior for non-US or invalid tickers is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'symbol' parameter is fully documented with format examples in the schema. The description adds nothing about the symbol argument, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (analyze/scores) and resource (US-listed ETF), and enumerates the actual checklist dimensions used, so an agent knows exactly what output shape to expect. Naming the ETF scope implicitly separates it from the sibling analyze_stock.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly signals cost ('Free analysis') and states the applicability boundary ('Fund stats are usually only available for US-listed ETFs'). It stops short of explicitly routing stock queries to analyze_stock, so the when-to-use-this-vs-sibling condition is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_stockAnalyze stock fundamentalsARead-onlyInspect
Free fundamental analysis of a publicly traded stock. Scores the company against Stoxly's 10-point checklist (P/E, PEG, price/book, revenue growth, ROE, operating margin, return on assets, quick ratio, debt/equity, free cash flow yield) and returns the score, a descriptive verdict, every metric value and a link to the full analysis page. null means a metric was unavailable — never treat it as 0.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker symbol in Yahoo Finance format, e.g. AAPL, BRK-B, SAP.DE, VOO |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuine operational context beyond that: it is 'free' (no cost/auth friction implied) and, critically, defines null semantics ('null means a metric was unavailable — never treat it as 0'), which prevents a real downstream misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero filler, and the important constraints (checklist scope, null handling) are front-loaded before the return-value description. The metric enumeration earns its length because it defines what the score actually measures.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description compensates by summarizing exactly what comes back (score, verdict, per-metric values, analysis link) and how to read nulls. With the single parameter fully documented in the schema, nothing needed to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents the Yahoo Finance ticker format with examples (AAPL, BRK-B, SAP.DE, VOO). The description adds nothing about the symbol parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('fundamental analysis of a publicly traded stock'), enumerates the exact checklist it scores against, and discloses the return shape (score, verdict, metric values, link). The scoping to stocks implicitly separates it from the sibling analyze_etf, so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'of a publicly traded stock' tells the agent this is for equities, not ETFs, but there is no explicit when-to-use/when-not statement and no named alternative (analyze_etf is never mentioned). Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
analyze_etf - First observed
analyze_stock
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.
Maintenance
Related MCP Connectors
Analyze stocks with summaries, price targets, and analyst recommendations. Track SEC filings, divi…
Normalized SEC EDGAR fundamentals. 3 of 6 tools free; the rest $0.04-$0.10 per call in USDC.
SEC EDGAR fundamentals as agent tools: look up or screen US public companies. Free, no key, CC0.
13-model stock valuation engine for AI agents - fair values for 5,900+ US stocks, updated daily.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceEnables LLMs to retrieve, analyze, and visualize stock prices and financial report data for quantitative trading research and investment analysis. Provides real-time and historical stock data, financial statement analysis, key metric calculations, and trading signal visualization.13-
- AlicenseAqualityCmaintenanceAgent-ready financial intelligence tools for AI agents. Two curated tools — get_stock_snapshot and get_company_metrics — that combine multiple data sources, derive signals (UNDERVALUED, STRONG, ACCELERATING), and pre-compute the math. One call, one agent-friendly response.348 npm1MIT
- AlicenseAqualityDmaintenanceMCP server for the AKKA Finance DEX aggregator — swap quotes, routes, and execution across EVM chains.947 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides TradingView-style market analysis with OHLCV candles, 19 technical indicators, a screener, and a backtester using public Yahoo Finance data without API keys.MIT