alpaka-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@alpaka-mcplist my positions with unrealized P&L"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
What is this?
alpaka-mcp is a production-ready MCP server + CLI that connects AI assistants (Claude Desktop, Cursor, VS Code Copilot) and your terminal directly to the Alpaca Trading API. Trade stocks, ETFs, and crypto with natural language — or from the command line.
Built on alpaca-py and the MCP Python SDK.
Defaults to paper trading — real market data, simulated funds, zero real money at risk.
Related MCP server: FinClaw
Quick Start
1. Get Alpaca API Keys (free)
Sign up at alpaca.markets → Paper Trading → API Keys
2. Install
git clone https://github.com/vikrambtech2025-png/alpaka-mcp.git
cd alpaka-mcp
uv sync3. Configure
cp .env.example .env
# Add your API keys to .env4. Run
uv run alpaka-mcp # MCP server (stdio for Claude/Cursor)
uv run alpaka account # CLI — check account
uv run mcp dev src/alpaka_mcp/server.py # MCP InspectorConnect to AI Assistants
Add to %AppData%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"alpaka": {
"command": "uv",
"args": ["--directory", "C:\\path\\to\\alpaka-mcp", "run", "alpaka-mcp"],
"env": {
"ALPACA_API_KEY": "your_key",
"ALPACA_SECRET_KEY": "your_secret",
"ALPACA_PAPER": "true"
}
}
}
}Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"alpaka": {
"command": "uv",
"args": ["--directory", "/path/to/alpaka-mcp", "run", "alpaka-mcp"],
"env": {
"ALPACA_API_KEY": "your_key",
"ALPACA_SECRET_KEY": "your_secret",
"ALPACA_PAPER": "true"
}
}
}
}Add to .vscode/mcp.json:
{
"servers": {
"alpaka": {
"command": "uv",
"args": ["--directory", "/path/to/alpaka-mcp", "run", "alpaka-mcp"],
"env": {
"ALPACA_API_KEY": "your_key",
"ALPACA_SECRET_KEY": "your_secret",
"ALPACA_PAPER": "true"
}
}
}
}MCP Tools (16)
Tool | Description |
| Balance, equity, buying power, day trades |
| All open positions with P&L |
Tool | Description |
| Place buy order (market/limit/stop/stop-limit) |
| Place sell order (market/limit) |
| List orders by status and symbols |
| Cancel a specific order |
| Cancel all open orders |
Tool | Description |
| Single position details |
| Liquidate (full or partial) |
Tool | Description |
| Latest bid/ask quote |
| Historical OHLCV bars |
| Full snapshot (trade, quote, daily, 1-min) |
Tool | Description |
| Latest crypto bid/ask |
| Historical crypto OHLCV bars |
Tool | Description |
| Search stocks/ETFs/crypto by name or symbol |
| Market open/close status |
CLI Commands (12)
alpaka account # Account balance & buying power
alpaka portfolio # Open positions with color-coded P&L
alpaka quote AAPL # Bid/ask quote (stocks or crypto)
alpaka buy AAPL --qty 10 # Buy 10 shares
alpaka buy BTC/USD -n 500 # Buy $500 of Bitcoin
alpaka sell AAPL --qty 5 # Sell 5 shares
alpaka orders # List open orders
alpaka orders --status closed # List filled orders
alpaka cancel <order-id> # Cancel specific order
alpaka cancel-all # Cancel everything open
alpaka bars AAPL --tf 1Day # Historical bars
alpaka clock # Is the market open?
alpaka search apple # Find tradeable assetsAll commands support --json for machine-readable output:
$ uv run alpaka account --json
{
"status": "ACTIVE",
"equity": "100000.00",
"buying_power": "200000.00",
"cash": "100000.00",
"portfolio_value": "100000.00",
"daytrade_count": 0,
"pattern_day_trader": false,
"mode": "paper"
}Production Features
Feature | How It Works |
Resilient Client | Transparent proxy wraps every API call with rate limiting + retry |
Rate Limiting | 3 independent token buckets (200 req/min each) — trading, stock data, crypto |
Retry + Backoff | 3 attempts with 1s/2s/4s exponential backoff on 429, 500, connection errors |
Non-Blocking Async | MCP tools use |
Structured Logging | JSON audit trail: |
Input Validation | Symbols, quantities, prices, order types validated before API calls |
Live Trading Guard | Requires |
Config Validation | Rejects placeholder API keys with clear setup instructions |
Thread Safety |
|
CLI Error Handling | Every command wrapped — clean errors, no tracebacks |
Architecture
src/alpaka_mcp/
├── server.py # MCP server entry point (stdio)
├── cli.py # 12 Typer commands + JSON output
├── config.py # pydantic-settings + credential validation
├── clients.py # ResilientClient proxy (rate limit + retry + async)
├── utils.py # Response formatting
├── logging.py # Structured JSON logging
├── rate_limiter.py # Token bucket rate limiters (sync + async)
├── retry.py # Exponential backoff (sync + async)
├── validation.py # Input validation
└── tools/ # 16 MCP tools
├── account.py # get_account, get_portfolio
├── trading.py # buy, sell, get_orders, cancel_order, cancel_all
├── positions.py # get_position, close_position
├── stock_data.py # get_stock_quote, get_stock_bars, get_stock_snapshot
├── crypto_data.py # get_crypto_quote, get_crypto_bars
└── discovery.py # search_assets, get_market_clockDocker
# MCP server
docker compose up alpaka-mcp
# CLI via docker
docker compose run --rm alpaka-cli account
docker compose run --rm alpaka-cli portfolioLogs persist in a Docker volume at /app/logs.
Environment Variables
Variable | Default | Description |
| (required) | Your Alpaca API key |
| (required) | Your Alpaca secret key |
|
| Paper trading mode |
|
| Must be |
|
| Log file directory |
|
| Logging verbosity |
Testing
# Unit tests (no API keys needed)
uv run pytest tests/ --ignore=tests/test_integration.py -v
# Integration tests (needs real paper API keys)
ALPACA_API_KEY=pk_xxx ALPACA_SECRET_KEY=sk_xxx uv run pytest tests/test_integration.py -vSafety
Paper trading by default — real money requires explicit opt-in
Live trading requires both
ALPACA_PAPER=falseANDALPACA_LIVE_CONFIRM=true5-second countdown on live trading startup
All errors formatted cleanly — no tracebacks sent to LLMs
Rate limiting prevents accidental API abuse
Structured audit trail for every trade
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseDqualityDmaintenanceMCP server that exposes Alpaca Market Data & Broker API as tools, enabling access to financial data like stock bars, assets, market days, and news through the Message Control Protocol.4542ISC
- AlicenseNot gradedqualityDmaintenanceMCP server that provides AI agents with financial tools including real-time quotes, backtesting, technical analysis, and multi-exchange data via a simple CLI interface.1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server implementation for Alpaca's Trading API that enables LLMs to interact with Alpaca's trading infrastructure using natural language, supporting stock, options, and crypto trading, portfolio management, watchlists, and market data.4MIT
- AlicenseAqualityAmaintenanceThis MCP server connects AI assistants to a Public.com brokerage account, enabling natural language trading of stocks, options, and crypto, along with portfolio management, quotes, and orders.3765Apache 2.0
Related MCP Connectors
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
MCP server exposing the Backtest360 engine API as tools for AI agents.
Alpaca MCP — real-time US stock market data via the Alpaca Market Data API
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vikrambtech2025-png/alpaka-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server