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.
Features
- Account Management: View account details, balances, and portfolio status
- Trading: Place market, limit, stop, and stop-limit orders
- Portfolio Management: View positions, calculate performance, and close positions
- Market Data: Access real-time quotes and historical price data
- Asset Information: Get details about tradable assets
Installation
- Clone this repository
- Install dependencies:
pip install -e .Or using uv:
uv pip install -e .Configuration
- Copy the
.env.examplefile to.env:
cp .env.example .env- Add your Alpaca Paper Trading API credentials to the
.envfile:
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.
Usage
Run the MCP server:
python src/server.pyThe server will start and be available for MCP clients to connect to.
Testing with Claude for Desktop
Configuration:
Open your Claude for Desktop App configuration in a text editor. Create the file if it doesn't exist.
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - Mac:
~/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
Available Resources
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 symbol
Available Tools
The 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