Income Screener MCP Server
Servidor MCP de Income Screener
Un servidor MCP en Python que conecta Claude a E*Trade mediante pyetrade para investigación de trading orientada a ingresos:
Cotizaciones en tiempo real (acciones, preferentes, bonos baby)
Búsquedas de cadenas de opciones
Selección de candidatos para venta de puts con filtros de rendimiento anualizado
Monitoreo de posiciones de cartera
Arquitectura
Claude (Claude Code / Claude Desktop)
↓ MCP protocol (stdio)
server.py (FastMCP + pyetrade)
↓ OAuth1 REST
E*Trade API (api.etrade.com)Requisitos previos
Una cuenta de corretaje E*Trade activa.
Claves de API de desarrollador de developer.etrade.com. Las claves de producción tardan de 3 a 5 días hábiles en aprobarse.
Python 3.10+.
Configuración
pip install -r requirements.txt
cp .env.example .env
# edit .env and set ETRADE_CONSUMER_KEY / ETRADE_CONSUMER_SECRET
python auth.pyauth.py guía el flujo OAuth1: imprime una URL (e intenta abrir tu navegador), autorizas la aplicación en el sitio de E*Trade, pegas el código de verificación en la terminal y los tokens de acceso resultantes se escriben en .env.
Nota: Los tokens de acceso de E*Trade caducan a medianoche ET. Vuelve a ejecutar
python auth.pycada mañana antes de usar el servidor.
Ejecución del servidor
python server.pyEl servidor utiliza MCP a través de stdio y está diseñado para ser iniciado por un cliente MCP (Claude Desktop, Claude Code, etc.) en lugar de ejecutarse de forma interactiva.
Configuración de Claude Desktop
Añadir a claude_desktop_config.json:
{
"mcpServers": {
"income-screener": {
"command": "python",
"args": ["server.py"],
"cwd": "/home/amahpour/code/pyetrade-mcp"
}
}
}Herramientas
Herramienta | Descripción |
| Cotizaciones en tiempo real para hasta 25 símbolos. |
| Fechas de vencimiento de opciones disponibles para un símbolo. |
| Obtener una ventana de cadena de opciones. |
| Clasificar candidatos de venta de puts por rendimiento anualizado. |
| Posiciones para la primera cuenta en el perfil autenticado. |
Rendimiento anualizado
screen_put_candidates calcula (bid / strike) * (365 / DTE) y filtra por min_annual_yield. Los resultados se ordenan de mayor a menor rendimiento.
Listas de seguimiento predeterminadas
Si llamas a screen_put_candidates sin symbols, utiliza una lista de acciones integrada (HPQ, HPE, PFE, T, VZ, F, INTC, DOW, KHC, WBA). En server.py se define una lista de seguimiento de preferentes/bonos baby para usar con get_quote.
Notas
server.pyutilizadev=False(API de producción). El entorno de pruebas (sandbox) de E*Trade no devuelve datos reales de cadenas de opciones.El formato de los símbolos de acciones preferentes (p. ej.,
JPM-Cfrente aJPMpC) puede variar; prueba con tus tickers específicos.Las llamadas en
screen_put_candidatesse serializan con un retraso de 0,5 s para mantenerse dentro de los límites de tasa de E*Trade.
Archivos
.
├── README.md
├── LICENSE
├── requirements.txt # pyetrade, mcp[cli], python-dotenv
├── .env.example # template — copy to .env and fill in
├── auth.py # one-shot OAuth token refresh
└── server.py # FastMCP server + all 5 toolsThis server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/amahpour/pyetrade-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server