add_asset_to_watchlist_by_id
Add an asset by symbol to a specific watchlist.
Trade stocks, options and crypto through an Alpaca brokerage account, and pull the market data behind the decision, in the same conversation.
LABSCO SUMMARY
Most brokerage integrations give you either data or execution; this gives both, so a position check, an options-chain lookup and the order that follows are three calls in one conversation rather than three tabs. The documentation tools matter more than they look — when a parameter is ambiguous the model can read Alpaca's own API reference instead of guessing the schema.
Alpaca's own MCP server, running against a live or paper Alpaca account: order placement across stocks, options and crypto, position and account management, historical and latest market data, and search over Alpaca's documentation and API reference. Paper trading is the default until you say otherwise.
Python 3.10 or newer with uv, and an Alpaca account: ALPACA_API_KEY and ALPACA_SECRET_KEY, which a free paper account gives you. ALPACA_PAPER_TRADE defaults to true — orders go to the paper account until you set it to false and supply live keys, which is the one setting that decides whether real money moves. Configuration lives in the MCP client's env block; the older .env and init flow is gone, and none of the version 1 tool names survived the rewrite.
One command plus a key — uvx alpaca-mcp-server, then supply credentials
USE CASES
Read the position and the account's buying power, look at the latest snapshot, then place the order in the same thread.
Pull the chain with implied volatility and greeks per contract, check the latest quote on the one you want, then place the leg or the spread.
Leave paper trading on, place and cancel orders against the paper account, and only switch the flag when you mean it.
Read portfolio history over the window in question, then the fills, dividends and transfers behind the change.
Check the market is open, then pull gainers, losers and the most actively traded names off live SIP data.
Search the documentation, or go straight to the API reference for the endpoint whose parameters you need.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
add_asset_to_watchlist_by_idAdd an asset by symbol to a specific watchlist.
cancel_all_ordersCancel all open orders.
cancel_order_by_idCancel a specific order by its ID.
close_all_positionsCloses all open positions by placing sell orders for each. If the market is closed, the sell orders will remain queued and execute at the next market open.
close_positionCloses a specific position for a single symbol by placing a sell order. If the market is closed, the sell order will remain queued and execute at the next market open.
create_locateCreates a locate request for a short sale. Requires a symbol and quantity. Optionally set a limit price and all-or-none flag.
create_watchlistCreates a new watchlist with specified symbols.
delete_watchlist_by_idDelete a specific watchlist by its ID.
do_not_exercise_options_positionSubmits a do-not-exercise instruction for a held option contract.
exercise_options_positionExercises a held option contract, converting it into the underlying asset.
fetch_alpaca_docFetch one Alpaca ReadMe documentation page by page ID. Use after search_alpaca_docs returns a relevant page ID, or when a page ID is already known. Read-only; not for API endpoint lookup by method and path.
get_account_activitiesReturns a list of account activities such as fills, dividends, and transfers.
get_account_activities_by_typeReturns account activity entries for a specific type of activity.
get_account_configRetrieves the current account configuration settings, including trading restrictions, margin settings, PDT checks, and options trading level.
get_account_infoRetrieves and formats the current account information including balances and status.
get_all_assetsGet all available assets with optional filtering. WARNING: The unfiltered response is very large (thousands of assets). Always narrow results with the status, asset_class, or exchange parameters. To look up a single asset, use get_asset instead.
get_all_positionsRetrieves all current positions in the portfolio as JSON.
get_alpaca_endpoint_docsFetch reference docs for one exact Alpaca API endpoint by method and path. Use when the endpoint is already resolved and details such as parameters, request shape, responses, or examples are needed. Read-only; does not execute the endpoint; excludes Broker API.
get_assetRetrieves and formats detailed information about a specific asset.
get_calendarRetrieves and formats market calendar for specified date range. WARNING: Always provide start and end dates (YYYY-MM-DD). Without date bounds the response contains the entire multi-year calendar and will be extremely large.
get_clockRetrieves and formats current market status and next open/close times.
get_corporate_action_announcementRetrieves a single corporate action announcement by ID.
get_corporate_action_announcementsRetrieves corporate action announcements (dividends, mergers, splits, spinoffs). Use a narrow date range and filter by symbol when possible — broad queries can return very large responses.
get_corporate_actionsRetrieves and formats corporate action announcements.
get_crypto_barsRetrieve historical price bars (OHLCV) for one or more cryptocurrencies.
When start is omitted, it is automatically computed as now minus the days/hours/minutes lookback.
get_crypto_latest_barReturns the latest minute bar for one or more crypto symbols. The loc parameter is required — always set loc to "us".
get_crypto_latest_orderbookReturns the latest orderbook for one or more crypto symbols. The loc parameter is required — always set loc to "us". Note: the response includes the full order book depth and can be large.
get_crypto_latest_quoteReturns the latest quote for one or more crypto symbols. The loc parameter is required — always set loc to "us".
get_crypto_latest_tradeReturns the latest trade for one or more crypto symbols. The loc parameter is required — always set loc to "us".
get_crypto_quotesRetrieve historical bid/ask quotes for one or more cryptocurrencies.
When start is omitted, it is automatically computed as now minus the days/hours/minutes lookback.
get_crypto_snapshotReturns a snapshot for one or more crypto symbols including latest trade, quote, minute bar, daily bar, and previous daily bar. The loc parameter is required — always set loc to "us".
get_crypto_tradesRetrieve historical trade data for one or more cryptocurrencies.
When start is omitted, it is automatically computed as now minus the days/hours/minutes lookback.
get_fixed_income_latest_quotesReturns the latest quotes for fixed income securities (bonds, treasuries). Provide a comma-separated list of ISINs (e.g. 'US912797SX61,US912810SK51'). Returns bid/ask prices, sizes, and yield-to-maturity for each security.
get_index_latest_valuesReturns the latest values for market indices (e.g. SPX, VIX, DJI). Provide a comma-separated list of index symbols.
get_index_valuesReturns historical values for market indices over a time interval. Supports pagination, sorting, and date range filtering. Provide a comma-separated list of index symbols.
get_locateReturns a single locate request by its ID.
get_locate_quotesReturns locate availability and pricing for one or more symbols. Provide a comma-separated list of symbols.
get_locatesReturns locate requests for the account, filtered by status, symbol, or date range. Results are sorted by creation date descending.
get_market_moversReturns the top market movers (gainers and losers) based on real-time SIP data.
get_most_active_stocksScreens the market for most active stocks by volume or trade count.
get_newsRetrieves news articles for stocks and crypto. Filter by symbols, date range, and sort order. Returns headlines, summaries, URLs, and associated ticker symbols.
get_open_positionRetrieves and formats details for a specific open position.
get_option_barsRetrieves historical bar (OHLCV) data for one or more option contracts.
get_option_chainRetrieves option chain data for an underlying symbol, including latest trade, quote, implied volatility, and greeks for each contract. The response can be very large. Use the type (call/put), strike_price_gte/lte, expiration_date, and limit parameters to narrow results.
get_option_contractRetrieves a single option contract by symbol or contract ID.
get_option_contractsRetrieves option contracts for underlying symbol(s).
get_option_exchange_codesRetrieves the mapping of exchange codes to exchange names for option market data. Useful for interpreting exchange fields returned by other option data tools.
get_option_latest_quoteRetrieves and formats the latest quote for one or more option contracts including bid/ask prices, sizes, and exchange information.
get_option_latest_tradeRetrieves the latest trade for one or more option contracts.
get_option_snapshotRetrieves comprehensive snapshots of option contracts including latest trade, quote, implied volatility, and Greeks.
get_option_tradesRetrieves historical trade data for one or more option contracts.
get_order_by_client_idRetrieves a single order specified by the client order ID. Note: if the order was replaced, this returns the original order (status "replaced") with a replaced_by field pointing to the new order ID.
get_order_by_idRetrieves a single order by its ID.
get_ordersRetrieves and formats orders with the specified filters.
get_portfolio_historyRetrieves account portfolio history (equity and P/L) over a requested time window.
get_stock_barsRetrieve historical price bars (OHLCV) for one or more stocks.
When start is omitted, it is automatically computed as now minus the days/hours/minutes lookback.
get_stock_latest_barGet the latest minute bar for one or more stocks.
get_stock_latest_quoteRetrieves and formats the latest quote for one or more stocks.
get_stock_latest_tradeGet the latest trade for one or more stocks.
get_stock_quotesRetrieve historical bid/ask quotes (level 1) for one or more stocks.
When start is omitted, it is automatically computed as now minus the days/hours/minutes lookback.
get_stock_snapshotRetrieves comprehensive snapshots of stock symbols including latest trade, quote, minute bar, daily bar, and previous daily bar.
get_stock_tradesRetrieve historical trade data for one or more stocks.
When start is omitted, it is automatically computed as now minus the days/hours/minutes lookback.
get_watchlist_by_idGet a specific watchlist by its ID.
get_watchlistsGet all watchlists for the account.
list_alpaca_api_endpointsList endpoints for one allowed Alpaca OpenAPI spec. Use when browsing the available endpoint inventory for Trading API, Market Data API, or Authentication API before narrowing to a specific endpoint. Read-only; excludes Broker API; prefer search_alpaca_api_specs for targeted lookup.
place_crypto_orderPlace a cryptocurrency order.
place_option_orderPlace an options order (single-leg or multi-leg).
For single-leg orders, provide symbol, side, and qty. For multi-leg orders, provide qty, legs, and optionally order_class="mleg" (auto-inferred). Symbol and side on the parent are not needed for multi-leg.
place_stock_orderPlace a stock or ETF order.
remove_asset_from_watchlist_by_idRemove an asset by symbol from a specific watchlist.
replace_order_by_idReplaces an existing open order with updated parameters. At least one optional field must be provided.
search_alpaca_api_specsSearch Alpaca API reference endpoints by topic, operation, path fragment, parameter, or schema term. Use when the exact method and path are unknown. Read-only; does not execute endpoints; searches Trading API, Market Data API, and Authentication API only; excludes Broker API. Use query; do not use pattern.
search_alpaca_docsSearch Alpaca documentation pages and guides. Use for conceptual or product questions about setup, account rules, funding, trading, market data, events, or FAQs. Read-only; not for exact API method/path lookup; prefer search_alpaca_api_specs for endpoint, parameter, or schema questions.
update_account_configUpdates one or more account configuration settings. Only the fields you provide will be changed; all others retain their current values.
update_watchlist_by_idUpdate an existing watchlist. IMPORTANT: this replaces the entire watchlist. You must include the symbols parameter with the full list of desired symbols, otherwise all assets will be removed.
BEFORE YOU INSTALL
74 tools when we connected. get_index_values and get_index_latest_values are missing from the documentation. ALPACA_TOOLSETS limits the server to the toolsets you name, so setting it shows fewer; V1 tool names no longer exist.
CONTEXT COST
Rated by the size of the 74 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
uvx alpaca-mcp-server{
"mcpServers": {
"alpaca": {
"command": "uvx",
"args": [
"alpaca-mcp-server"
],
"env": {
"ALPACA_API_KEY": "<YOUR_ALPACA_API_KEY>",
"ALPACA_SECRET_KEY": "<YOUR_ALPACA_SECRET_KEY>"
}
}
}
}{
"servers": {
"alpaca": {
"type": "stdio",
"command": "uvx",
"args": [
"alpaca-mcp-server"
],
"env": {
"ALPACA_API_KEY": "<YOUR_ALPACA_API_KEY>",
"ALPACA_SECRET_KEY": "<YOUR_ALPACA_SECRET_KEY>"
}
}
}
}claude mcp add alpaca --scope user --transport stdio uvx alpaca-mcp-server \
--env ALPACA_API_KEY=<YOUR_ALPACA_API_KEY> \
--env ALPACA_SECRET_KEY=<YOUR_ALPACA_SECRET_KEY>{
"mcpServers": {
"alpaca": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"ALPACA_API_KEY=<YOUR_ALPACA_API_KEY>",
"-e",
"ALPACA_SECRET_KEY=<YOUR_ALPACA_SECRET_KEY>",
"-e",
"ALPACA_PAPER_TRADE=true",
"mcp/alpaca:latest"
]
}
}
}