Real-time US stock market data via the Alpaca Market Data API (data.alpaca.markets, v2). Provides BYOK (Bring Your Own Key) access to real-time IEX-feed data including extended hours with VWAP on every bar.
Three well-defined tools with complete input schemas, strong descriptions (194 - 280 chars), and clear parameter documentation. All tools are read-only market-data queries with proper enum constraints for timeframe. Auth pattern (combined-credential _apiKey) is well-documented. Key gaps: no output schemas documented, no error recovery guidance in descriptions, and no tool annotations (readOnlyHint). Descriptions are verbose but actionable; parameter types are present and correct.
Historical US stock OHLCV bars with per-bar VWAP and trade count. Timeframes 1Min/5Min/15Min/1Hour/1Day; intraday bars include pre-market and after-hours sessions on the IEX feed. Each bar: {t, o, h, l, c, v, vwap, trades}. Use start/end ISO timestamps or a lookback shorthand like "2h", "5d". Multiple symbols comma-separated (max 20). BYOK Alpaca (free account). Example: alpaca_bars({ symbols: "AAPL", timeframe: "5Min", lookback: "1d", _apiKey: "key_id:secret_key" })
Current session VWAP for US stocks — is the price above or below VWAP right now? Fetches today's 1-minute bars from 04:00 ET (pre-market included), computes the cumulative volume-weighted average price, and compares it to the latest trade. Returns current_price, session_vwap, above_vwap, and session volume per symbol. Answers "current VWAP for BLK, AAPL, RHI, CTAS — above or below?" in one call. Multiple symbols comma-separated (max 20). BYOK Alpaca (free account), real-time IEX feed. Example: alpaca_intraday_vwap({ symbols: "BLK,AAPL,RHI,CTAS", _apiKey: "key_id:secret_key" })
Real-time US stock snapshot with extended-hours coverage: latest trade price, bid/ask quote, today's OHLCV, previous close, change and change % vs previous close, plus the latest minute bar with its VWAP — during pre-market and after-hours the minute bar IS the live extended-hours price. Answers "pre-market price of OKTA", "overnight change %", "after-hours volume and high/low". Multiple symbols comma-separated (max 20). BYOK Alpaca (free account), real-time IEX feed. Example: alpaca_snapshot({ symbols: "OKTA,AAPL", _apiKey: "key_id:secret_key" })
No output schemas documented. LLMs cannot plan downstream operations or extract fields without knowing the response structure (e.g., snapshot returns {trade, quote, bar, prevClose, change, changePercent} but this is not formally specified).
Tool names lack action verbs. 'alpaca_snapshot', 'alpaca_bars', 'alpaca_intraday_vwap' are noun-heavy; should be 'get_stock_snapshot', 'get_stock_bars', 'get_stock_vwap' to signal intent immediately.
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent; marking them as such helps agents reason about retry safety and side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Error handling in code (alpacaError function) provides recovery guidance, but descriptions do not mention common failure modes (rate limits, subscription errors, invalid symbols). Agents cannot self-correct without explicit error hints in the description.
Credentials exposed as _apiKey parameter. Although the pattern is well-documented (combined-credential format), best practice is server-side secret injection via environment variables. Agents log all parameters, secrets in params risk leaking into traces.