Skip to main content
Glama
alpacahq

alpaca-mcp-server

Official
by alpacahq

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PAPERNoSet to False to enable live trading with real funds (default is True for paper trading)True
ALPACA_API_KEYYesYour Alpaca API key for paper or live account
ALPACA_SECRET_KEYYesYour Alpaca secret key for paper or live account

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
place_stock_orderB

Place a stock or ETF order.

place_crypto_orderC

Place a cryptocurrency order.

place_option_orderA

Place 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.

get_stock_barsA

Retrieve 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_quotesA

Retrieve 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_tradesA

Retrieve 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_crypto_barsA

Retrieve 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_quotesA

Retrieve 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_tradesA

Retrieve historical trade data for one or more cryptocurrencies.

When start is omitted, it is automatically computed as now minus the days/hours/minutes lookback.

search_alpaca_docsA

Search 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.

fetch_alpaca_docA

Fetch 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.

search_alpaca_api_specsA

Search 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.

list_alpaca_api_endpointsA

List 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.

get_alpaca_endpoint_docsA

Fetch 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_locatesB

Returns locate requests for the account, filtered by status, symbol, or date range. Results are sorted by creation date descending.

create_locateA

Creates a locate request for a short sale. Requires a symbol and quantity. Optionally set a limit price and all-or-none flag.

get_locateB

Returns a single locate request by its ID.

get_locate_quotesA

Returns locate availability and pricing for one or more symbols. Provide a comma-separated list of symbols.

get_account_infoA

Retrieves and formats the current account information including balances and status.

get_account_activitiesB

Returns a list of account activities such as fills, dividends, and transfers.

get_account_activities_by_typeC

Returns account activity entries for a specific type of activity.

get_account_configA

Retrieves the current account configuration settings, including trading restrictions, margin settings, PDT checks, and options trading level.

update_account_configA

Updates one or more account configuration settings. Only the fields you provide will be changed; all others retain their current values.

get_portfolio_historyC

Retrieves account portfolio history (equity and P/L) over a requested time window.

get_all_assetsA

Get 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_assetB

Retrieves and formats detailed information about a specific asset.

get_calendarA

Retrieves 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_clockA

Retrieves and formats current market status and next open/close times.

get_corporate_action_announcementsA

Retrieves 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_action_announcementA

Retrieves a single corporate action announcement by ID.

get_option_contractsC

Retrieves option contracts for underlying symbol(s).

get_option_contractA

Retrieves a single option contract by symbol or contract ID.

get_ordersC

Retrieves and formats orders with the specified filters.

cancel_all_ordersA

Cancel all open orders.

get_order_by_idA

Retrieves a single order by its ID.

cancel_order_by_idA

Cancel a specific order by its ID.

replace_order_by_idB

Replaces an existing open order with updated parameters. At least one optional field must be provided.

get_order_by_client_idA

Retrieves 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_all_positionsA

Retrieves all current positions in the portfolio as JSON.

close_all_positionsA

Closes 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.

get_open_positionB

Retrieves and formats details for a specific open position.

close_positionA

Closes 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.

do_not_exercise_options_positionB

Submits a do-not-exercise instruction for a held option contract.

exercise_options_positionA

Exercises a held option contract, converting it into the underlying asset.

get_watchlistsA

Get all watchlists for the account.

create_watchlistA

Creates a new watchlist with specified symbols.

get_watchlist_by_idA

Get a specific watchlist by its ID.

update_watchlist_by_idA

Update 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.

add_asset_to_watchlist_by_idA

Add an asset by symbol to a specific watchlist.

delete_watchlist_by_idA

Delete a specific watchlist by its ID.

remove_asset_from_watchlist_by_idA

Remove an asset by symbol from a specific watchlist.

get_fixed_income_latest_quotesA

Returns 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_newsA

Retrieves news articles for stocks and crypto. Filter by symbols, date range, and sort order. Returns headlines, summaries, URLs, and associated ticker symbols.

get_option_barsB

Retrieves historical bar (OHLCV) data for one or more option contracts.

get_option_exchange_codesA

Retrieves 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_quoteA

Retrieves and formats the latest quote for one or more option contracts including bid/ask prices, sizes, and exchange information.

get_option_snapshotA

Retrieves comprehensive snapshots of option contracts including latest trade, quote, implied volatility, and Greeks.

get_option_chainA

Retrieves 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_tradesB

Retrieves historical trade data for one or more option contracts.

get_option_latest_tradeB

Retrieves the latest trade for one or more option contracts.

get_market_moversA

Returns the top market movers (gainers and losers) based on real-time SIP data.

get_most_active_stocksB

Screens the market for most active stocks by volume or trade count.

get_crypto_latest_barA

Returns the latest minute bar for one or more crypto symbols. The loc parameter is required — always set loc to "us".

get_crypto_latest_orderbookA

Returns 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_quoteA

Returns the latest quote for one or more crypto symbols. The loc parameter is required — always set loc to "us".

get_crypto_latest_tradeA

Returns the latest trade for one or more crypto symbols. The loc parameter is required — always set loc to "us".

get_crypto_snapshotB

Returns 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_corporate_actionsC

Retrieves and formats corporate action announcements.

get_stock_latest_barB

Get the latest minute bar for one or more stocks.

get_stock_latest_quoteC

Retrieves and formats the latest quote for one or more stocks.

get_stock_snapshotA

Retrieves comprehensive snapshots of stock symbols including latest trade, quote, minute bar, daily bar, and previous daily bar.

get_stock_latest_tradeB

Get the latest trade for one or more stocks.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 72 tools

Disambiguation3/5

Most tools partition cleanly by asset class and data type, but several overlapping pairs create ambiguity: get_corporate_actions vs. get_corporate_action_announcements, get_option_contracts vs. get_option_chain, and historical get_stock_quotes/get_crypto_quotes vs. the get_*_latest_quote tools. The descriptions clarify intent, but the tool names alone would often make selection error-prone.

Naming Consistency4/5

The set predominantly follows a get_<resource> pattern with clear action prefixes like place_, cancel_, update_, delete_, and create_, making the convention easy to learn. Deviations include get_corporate_actions versus get_corporate_action_announcement(s) and historical quote tools that omit "historical" in their names, but there is no style mixing such as camelCase.

Tool Count1/5

With 72 tools, this server far exceeds both the 25+ "too many" threshold and the 50+ "extreme mismatch" threshold. The Alpaca domain is broad and most tools are distinct, but exposing this many tools in one MCP server makes tool selection expensive and overwhelming for an agent.

Completeness5/5

The tool surface is highly comprehensive, covering account, orders, positions, watchlists, assets, market data for stocks/crypto/options/fixed income, news, calendar, corporate actions, locates, and API documentation. Order lifecycle and watchlist CRUD are complete, and there are no obvious dead ends in core workflows.

Maintenance

ActivityActive
ResponsivenessSlow