ToolTrust
A2/100
alpacahq

alpaca-mcp-server

mcp2.3.2

@alpacahq

Alpaca’s official MCP Server lets you trade stocks, ETFs, crypto, and options, run data analysis, and build strategies in plain English directly from your favorite LLM tools and IDEs

By alpacahq | 76 findings | Scanned 9/16/2026 | tooltrust-scanner/v0.3.19 | 962

1 Low75 Info

Risk Summary

Safe With Normal Controls

Dep Visibility is the main signal, but overall risk remains within an acceptable range.

Potential impact: This finding indicates the tool should be reviewed before it is trusted.

Recommended action: No high-risk findings were detected in this scan, but you should still apply least-privilege defaults and rescan after changes.

Suggested policy: keep this tool behind manual approval, do not allow unattended runs, and re-scan after narrowing risky permissions.

Security Findings (76)

  • LowAS-011

    ℹ️Missing Rate-Limit / Timeout

    get-alpaca-account:tool performs network or execution operations but declares no rate-limit, timeout, or retry configuration

    Fix: Declare explicit rate-limit, timeout, and retry configuration for all network and execution tools. Implement exponential back-off and surface resource state to the calling agent.

  • InfoAS-002

    ⚠️Excessive Permissions ×6

    declared capabilities: network access

    get-alpaca-account

    declared capabilities: filesystem access

    alpaca-createOrderalpaca-getOrdersalpaca-createWatchlistalpaca-updateWatchlistalpaca-deleteWatchlist

    Fix: Tool requests broad permissions (exec/fs/network). Validate input parameters using Enums where possible, and restrict file system operations to explicit allowed directories.

  • InfoAS-014

    ℹ️Dependency Inventory Unavailable ×35

    Tool did not expose metadata.dependencies or repo_url, so supply-chain coverage is limited.

    get-alpaca-accountalpaca-createOrderalpaca-getOrderalpaca-getOrdersalpaca-replaceOrderalpaca-cancelOrderalpaca-cancelOrdersalpaca-getPositionalpaca-getPositionsalpaca-closePositionalpaca-closePositionsalpaca-exerciseOptionalpaca-getWatchlistalpaca-getWatchlistsalpaca-createWatchlistalpaca-updateWatchlistalpaca-deleteWatchlistalpaca-getPortfolioHistoryalpaca-getActivityalpaca-getActivitiesalpaca-getOptionsContractalpaca-getOptionsContractsalpaca-getCorporateActionalpaca-getCorporateActionsalpaca-getStocksCorporateActionsalpaca-getNewsalpaca-getStocksMostActivesalpaca-getStocksMarketMoversalpaca-getStocksQuotesalpaca-getStocksQuotesLatestalpaca-getStocksSnapshotsalpaca-getStocksConditionsalpaca-getStocksExchangeCodesalpaca-getStocksTradesalpaca-getStocksTradesLatest

    Fix: Review and remediate the identified issue.

  • InfoAS-007

    ℹ️Missing Description or Schema ×34

    Tool 'alpaca-createOrder' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-createOrder

    Tool 'alpaca-getOrder' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getOrder

    Tool 'alpaca-getOrders' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getOrders

    Tool 'alpaca-replaceOrder' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-replaceOrder

    Tool 'alpaca-cancelOrder' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-cancelOrder

    Tool 'alpaca-cancelOrders' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-cancelOrders

    Tool 'alpaca-getPosition' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getPosition

    Tool 'alpaca-getPositions' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getPositions

    Tool 'alpaca-closePosition' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-closePosition

    Tool 'alpaca-closePositions' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-closePositions

    Tool 'alpaca-exerciseOption' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-exerciseOption

    Tool 'alpaca-getWatchlist' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getWatchlist

    Tool 'alpaca-getWatchlists' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getWatchlists

    Tool 'alpaca-createWatchlist' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-createWatchlist

    Tool 'alpaca-updateWatchlist' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-updateWatchlist

    Tool 'alpaca-deleteWatchlist' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-deleteWatchlist

    Tool 'alpaca-getPortfolioHistory' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getPortfolioHistory

    Tool 'alpaca-getActivity' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getActivity

    Tool 'alpaca-getActivities' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getActivities

    Tool 'alpaca-getOptionsContract' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getOptionsContract

    Tool 'alpaca-getOptionsContracts' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getOptionsContracts

    Tool 'alpaca-getCorporateAction' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getCorporateAction

    Tool 'alpaca-getCorporateActions' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getCorporateActions

    Tool 'alpaca-getStocksCorporateActions' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksCorporateActions

    Tool 'alpaca-getNews' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getNews

    Tool 'alpaca-getStocksMostActives' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksMostActives

    Tool 'alpaca-getStocksMarketMovers' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksMarketMovers

    Tool 'alpaca-getStocksQuotes' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksQuotes

    Tool 'alpaca-getStocksQuotesLatest' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksQuotesLatest

    Tool 'alpaca-getStocksSnapshots' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksSnapshots

    Tool 'alpaca-getStocksConditions' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksConditions

    Tool 'alpaca-getStocksExchangeCodes' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksExchangeCodes

    Tool 'alpaca-getStocksTrades' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksTrades

    Tool 'alpaca-getStocksTradesLatest' has no description - agents cannot reason about its purpose, and static analysis coverage is limited

    alpaca-getStocksTradesLatest

    Fix: Review and remediate the identified issue.

Scan this tool yourself

Reproduce this audit locally, integrate into CI, or let your agent audit its own tools.

Install once, then scan any MCP server:

$ curl -sfL https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-scanner/main/install.sh | bash
$ tooltrust-scanner scan --server "npx -y alpaca-mcp-server"

Adjust the package name if your npm registry name differs from the tool ID. View source

Add badge to your README

Copy this Markdown to show your ToolTrust grade on GitHub.

[![ToolTrust Grade A](https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-directory/main/docs/badges/grade-a.svg)](https://github.com/AgentSafe-AI/tooltrust-directory)