MCP for the Alpaca trading API to manage stock and crypto portfolios, place trades, and access market data
A Model Context Protocol (MCP) server that provides an interface to the Alpaca trading API, allowing you to manage your stock and crypto portfolio, place trades, and access market data.
pip install -e .
Or using uv:
uv pip install -e .
.env.example
file to .env
:cp .env.example .env
.env
file:ALPACA_PAPER_API_KEY = "your-api-key"
ALPACA_PAPER_API_SECRET = "your-api-secret"
You can obtain these credentials by creating an account at Alpaca.
Run the MCP server:
python src/server.py
The server will start and be available for MCP clients to connect to.
Open your Claude for Desktop App configuration in a text editor. Create the file if it doesn't exist.
%APPDATA%\Claude\claude_desktop_config.json
~/Library/Application\ Support/Claude/claude_desktop_config.json
Add the Alpaca MCP server configuration:
{
"mcpServers": {
"alpaca": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/alpaca-mcp-server",
"run",
"src/server.py"
]
}
}
}
MCP For Server Developers: Quickstart
The server provides the following resources:
account://info
- Get current account informationpositions://all
- Get all current positionspositions://{symbol}
- Get position details for a specific symbolorders://recent/{limit}
- Get most recent orders with specified limitmarket://{symbol}/quote
- Get current market quote for a specific symbolmarket://{symbol}/bars/{timeframe}
- Get historical price bars for a symbol with specified timeframeassets://list
- List tradable assets available on Alpacaassets://{symbol}
- Get detailed asset information by symbolThe server provides the following tools:
get_account_info_tool
- Get current account informationplace_market_order
- Place a market order to buy or sell a stockplace_limit_order
- Place a limit order to buy or sell a stock at a specified priceplace_stop_order
- Place a stop order to buy or sell a stock when it reaches a specified priceplace_stop_limit_order
- Place a stop-limit order combining stop and limit order featurescancel_order
- Cancel an open order by its IDclose_position
- Close an open position for a specific symbolget_portfolio_summary
- Get a comprehensive summary of the portfolio