CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Atlas

atlasdevhq/atlas
180 toolsauthSTDIOregistry active
Summary

Bridges your YAML semantic layer to Claude Desktop, Cursor, and Continue so agents can generate validated SQL against your analytics schema. Exposes entities, dimensions, measures, joins, and glossary terms defined in version-controlled files. Instead of guessing table names or column semantics, the agent reads your documented data contracts complete with sample values, ambiguous term flags, and canonical query patterns. Returns read-only SQL with validation built in. One-line install with bunx detects your client and writes the config. Self-host it alongside your warehouse or point it at a hosted workspace. Best when you already maintain a semantic layer and want LLMs to query it correctly without inventing joins or misinterpreting revenue definitions.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

80 tools
Stock-QuoteGet a real-time stock quote including current price, dollar and percent change, previous close, open, high, low, and volume. Args: symbol: Ticker symbol (e.g. NVDA, SPY, AAPL) Types / example: symbol: string ticker — e.g. "SPY", "NVDA".1 params

Get a real-time stock quote including current price, dollar and percent change, previous close, open, high, low, and volume. Args: symbol: Ticker symbol (e.g. NVDA, SPY, AAPL) Types / example: symbol: string ticker — e.g. "SPY", "NVDA".

Parameters* required
symbolstring
Option-Expiration-DatesList available option expiration dates for a symbol. Args: symbol: Ticker symbol (e.g. NVDA, SPY) filter: 'all' for every expiration (no 60-day cap), 'next_10' for the nearest 10 within 60 days, 'near_term' for within 60 days, 'monthly' for monthly only (still capped at 60 day...2 params

List available option expiration dates for a symbol. Args: symbol: Ticker symbol (e.g. NVDA, SPY) filter: 'all' for every expiration (no 60-day cap), 'next_10' for the nearest 10 within 60 days, 'near_term' for within 60 days, 'monthly' for monthly only (still capped at 60 day...

Parameters* required
filterstring
default: next_10
symbolstring
Analyze-Greek-ExposuresCalculate Gamma, Delta, Vanna, and Theta NET exposures for a symbol across multiple expiration dates. Returns per-strike data grouped by expiration plus portfolio totals and key strike levels. Use this for raw numerical exposure data (not charts). Args: symbol: Ticker symbol (...6 params

Calculate Gamma, Delta, Vanna, and Theta NET exposures for a symbol across multiple expiration dates. Returns per-strike data grouped by expiration plus portfolio totals and key strike levels. Use this for raw numerical exposure data (not charts). Args: symbol: Ticker symbol (...

Parameters* required
symbolstring
expirationvalue
to_expirationvalue
from_expirationvalue
num_expirationsinteger
default: 5
expiration_rangevalue
Top-Volume-and-OI-ContractsGet the highest-volume or highest-open-interest option contracts for a symbol. Returns strike, side, volume, OI, bid/ask, delta, IV, and DTE for each contract. Useful for spotting unusual activity. Args: symbol: Ticker symbol (e.g. NVDA, SPY) expiration: Specific expiration (Y...7 params

Get the highest-volume or highest-open-interest option contracts for a symbol. Returns strike, side, volume, OI, bid/ask, delta, IV, and DTE for each contract. Useful for spotting unusual activity. Args: symbol: Ticker symbol (e.g. NVDA, SPY) expiration: Specific expiration (Y...

Parameters* required
limitinteger
default: 20
symbolstring
sort_bystring
default: volume
expirationvalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Ticker-Symbol-LookupResolve a company name or partial name to its ticker symbol. Examples: 'Apple' -> AAPL, 'Google' -> GOOGL, 'Tesla' -> TSLA Args: company_name: Company name or partial match (e.g. 'Apple', 'Micro') Types / example: company_name: string — e.g. "Apple", "Microsoft".1 params

Resolve a company name or partial name to its ticker symbol. Examples: 'Apple' -> AAPL, 'Google' -> GOOGL, 'Tesla' -> TSLA Args: company_name: Company name or partial match (e.g. 'Apple', 'Micro') Types / example: company_name: string — e.g. "Apple", "Microsoft".

Parameters* required
company_namestring
Options-ChainGet options chain data for one expiration or for a range of expirations. Single expiration: pass expiration=YYYY-MM-DD (LEAPS and any listed expiry supported). Range: omit expiration and pass from_expiration and/or to_expiration (inclusive ISO dates). Range mode returns up to...6 params

Get options chain data for one expiration or for a range of expirations. Single expiration: pass expiration=YYYY-MM-DD (LEAPS and any listed expiry supported). Range: omit expiration and pass from_expiration and/or to_expiration (inclusive ISO dates). Range mode returns up to...

Parameters* required
symbolstring
expirationvalue
to_expirationvalue
from_expirationvalue
max_expirationsinteger
default: 12
expiration_rangevalue
Historical-Options-ChainGet the options chain for a symbol and expiration as of a specific past date (historical snapshot). Returns every contract with strike, side, bid, ask, mid, volume, open interest, and DTE as of that date. Use this to compare past options data or analyze how positioning changed...3 params

Get the options chain for a symbol and expiration as of a specific past date (historical snapshot). Returns every contract with strike, side, bid, ask, mid, volume, open interest, and DTE as of that date. Use this to compare past options data or analyze how positioning changed...

Parameters* required
datestring
symbolstring
expirationstring
Historical-Strike-QuotesGet historical quotes for a single strike: from_date to to_date (interval) or single date. Takes from_date and optional to_date. If to_date omitted or same as from_date: single date. Expiration is optional — when omitted, picks nearest expiration to the date(s). Returns one qu...6 params

Get historical quotes for a single strike: from_date to to_date (interval) or single date. Takes from_date and optional to_date. If to_date omitted or same as from_date: single date. Expiration is optional — when omitted, picks nearest expiration to the date(s). Returns one qu...

Parameters* required
sidestring
strikenumber
symbolstring
to_datevalue
from_datestring
expirationvalue
Strike-Price-DetailsGet detailed contract data for a specific strike price. Returns call and put contracts at that strike with full Greeks, pricing, IV, volume, and open interest. If expiration is provided, returns data for that single date. If omitted, searches across all near-term expirations (...3 params

Get detailed contract data for a specific strike price. Returns call and put contracts at that strike with full Greeks, pricing, IV, volume, and open interest. If expiration is provided, returns data for that single date. If omitted, searches across all near-term expirations (...

Parameters* required
strikenumber
symbolstring
expirationvalue
Gamma-Exposure-HeatmapGenerate a single Gamma Exposure (GEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...9 params

Generate a single Gamma Exposure (GEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Delta-Exposure-HeatmapGenerate a single Delta Exposure (DEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...9 params

Generate a single Delta Exposure (DEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Vanna-Exposure-HeatmapGenerate a single Vanna Exposure (VEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...9 params

Generate a single Vanna Exposure (VEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Theta-Exposure-HeatmapGenerate a single Theta Exposure (TEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...9 params

Generate a single Theta Exposure (TEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Net-Gamma-Exposure-ChartGenerate a single Net Gamma Exposure (NET GEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...9 params

Generate a single Net Gamma Exposure (NET GEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Net-Delta-Exposure-ChartGenerate a single Net Delta Exposure (NET DEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...9 params

Generate a single Net Delta Exposure (NET DEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Net-Vanna-Exposure-ChartGenerate a single Net Vanna Exposure (NET VEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...9 params

Generate a single Net Vanna Exposure (NET VEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Net-Theta-Exposure-ChartGenerate a single Net Theta Exposure (NET TEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...9 params

Generate a single Net Theta Exposure (NET TEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Top-Volume-Contracts-ChartGenerate a single highest-volume option contracts bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'claude' |...7 params

Generate a single highest-volume option contracts bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'claude' |...

Parameters* required
symbolstring
platformstring
default: other
expirationvalue
image_formatstring
default: png
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Top-Open-Interest-ChartGenerate a single highest-open-interest option contracts bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'cla...7 params

Generate a single highest-open-interest option contracts bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'cla...

Parameters* required
symbolstring
platformstring
default: other
expirationvalue
image_formatstring
default: png
to_expirationvalue
from_expirationvalue
expiration_rangevalue
All-Greek-HeatmapsGenerate all four Greek exposure heatmaps in one call: GEX (Gamma), DEX (Delta), VEX (Vanna), TEX (Theta). TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600...9 params

Generate all four Greek exposure heatmaps in one call: GEX (Gamma), DEX (Delta), VEX (Vanna), TEX (Theta). TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
All-Net-Exposure-ChartsGenerate all four NET exposure bar charts in one call: NET GEX, NET DEX, NET VEX, NET TEX. TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in ima...9 params

Generate all four NET exposure bar charts in one call: NET GEX, NET DEX, NET VEX, NET TEX. TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in ima...

Parameters* required
symbolstring
markingsvalue
platformstring
default: other
expirationvalue
image_formatstring
default: png
strike_rangevalue
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Volume-and-Open-Interest-ChartsGenerate both Volume and Open Interest bar charts in one call. TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'claude'...7 params

Generate both Volume and Open Interest bar charts in one call. TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'claude'...

Parameters* required
symbolstring
platformstring
default: other
expirationvalue
image_formatstring
default: png
to_expirationvalue
from_expirationvalue
expiration_rangevalue
Multi-Chart-ViewCombine multiple chart types and/or symbols into a single response. Pass a JSON array where each element specifies one chart: [ {"type": "gamma", "symbol": "SPY", "strike_range": "520-600"}, {"type": "price", "symbol": "NVDA", "interval": "1h", "period": "5d"}, {"type": "vol",...3 params

Combine multiple chart types and/or symbols into a single response. Pass a JSON array where each element specifies one chart: [ {"type": "gamma", "symbol": "SPY", "strike_range": "520-600"}, {"type": "price", "symbol": "NVDA", "interval": "1h", "period": "5d"}, {"type": "vol",...

Parameters* required
chartsstring
platformstring
default: other
image_formatstring
default: png
Price-ChartGenerate a single candlestick price chart with volume bars and optional visual markings. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Shows OHLC candles (green up, red down), volume at bottom, and current price line. Intervals: 1m, 2m, 3m, 5m, 10m...14 params

Generate a single candlestick price chart with volume bars and optional visual markings. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Shows OHLC candles (green up, red down), volume at bottom, and current price line. Intervals: 1m, 2m, 3m, 5m, 10m...

Parameters* required
endvalue
barsvalue
startvalue
themestring
default: dark
periodstring
default: 3mo
symbolstring
intervalstring
default: 1d
markingsvalue
platformstring
default: other
indicatorsvalue
trend_linesvalue
image_formatstring
default: png
force_refreshboolean
default: false
indicator_colorsvalue
Multi-Timeframe-Price-OverviewGenerate three price charts at once: daily (3 months), weekly (1 year), and hourly (5 days). Good for a quick multi-timeframe overview. TIP: To mix price charts with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY, AAPL) theme: '...4 params

Generate three price charts at once: daily (3 months), weekly (1 year), and hourly (5 days). Good for a quick multi-timeframe overview. TIP: To mix price charts with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY, AAPL) theme: '...

Parameters* required
themestring
default: dark
symbolstring
platformstring
default: other
image_formatstring
default: png
Chart-Vision-AnalysisAnswer questions about Atlas charts (Greek heatmaps, net exposure bars, price candles, volume, open interest). Pass the user's question in plain language; the tool selects a suitable chart when needed and returns a written interpretation. After drawing markings or trend lines...1 params

Answer questions about Atlas charts (Greek heatmaps, net exposure bars, price candles, volume, open interest). Pass the user's question in plain language; the tool selects a suitable chart when needed and returns a written interpretation. After drawing markings or trend lines...

Parameters* required
questionstring
Price-Data-OHLCVGet OHLCV price data as JSON — useful for reading exact values at a specific point on a chart, or for building analysis from raw data. If timestamp is given (YYYY-MM-DD or YYYY-MM-DD HH:MM), returns the single bar nearest to that time. Otherwise returns all bars in the range....7 params

Get OHLCV price data as JSON — useful for reading exact values at a specific point on a chart, or for building analysis from raw data. If timestamp is given (YYYY-MM-DD or YYYY-MM-DD HH:MM), returns the single bar nearest to that time. Otherwise returns all bars in the range....

Parameters* required
endvalue
barsvalue
startvalue
periodstring
default: 3mo
symbolstring
intervalstring
default: 1d
timestampvalue
Broker-ConnectionsList all connected brokerage accounts for the authenticated user. Types / example: (no parameters — uses authenticated session).

List all connected brokerage accounts for the authenticated user. Types / example: (no parameters — uses authenticated session).

No parameter schema in public metadata yet.

Account-BalancesCash balance, buying power, and equity for one linked brokerage account. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".1 params

Cash balance, buying power, and equity for one linked brokerage account. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".

Parameters* required
account_idstring
Account-HoldingsStock and option positions (holdings) for one linked brokerage account. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".1 params

Stock and option positions (holdings) for one linked brokerage account. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".

Parameters* required
account_idstring
All-Account-HoldingsGet positions across ALL connected brokerage accounts. Types / example: (no parameters — uses authenticated session).

Get positions across ALL connected brokerage accounts. Types / example: (no parameters — uses authenticated session).

No parameter schema in public metadata yet.

Transaction-HistoryTransaction history for one linked brokerage account. Optional start_date and end_date in YYYY-MM-DD. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". start_dat...3 params

Transaction history for one linked brokerage account. Optional start_date and end_date in YYYY-MM-DD. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". start_dat...

Parameters* required
end_datevalue
account_idstring
start_datevalue
Account-Symbol-LookupResolve how a ticker is represented inside a linked brokerage account (instrument id and related fields). Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". symbo...2 params

Resolve how a ticker is represented inside a linked brokerage account (instrument id and related fields). Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". symbo...

Parameters* required
symbolstring
account_idstring
Preview-OrderStage an order for user review WITHOUT calling the broker. Persists a trading_orders row at status='preview' and returns a preview_id + a UI link the user opens to Accept or Cancel. No trade is submitted until the Accept button on that page hits Place-Order. The caller must pa...4 params

Stage an order for user review WITHOUT calling the broker. Persists a trading_orders row at status='preview' and returns a preview_id + a UI link the user opens to Accept or Cancel. No trade is submitted until the Accept button on that page hits Place-Order. The caller must pa...

Parameters* required
ruleobject
phasestring
default: enter
symbolvalue
account_idvalue
Preview-Multiple-OrdersPreview multiple orders at once — e.g. buy 5 NVDA, 5 MSFT, and 5 ASML in one shot. Pass a list of {rule, symbol, account_id?, phase?} objects. Returns a vertical stack of order preview cards, each with a Place button. Use this instead of calling Preview-Order repeatedly for mu...2 params

Preview multiple orders at once — e.g. buy 5 NVDA, 5 MSFT, and 5 ASML in one shot. Pass a list of {rule, symbol, account_id?, phase?} objects. Returns a vertical stack of order preview cards, each with a Place button. Use this instead of calling Preview-Order repeatedly for mu...

Parameters* required
ordersarray
account_idvalue
Place-OrderSubmit an order to the broker via SnapTrade. Stocks use place_force_order; options use place_mleg_order; bracket orders use place_bracket_order (entry + stop_loss + take_profit as a broker-managed OCO pair). Two modes: * Pass preview_id to place an already-staged preview — the...5 params

Submit an order to the broker via SnapTrade. Stocks use place_force_order; options use place_mleg_order; bracket orders use place_bracket_order (entry + stop_loss + take_profit as a broker-managed OCO pair). Two modes: * Pass preview_id to place an already-staged preview — the...

Parameters* required
rulevalue
phasestring
default: enter
symbolvalue
account_idvalue
preview_idvalue
List-Preview-OrdersList the user's recent staged/placed/failed orders. Defaults to status in ('preview','failed') so the UI can surface orders still pending acceptance. Pass statuses=['placed'] to see executed orders. Types / example: statuses: array<string> — optional filter (e.g. ['preview','f...2 params

List the user's recent staged/placed/failed orders. Defaults to status in ('preview','failed') so the UI can surface orders still pending acceptance. Pass statuses=['placed'] to see executed orders. Types / example: statuses: array<string> — optional filter (e.g. ['preview','f...

Parameters* required
limitinteger
default: 50
statusesvalue
Delete-Preview-OrderCancel/delete one staged or placed order. For status='preview' or 'failed' the local record is deleted (nothing was ever sent to SnapTrade — our preview is a local staging step, not a broker call). For status='placed' SnapTrade's cancel_user_account_order is called and the row...1 params

Cancel/delete one staged or placed order. For status='preview' or 'failed' the local record is deleted (nothing was ever sent to SnapTrade — our preview is a local staging step, not a broker call). For status='placed' SnapTrade's cancel_user_account_order is called and the row...

Parameters* required
preview_idstring
Preview-Trading-TriggerShow a trigger preview card for user review WITHOUT saving anything. ALWAYS call this instead of Create-Trading-Trigger — the user reads the card, then clicks 'Activate trigger' to commit it or 'Cancel' to dismiss. Never call Create-Trading-Trigger directly; it is invoked by t...3 params

Show a trigger preview card for user review WITHOUT saving anything. ALWAYS call this instead of Create-Trading-Trigger — the user reads the card, then clicks 'Activate trigger' to commit it or 'Cancel' to dismiss. Never call Create-Trading-Trigger directly; it is invoked by t...

Parameters* required
ruleobject
symbolvalue
account_idvalue
Create-Trading-TriggerPersist a price-trigger rule. IMPORTANT: Do NOT call this tool directly — call Preview-Trading-Trigger first and let the user confirm by clicking 'Activate trigger' in the preview card. This tool is invoked by the widget on the user's behalf. The background worker monitors liv...3 params

Persist a price-trigger rule. IMPORTANT: Do NOT call this tool directly — call Preview-Trading-Trigger first and let the user confirm by clicking 'Activate trigger' in the preview card. This tool is invoked by the widget on the user's behalf. The background worker monitors liv...

Parameters* required
ruleobject
symbolvalue
account_idvalue
List-Trading-TriggersList the user's trading triggers — both currently watching (is_active=true) and paused (is_active=false). Each row carries its own is_active flag so you can label them. Completed/fired triggers are moved to the archive — use List-Fired-Triggers to see those. Types / example: i...3 params

List the user's trading triggers — both currently watching (is_active=true) and paused (is_active=false). Each row carries its own is_active flag so you can label them. Completed/fired triggers are moved to the archive — use List-Fired-Triggers to see those. Types / example: i...

Parameters* required
limitinteger
default: 50
symbolvalue
is_activevalue
Update-Trading-TriggerEdit one trading trigger in place. PRE-ENTRY (phase='enter'): all fields are editable — rule, symbol, account_id. POST-ENTRY (phase='exit'): the enter leg has already fired and a position is open at the broker. Symbol and account are locked. You CAN still update the EXIT block...5 params

Edit one trading trigger in place. PRE-ENTRY (phase='enter'): all fields are editable — rule, symbol, account_id. POST-ENTRY (phase='exit'): the enter leg has already fired and a position is open at the broker. Symbol and account are locked. You CAN still update the EXIT block...

Parameters* required
rulevalue
symbolvalue
is_activevalue
account_idvalue
trigger_idstring
Delete-Trading-TriggerDelete a trading trigger. Triggers are not broker orders — nothing is cancelled at SnapTrade. If the trigger was the source of a placed order, the order row and broker position are unaffected; use Delete-Preview-Order to cancel a placed order at the broker. Idempotent: deletin...1 params

Delete a trading trigger. Triggers are not broker orders — nothing is cancelled at SnapTrade. If the trigger was the source of a placed order, the order row and broker position are unaffected; use Delete-Preview-Order to cancel a placed order at the broker. Idempotent: deletin...

Parameters* required
trigger_idstring
List-Fired-TriggersList the user's completed (fired) triggers from the archive. These are triggers that ran to completion. Use Reactivate-Trigger to restart one from the beginning. Types / example: symbol: string — optional ticker filter. limit: integer — max rows (default 50, cap 200).2 params

List the user's completed (fired) triggers from the archive. These are triggers that ran to completion. Use Reactivate-Trigger to restart one from the beginning. Types / example: symbol: string — optional ticker filter. limit: integer — max rows (default 50, cap 200).

Parameters* required
limitinteger
default: 50
symbolvalue
Reactivate-TriggerMove a fired trigger from the archive back to the active triggers table, resetting it to phase='enter' so it starts monitoring prices again from scratch. The original rule is preserved; only triggered_at is cleared. Types / example: fired_trigger_id: string — the id from List-...1 params

Move a fired trigger from the archive back to the active triggers table, resetting it to phase='enter' so it starts monitoring prices again from scratch. The original rule is preserved; only triggered_at is cleared. Types / example: fired_trigger_id: string — the id from List-...

Parameters* required
fired_trigger_idstring
Earnings-CalendarGet the earnings calendar for a date range, optionally filtered by a single symbol. Types / examples: from_date, to_date: strings — "YYYY-MM-DD", e.g. "2024-01-01" to "2024-12-31" symbol: optional string | null — ticker filter, e.g. "MSFT" Example: from_date="2026-01-01", to_d...3 params

Get the earnings calendar for a date range, optionally filtered by a single symbol. Types / examples: from_date, to_date: strings — "YYYY-MM-DD", e.g. "2024-01-01" to "2024-12-31" symbol: optional string | null — ticker filter, e.g. "MSFT" Example: from_date="2026-01-01", to_d...

Parameters* required
symbolvalue
to_datestring
from_datestring
Insider-TransactionsGet insider transactions for a given stock symbol. Useful for analyzing insider buying and selling activity. Types / examples: symbol: string — "BA" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="BA", from_date=null, to_date=null3 params

Get insider transactions for a given stock symbol. Useful for analyzing insider buying and selling activity. Types / examples: symbol: string — "BA" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="BA", from_date=null, to_date=null

Parameters* required
symbolstring
to_datevalue
from_datevalue
SEC-FilingsGet recent SEC filings (10-K, 10-Q, 8-K, etc.) for a given stock symbol. Types / examples: symbol: string — "BA" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="BA", from_date=null, to_date=null3 params

Get recent SEC filings (10-K, 10-Q, 8-K, etc.) for a given stock symbol. Types / examples: symbol: string — "BA" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="BA", from_date=null, to_date=null

Parameters* required
symbolstring
to_datevalue
from_datevalue
Stock-PeersGet a list of peer tickers for a given stock symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

Get a list of peer tickers for a given stock symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
IPO-CalendarGet the IPO calendar for a date range. Includes upcoming and historical IPOs. Types / examples: from_date, to_date: strings — "YYYY-MM-DD" Example: from_date="2026-01-01", to_date="2026-06-30"2 params

Get the IPO calendar for a date range. Includes upcoming and historical IPOs. Types / examples: from_date, to_date: strings — "YYYY-MM-DD" Example: from_date="2026-01-01", to_date="2026-06-30"

Parameters* required
to_datestring
from_datestring
Senate-Lobbying-DataGet US political lobbying data for a company. This covers lobbying disclosures and related activity. Types / examples: symbol: optional string | null — e.g. "CAT" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="CAT", from_date="2023-01-01", to_date=...3 params

Get US political lobbying data for a company. This covers lobbying disclosures and related activity. Types / examples: symbol: optional string | null — e.g. "CAT" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="CAT", from_date="2023-01-01", to_date=...

Parameters* required
symbolvalue
to_datevalue
from_datevalue
Financial-MetricsGet basic financial metrics for a stock (P/E, margins, growth, etc.). Types / examples: symbol: string — "XOM" metric: string — "all" (default) or a specific metric key supported by the feed Example: symbol="CVX", metric="all"2 params

Get basic financial metrics for a stock (P/E, margins, growth, etc.). Types / examples: symbol: string — "XOM" metric: string — "all" (default) or a specific metric key supported by the feed Example: symbol="CVX", metric="all"

Parameters* required
metricstring
default: all
symbolstring
USA-Spending-DataGet USA spending data related to a company, including contracts and awards tied to the symbol. Types / examples: symbol: optional string | null — e.g. "CAT" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="CAT", from_date="2023-01-01", to_date=null3 params

Get USA spending data related to a company, including contracts and awards tied to the symbol. Types / examples: symbol: optional string | null — e.g. "CAT" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="CAT", from_date="2023-01-01", to_date=null

Parameters* required
symbolvalue
to_datevalue
from_datevalue
Income-StatementIncome statement for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"2 params

Income statement for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"

Parameters* required
freqstring
default: yearly
symbolstring
Balance-SheetBalance sheet for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"2 params

Balance sheet for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"

Parameters* required
freqstring
default: yearly
symbolstring
Cashflow-StatementCash flow statement for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"2 params

Cash flow statement for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"

Parameters* required
freqstring
default: yearly
symbolstring
Earnings-DatesEarnings dates for a symbol; limit caps how many rows are returned. Types / examples: symbol: string — "META" limit: integer — default 12 Example: symbol="NFLX", limit=82 params

Earnings dates for a symbol; limit caps how many rows are returned. Types / examples: symbol: string — "META" limit: integer — default 12 Example: symbol="NFLX", limit=8

Parameters* required
limitinteger
default: 12
symbolstring
EPS-EstimatesEPS estimates for upcoming periods. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

EPS estimates for upcoming periods. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
Revenue-EstimatesRevenue estimates for upcoming periods. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

Revenue estimates for upcoming periods. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
EPS-TrendEPS trend for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

EPS trend for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
EPS-RevisionsEPS revision stats (up/down changes) for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

EPS revision stats (up/down changes) for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
Analyst-Price-TargetsAnalyst price target summary (low, high, mean, median) for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

Analyst price target summary (low, high, mean, median) for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
Analyst-Upgrades-and-DowngradesRecent analyst upgrades and downgrades for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

Recent analyst upgrades and downgrades for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
Dividends-and-SplitsHistorical dividends and splits. period defaults to 'max'. Types / examples: symbol: string — "KO" period: string — "max" (default), "1y", "5y", etc. Example: symbol="AAPL", period="5y"2 params

Historical dividends and splits. period defaults to 'max'. Types / examples: symbol: string — "KO" period: string — "max" (default), "1y", "5y", etc. Example: symbol="AAPL", period="5y"

Parameters* required
periodstring
default: max
symbolstring
Institutional-HoldersInstitutional holders for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

Institutional holders for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
Growth-EstimatesAnalyst growth estimates across horizons for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 params

Analyst growth estimates across horizons for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"

Parameters* required
symbolstring
SearchDiscovery placeholder; returns no rows. Use the Atlas market and strategy tools. Types / example: query: string — ignored; e.g. ""1 params

Discovery placeholder; returns no rows. Use the Atlas market and strategy tools. Types / example: query: string — ignored; e.g. ""

Parameters* required
querystring
Fetch-URLCompatibility hook; does not load arbitrary URLs. Use Atlas data tools instead. Types / example: url: string — ignored; e.g. "https://example.com"1 params

Compatibility hook; does not load arbitrary URLs. Use Atlas data tools instead. Types / example: url: string — ignored; e.g. "https://example.com"

Parameters* required
urlstring
Subscription-StatusGet the authenticated user's subscription tier, monthly usage, remaining requests, and limits. Returns a dashboard_url the user can visit to manage their account, upgrade their plan, connect a broker, or see available tools. Always share the dashboard link when the user asks a...

Get the authenticated user's subscription tier, monthly usage, remaining requests, and limits. Returns a dashboard_url the user can visit to manage their account, upgrade their plan, connect a broker, or see available tools. Always share the dashboard link when the user asks a...

No parameter schema in public metadata yet.

Get-InstructionsRead the signed-in user's saved instructions (read-only). Optional platform='discord' with parameters for Discord context. Types / examples: platform: string — "other" (default) or "discord" parameters: optional array of objects | null — host-specific context for Discord Examp...2 params

Read the signed-in user's saved instructions (read-only). Optional platform='discord' with parameters for Discord context. Types / examples: platform: string — "other" (default) or "discord" parameters: optional array of objects | null — host-specific context for Discord Examp...

Parameters* required
platformstring
default: other
parametersvalue
Autofetch-StrategyGiven a question in natural language, return the best-matching strategies for this user (up to 10), including titles, content, and related material. Optional platform='discord' with parameters for Discord. Types / examples: question: string — e.g. "How do I size trades for ear...3 params

Given a question in natural language, return the best-matching strategies for this user (up to 10), including titles, content, and related material. Optional platform='discord' with parameters for Discord. Types / examples: question: string — e.g. "How do I size trades for ear...

Parameters* required
platformstring
default: other
questionstring
parametersvalue
List-StrategyList this user's strategies (id, title, visibility, dates) without full body text. Use Fetch-Strategy when you need the complete document. Types / examples: platform: string — "other" or "discord" parameters: optional array of objects | null2 params

List this user's strategies (id, title, visibility, dates) without full body text. Use Fetch-Strategy when you need the complete document. Types / examples: platform: string — "other" or "discord" parameters: optional array of objects | null

Parameters* required
platformstring
default: other
parametersvalue
Fetch-StrategyLoad one strategy by id with full content and related material. Optional question narrows what is retrieved. Types / examples: strategy_id: string — UUID from List-Strategy or Strategy-Open question: optional string | null — narrows retrieved excerpts platform: string — "other...4 params

Load one strategy by id with full content and related material. Optional question narrows what is retrieved. Types / examples: strategy_id: string — UUID from List-Strategy or Strategy-Open question: optional string | null — narrows retrieved excerpts platform: string — "other...

Parameters* required
platformstring
default: other
questionvalue
parametersvalue
strategy_idstring
Strategy-OpenOpen the strategy experience for the signed-in user (view mode). - strategy_id: optional; defaults to their primary strategy. - platform: optional host hint — openai, claude, or other. Response includes strategy id, title, content, journal when applicable, a short discovery li...2 params

Open the strategy experience for the signed-in user (view mode). - strategy_id: optional; defaults to their primary strategy. - platform: optional host hint — openai, claude, or other. Response includes strategy id, title, content, journal when applicable, a short discovery li...

Parameters* required
platformstring
default: other
strategy_idvalue
Strategy-PreviewSame as Strategy-Open but can include proposed edits for the UI to review. - proposed_title: new document title (optional). - proposed_content: optional JSON string; same accepted shapes as Strategy-Create `content`. - proposed_journal_entry: optional single journal line. - st...5 params

Same as Strategy-Open but can include proposed edits for the UI to review. - proposed_title: new document title (optional). - proposed_content: optional JSON string; same accepted shapes as Strategy-Create `content`. - proposed_journal_entry: optional single journal line. - st...

Parameters* required
platformstring
default: other
strategy_idvalue
proposed_titlevalue
proposed_contentvalue
proposed_journal_entryvalue
Strategy-UpdateSave changes to an existing strategy. - strategy_id: which strategy to update (required). - title, content, visibility, update_note: optional new values. - journal: optional full journal list to replace the current one. - journal_entry: optional line to append to the journal....11 params

Save changes to an existing strategy. - strategy_id: which strategy to update (required). - title, content, visibility, update_note: optional new values. - journal: optional full journal list to replace the current one. - journal_entry: optional line to append to the journal....

Parameters* required
titlevalue
toolsvalue
searchvalue
contentvalue
journalvalue
analysisvalue
visibilityvalue
strategy_idstring
update_notevalue
instructionsvalue
journal_entryvalue
Strategy-CreateCreate a new strategy. - title: name (required). - content: optional JSON string; leave empty for a blank strategy. - visibility: private, invite-only, unlisted, Atlas-public, web-public (default private). Accepted JSON for section bodies (pass the whole value as one string, e...3 params

Create a new strategy. - title: name (required). - content: optional JSON string; leave empty for a blank strategy. - visibility: private, invite-only, unlisted, Atlas-public, web-public (default private). Accepted JSON for section bodies (pass the whole value as one string, e...

Parameters* required
titlestring
contentstring
default:
visibilitystring
default: private
Strategy-Save-InstructionsSave the user's strategy-selection notes. - instructions: text to store; leave empty to clear. These notes steer how strategies are chosen for their questions. Types / examples: instructions: optional string | null — free text; empty clears saved notes Example: instructions="P...1 params

Save the user's strategy-selection notes. - instructions: text to store; leave empty to clear. These notes steer how strategies are chosen for their questions. Types / examples: instructions: optional string | null — free text; empty clears saved notes Example: instructions="P...

Parameters* required
instructionsvalue
Strategy-ImportCopy a catalog or shared strategy into this user's account as a new private strategy (content and attachments). - strategy_id: id of the strategy to copy (required). Requires an active signed-in session. You cannot import a strategy you already own. Types / examples: strategy_...2 params

Copy a catalog or shared strategy into this user's account as a new private strategy (content and attachments). - strategy_id: id of the strategy to copy (required). Requires an active signed-in session. You cannot import a strategy you already own. Types / examples: strategy_...

Parameters* required
platformstring
default: other
strategy_idstring
Trigger-Workflow-SchemaFetch the canonical schema for AI trigger workflows. Returns every legal field the workflow decision AI can fill, its data type, allowed options, and when-conditions, plus worked examples. Use this when an external client (ChatGPT, Claude) is helping a user author or edit a wo...

Fetch the canonical schema for AI trigger workflows. Returns every legal field the workflow decision AI can fill, its data type, allowed options, and when-conditions, plus worked examples. Use this when an external client (ChatGPT, Claude) is helping a user author or edit a wo...

No parameter schema in public metadata yet.

Atlas

Atlas is a YAML-defined semantic layer for analytics — authored by humans, consumed by AI agents.

CI npm License

Documentation · Live Demo · The Semantic Layer · MCP Guide · Issues

Atlas terminal demo — create, init, and query in under 30 seconds


What is Atlas?

Atlas turns a directory of YAML files into a complete semantic layer for analytics — entities, dimensions, measures, joins, virtual dimensions, query patterns, glossary terms, and authoritative metrics. Humans author the YAML. AI agents consume it through a built-in chat UI, an embeddable widget, Slack-native chat, or the Model Context Protocol (MCP) for Claude Desktop / Cursor / Continue — all returning deterministic, validated, read-only SQL.

Every YAML field exists because an LLM needs it to write correct SQL: sample_values ground the agent in real data, glossary.status: ambiguous forces clarifying questions, metrics.objective picks MAX vs MIN, query_patterns teach the canonical join shapes for your domain.

Built with Hono, Vercel AI SDK, and bun. Supports Anthropic, OpenAI, Bedrock, Ollama, and Vercel AI Gateway. Works with PostgreSQL, MySQL, ClickHouse, Snowflake, DuckDB, BigQuery, Elasticsearch, and Salesforce.

Try the demo locally

bun create atlas-agent my-app
cd my-app
# edit .env and set your LLM API key (Anthropic / OpenAI / etc.)
bun run dev
# Open http://localhost:3000

The scaffold seeds the canonical NovaMart e-commerce dataset (52 tables, ~480K rows) by default — twelve generic e-commerce KPIs ship as starter prompts inside the chat UI; the canonical 5 below drive the eval harness (#2025) and the docs/landing copy. The scaffold defaults to SQLite + Anthropic; pass --defaults for non-interactive setup or follow the prompts to pick PostgreSQL / OpenAI / etc.

Ask one of the canonical questions in the chat UI:

  • "What's our GMV this quarter?"
  • "What's our top-performing category by GMV this month?"
  • "Monthly GMV trend over the past 6 months."
  • "Show me revenue last quarter." — Atlas asks which definition you mean (GMV vs. net revenue vs. seller revenue) because revenue is status: ambiguous in the glossary
  • "What are our most common return reasons?"

The agent reads your YAML semantic layer first, picks the right entities, writes SQL, runs it through the validation pipeline, and returns answers with the underlying SQL on display.

The default landing for fresh installs is chat-first — admins can flip to admin in Settings → Profile. See the Default Landing guide for the underlying preference.

Install Atlas as an MCP server

Once you have an Atlas instance (local from the demo above, self-hosted, or a hosted workspace), add it to Claude Desktop, Cursor, or Continue with one command. Auto-detects the client and merges into its config:

bunx @useatlas/mcp init --local            # paste-ready config for a local Atlas instance
bunx @useatlas/mcp init --local --write    # merge into the detected client config (with a .bak)
bunx @useatlas/mcp init --hosted --write   # for an app.useatlas.dev workspace via OAuth 2.1

On WSL2? Bun's bunx shim has resolution issues on some WSL2 setups — substitute bun x (space-separated) for any bunx command above (e.g. bun x @useatlas/mcp init --local). The space-separated form is a bun subcommand and resolves correctly.

Restart Claude Desktop / Cursor and ask the same canonical questions through your AI client. See the MCP guide for the full flow — hosted (mcp.useatlas.dev over OAuth 2.1 + DCR + PKCE) and self-hosted (stdio) live in the same page under tabs.

What's in the YAML?

A 20-line slice of semantic/entities/orders.yml from the bundled NovaMart e-commerce demo (#2021):

name: Orders
type: fact_table
table: orders
grain: one row per order
description: |
  Customer orders — the primary fact table for revenue analysis.
  shipping_cost uses MIXED UNITS (some rows in dollars, some in cents).
dimensions:
  - name: status
    sql: status
    type: string
    sample_values: [pending, processing, shipped, delivered, cancelled]
  - name: order_month
    sql: TO_CHAR(created_at, 'YYYY-MM')
    type: string
    virtual: true
measures:
  - name: total_gmv_cents
    sql: total_cents
    type: sum
joins:
  - target_entity: Customers
    relationship: many_to_one
    join_columns: { from: customer_id, to: id }

That YAML is the contract between your team and the agent — version-controlled, code-reviewed, diffable. Sibling files (glossary.yml, metrics/*.yml, catalog.yml) round it out: glossary terms with status: ambiguous force the agent to clarify, metrics with objective: maximize / minimize make optimization direction explicit, and the catalog routes the agent to the right entity for a given question.

See the full Semantic Layer reference for the complete schema.

Embed in your app

Atlas also ships an embeddable chat widget for any frontend:

<script
  src="https://your-atlas.example.com/widget.js"
  data-api-url="https://your-atlas.example.com"
  data-theme="dark"
></script>

Or use the React component:

import { AtlasChat } from "@useatlas/react";

export default function App() {
  return <AtlasChat apiUrl="https://your-atlas.example.com" />;
}

The widget supports programmatic control (Atlas.open(), Atlas.ask("..."), Atlas.destroy()), event callbacks, and theming. See the widget docs.

Why Atlas?

AtlasTraditional BIOther text-to-SQL
Semantic layerYAML on disk — query_patterns, virtual_dimensions, glossary.status: ambiguous, metrics.objective are all first-classProprietary metadata, GUI-authoredNone or limited
Agent-nativeMCP server first — Claude Desktop, Cursor, Continue with bunx @useatlas/mcp initBolted-on AI featureStandalone chat UI
EmbeddableScript tag, React component, headless API, MCP, Slack, TeamsStandalone appStandalone app
Deploy anywhereDocker, Railway, Vercel, or your own infraVendor-hostedVendor-hosted
Plugin ecosystem21 plugins across 5 types — extend anythingClosedLimited
Open sourceAGPL-3.0 core, MIT client libsProprietaryVaries
Multi-databasePostgreSQL, MySQL, ClickHouse, Snowflake, DuckDB, BigQuery, Elasticsearch, SalesforceUsually oneUsually one
REST APIs as datasourcesStripe, GitHub, Notion, any OpenAPI spec — read like a datasource, write-gated; generic OpenAPI installs auto-refreshNoneNone

Deploy

Deploy with Vercel Deploy on Railway

Docker:

git clone https://github.com/AtlasDevHQ/atlas-starter-docker.git && cd atlas-starter-docker
cp .env.example .env   # Set your API key + database URL
docker compose up
PlatformStarterGuide
Vercelatlas-starter-vercelNext.js + embedded Hono API + Neon Postgres
Railwayatlas-starter-railwayDocker + sidecar sandbox + Railway Postgres
Dockeratlas-starter-dockerDocker Compose + optional nsjail isolation

How It Works

  1. User (or agent) asks a natural language question — over MCP, the chat widget, the API, Slack, or Teams
  2. Agent explores the YAML semantic layer — entities, glossary, metrics, query patterns
  3. Agent writes SQL, validated through a multi-layer security pipeline (regex guard, AST parse, table whitelist, auto-LIMIT, statement timeout)
  4. Results are returned with charts and an interpreted narrative
Question → YAML semantic layer → SQL generation → Multi-layer validation → Query execution → Charts + narrative

Generate the semantic layer

bun run atlas -- init                 # Profile DB and generate YAMLs
bun run atlas -- init --enrich        # Profile + LLM enrichment
bun run atlas -- init --demo          # Load NovaMart demo data + profile

Architecture

atlas/
├── packages/
│   ├── api/              # @atlas/api — Hono API server + agent loop + tools + auth
│   ├── web/              # @atlas/web — Next.js frontend + chat UI components
│   ├── cli/              # @atlas/cli — CLI (profiler, schema diff, enrichment)
│   ├── mcp/              # @atlas/mcp — MCP server (Claude Desktop, Cursor, etc.)
│   ├── sandbox-sidecar/  # @atlas/sandbox-sidecar — Isolated explore sidecar
│   ├── sdk/              # @useatlas/sdk — TypeScript SDK
│   ├── react/            # @useatlas/react — Embeddable chat component + hooks
│   ├── types/            # @useatlas/types — Shared wire-format types
│   ├── schemas/          # @useatlas/schemas — Shared Zod schemas
│   └── plugin-sdk/       # @useatlas/plugin-sdk — Plugin type definitions
├── plugins/              # 21 plugins (datasource, context, interaction, action, sandbox)
├── ee/                   # @atlas/ee — Enterprise features (source-available, commercial license)
├── create-atlas/         # Scaffolding CLI (bun create atlas-agent)
├── apps/
│   ├── www/              # Landing page (useatlas.dev)
│   └── docs/             # Documentation (docs.useatlas.dev)
└── examples/             # Docker + Vercel deploy examples

Security

SQL validation runs through multiple layers. Your database credentials and query results never leave your infrastructure — only questions reach the LLM provider (use Ollama for fully self-hosted).

LayerWhat it does
Read-only enforcementOnly SELECT queries allowed (regex + AST validation)
AST parsingnode-sql-parser verifies single-statement SELECT
Table whitelistOnly tables in your semantic layer are queryable
Auto LIMITEvery query gets a LIMIT (default 1000)
Statement timeoutQueries killed after 30s (configurable)
Sandboxed executionFilesystem access runs in nsjail / Firecracker / sidecar
Row-level securityOptional RLS injection per-user

See sandbox architecture for the full threat model.

Environment Variables

VariableDefaultDescription
ATLAS_PROVIDERanthropicLLM provider (anthropic, openai, bedrock, ollama, gateway)
ATLAS_MODELProvider defaultModel ID override
DATABASE_URL—Atlas internal Postgres for auth, audit, settings
ATLAS_DATASOURCE_URL—Analytics datasource (PostgreSQL, MySQL, etc.)
ATLAS_ROW_LIMIT1000Max rows per query
ATLAS_QUERY_TIMEOUT30000Query timeout in ms

See .env.example for all options.

Documentation

  • The Semantic Layer — Entities, dimensions, measures, joins, glossary, metrics — the YAML format reference
  • MCP Server — Use Atlas from Claude Desktop, Cursor, Continue
  • Quick Start — Local dev from zero to asking questions
  • Demo Dataset — NovaMart e-commerce dataset and canonical questions
  • Deploy Options — Docker, Railway, Vercel, and more
  • Connect Your Data — Connect to an existing database safely
  • Widget Embedding — Script tag and React component
  • Bring Your Own Frontend — Nuxt, SvelteKit, React/Vite, TanStack Start
  • Plugin Authoring — Build custom plugins
  • Security & Sandbox — Threat model, isolation tiers
  • Enterprise Boundary — /ee features, AGPL vs commercial split, requireEnterprise API

Contributing

Quick development setup:

git clone https://github.com/AtlasDevHQ/atlas.git && cd atlas
bun install
bun run db:up         # Start Postgres + sandbox sidecar
cp .env.example .env  # Set ATLAS_PROVIDER + API key
bun run dev           # http://localhost:3000

Acknowledgments

Atlas was inspired by Abhi Sivasailam's work on Vercel's internal data agent d0 and the open-source vercel-labs/oss-data-analyst template. The core insight — invest in a rich semantic layer, trust the model, and keep the tool surface minimal — came from that work.

License

The Atlas server and core packages (@atlas/api, @atlas/cli, @atlas/web, @atlas/mcp, @atlas/sandbox-sidecar) are licensed under AGPL-3.0. If you modify the server and serve it to users, you must share those modifications.

The client libraries (@useatlas/sdk, @useatlas/react, @useatlas/types, @useatlas/plugin-sdk) and all plugins are licensed under MIT. Embed them in proprietary apps with no restrictions.

The ee/ directory (@atlas/ee — SSO, SCIM, custom roles, approval workflows, residency, branding, and the rest of the SaaS surfaces) is source-available under a commercial license. Self-hosted users get the full AGPL core for free; the commercial license adds enterprise governance and the polished hosted experience. See the Enterprise Boundary page for the full feature inventory.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

ATLAS_DATASOURCE_URLsecret

Analytics datasource URL (postgres, mysql, clickhouse, snowflake, duckdb, bigquery, salesforce). Optional — falls back to a bundled NovaMart SQLite demo when unset.

ATLAS_PROVIDER

LLM provider: anthropic, openai, bedrock, ollama, openai-compatible, gateway. Optional — the MCP server does not call an LLM directly (the client does); set this only if you also run Atlas's chat or scheduler.

ATLAS_API_URL

URL of a running Atlas API. Optional — defaults to http://localhost:3001. When set, the MCP server inherits the API's connections, semantic layer, and governance.

Categories
Monitoring & Observability
Registryactive
Package@useatlas/mcp
TransportSTDIO
AuthRequired
UpdatedMay 5, 2026
View on GitHub

Related Monitoring & Observability MCP Servers

View all →
Mcp Observability

io.github.infoinlet-marketplace/mcp-observability

Observability for incident agents — query Loki (LogQL), Prometheus (PromQL), Elasticsearch.
Monitor

betterdb-inc/monitor

BetterDB MCP server - Valkey observability for Claude Code and other MCP clients
1.1k
Datadog

com.mcparmory/datadog

Monitor infrastructure, manage agents and deployments, track metrics, logs, and events
25
Observability Mcp

thotischner/observability-mcp

Unified observability gateway for AI agents — Prometheus, Loki & more, with anomaly detection.
5
Datadog Mcp

io.github.tantiope/datadog-mcp

Full Datadog API access: monitors, logs, metrics, traces, dashboards, and observability tools
4
Datadog

io.github.us-all/datadog

Datadog MCP — 165 tools for metrics, monitors, logs, APM, RUM, incidents, CI/CD, fleet
1