Alpaca MCP Server
# Alpaca MCP Server
[](https://smithery.ai/server/@cesarvarela/alpaca-mcp)
Expose Alpaca Market Data & Broker API as MCP tools.
## Installation
### Installing via Smithery
To install Alpaca Market Data Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@cesarvarela/alpaca-mcp):
```bash
npx -y @smithery/cli install @cesarvarela/alpaca-mcp --client claude
```
### Manual Installation
```bash
npm install alpaca-mcp
```
## Local Development
```bash
git clone <repo-url>
cd alpaca-mcp
npm install
```
## Environment Variables
Create a `.env` at project root with:
```env
ALPACA_ENDPOINT=https://data.alpaca.markets
ALPACA_BROKER_ENDPOINT=https://broker-api.alpaca.markets
ALPACA_API_KEY=YOUR_ALPACA_API_KEY
ALPACA_SECRET_KEY=YOUR_ALPACA_SECRET_KEY
```
## Commands
- **start** (dev): `npm start` (runs `npx tsx index.ts`)
- **build**: `npm run build` (compiles to `dist/`)
- **run compiled**: `node dist/index.js`
## Usage
Once running, the MCP server listens on stdin/stdout. Use any MCP client or the CLI:
```bash
npm link # optional
alpaca-mcp # starts server globally
```
### Available Tools
- **get-assets** `{ assetClass?: "us_equity" | "crypto" }`
- **get-stock-bars** `{ symbols: string[]; start: string; end: string; timeframe: string }`
- **get-market-days** `{ start: string; end: string }`
- **get-news** `{ start: string; end: string; symbols: string[] }`
Each returns JSON in `content[0].text` or an error.
## MCP Client Configuration
To integrate via `mcp.config.json`, add the following under the `mcpServers` key:
```json
{
"mcpServers": {
"alpaca-mcp": {
"command": "npx",
"args": [
"-y",
"alpaca-mcp"
],
"env": {
"ALPACA_ENDPOINT": "https://data.alpaca.markets",
"ALPACA_BROKER_ENDPOINT": "https://broker-api.alpaca.markets",
"ALPACA_API_KEY": "<YOUR_API_KEY>",
"ALPACA_SECRET_KEY": "<YOUR_SECRET_KEY>"
}
}
}
}
## Publishing
```bash
npm publish
```
## License
ISC
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: get-assets retrieves assets, get-market-days provides market schedule information, get-news fetches news data, and get-stock-bars obtains stock price bars. There is no overlap in functionality, making it easy for an agent to select the correct tool.
All tool names follow a consistent verb_noun pattern with hyphens (get-assets, get-market-days, get-news, get-stock-bars). This uniformity makes the tool set predictable and easy to understand.
With only 4 tools, the set feels thin for a financial data server, potentially lacking operations like trading, account management, or more granular data queries. However, it covers basic data retrieval functions adequately.
The tool surface is severely incomplete for a financial domain, offering only read operations (get-*) with no create, update, delete, or trading capabilities. This limits agents to passive data access without supporting full investment workflows.