Servidor MCP de Alpaca
Este es un servidor de Protocolo de Contexto de Modelo (MCP) para Alpaca, que permite a LLMs como Claude interactuar con la API de comercio de Alpaca. Permite negociar acciones, comprobar posiciones, obtener datos de mercado y gestionar su cuenta, todo ello a través del lenguaje natural.
Características
- 📊 Datos de mercado - Obtén cotizaciones de acciones en tiempo real y datos históricos de precios
- 💵 Información de la cuenta: consulta tus saldos, poder adquisitivo y estado
- 📈 Gestión de posiciones - Consulta las posiciones actuales y su rendimiento
- 🛒 Colocación de órdenes - Coloca órdenes a mercado y limitadas a través del lenguaje natural
- 📋 Gestión de órdenes - Lista, seguimiento y cancelación de órdenes
Requisitos previos
- Python 3.10+
- Claves API Alpaca
- Claude for Desktop u otro cliente MCP
Instalación
Clone este repositorio:
git clone https://github.com/YOUR_USERNAME/alpaca-mcp.git cd alpaca-mcp
Instala los paquetes necesarios:
pip install mcp alpaca-py python-dotenv
Crea un archivo
.env
con tus credenciales de la API Alpaca:API_KEY_ID=tu_clave_alpaca_api_key API_SECRET_KEY=tu_clave_alpaca_secret_key
Uso
Ejecutar el servidor
Inicie el servidor ejecutando
python alpaca_mcp_server.py
Configuración de Claude para Escritorio
- Abra Claude para Escritorio
- Vaya a Configuración
- Haga clic en "Desarrollador" y luego "Editar Config"
- Añade la configuración del servidor a
claude_desktop_config.json
:
{ "mcpServers": { "alpaca": { "command": "python", "args": [ "/path/to/alpaca_mcp_server.py" ], "env": { "API_KEY_ID": "your_alpaca_api_key", "API_SECRET_KEY": "your_alpaca_secret_key" } } }
- Guardar y reiniciar Claude for Desktop
Herramientas disponibles
El servidor expone las siguientes herramientas:
get_account_info()
- Obtiene los saldos y el estado de las cuentasget_positions()
- Lista todas las posiciones actuales de la carteraget_stock_quote(symbol)
- Obtener la última cotización de una acciónget_stock_bars(symbol, days)
- Obtener las barras históricas de precios de una acciónget_orders(status, limit)
- Listar órdenes con el estado especificadoplace_market_order(symbol, side, quantity)
- Colocar una orden de mercadoplace_limit_order(symbol, side, quantity, limit_price)
- Colocar una orden limitadacancel_all_orders()
- Cancelar todas las órdenes abiertasclose_all_positions(cancel_orders)
- Cerrar todas las posiciones abiertas
Ejemplo de consulta
Una vez que el servidor está conectado a Claude, puede hacer preguntas como:
- "¿Cuál es el saldo actual de mi cuenta y mi poder adquisitivo?"
- "Mostrarme mis posiciones actuales"
- "Obtener la última cotización de AAPL"
- "Mostrarme el historial de precios de TSLA en los últimos 10 días"
- "Comprar 5 acciones de MSFT a precio de mercado"
- "Vender 10 acciones de AMZN con un precio límite de 130 $"
- "Cancelar todas mis órdenes abiertas"
Nota
Este servidor utiliza por defecto el paper trading de Alpaca. Para utilizar la negociación con dinero real, cambie paper=True
por paper=False
en la inicialización del TradingClient
.
Aviso de Seguridad
Este servidor MCP tendrá acceso a su cuenta Alpaca y podrá colocar operaciones reales. Revise siempre lo que Claude le sugiere antes de aprobar cualquier operación.
Licencia
MIT