Skip to main content
Glama
amahpour

Income Screener MCP Server

by amahpour

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

  1. Una cuenta de corretaje E*Trade activa.

  2. 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.

  3. 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.py

auth.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.py cada mañana antes de usar el servidor.

Ejecución del servidor

python server.py

El 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

get_quote(symbols)

Cotizaciones en tiempo real para hasta 25 símbolos.

get_option_expire_dates(symbol)

Fechas de vencimiento de opciones disponibles para un símbolo.

get_option_chain(symbol, chain_type, expiry_date, strike_price_near, num_strikes)

Obtener una ventana de cadena de opciones.

screen_put_candidates(symbols, max_strike_pct, min_annual_yield, min_open_interest, months_out)

Clasificar candidatos de venta de puts por rendimiento anualizado.

get_portfolio()

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.py utiliza dev=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-C frente a JPMpC) puede variar; prueba con tus tickers específicos.

  • Las llamadas en screen_put_candidates se 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 tools
A
license - permissive license
Not graded
quality - not tested
Not graded
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude

  • Trade Robinhood through natural language in Claude Code.

  • Options analytics for AI assistants: chains, IV rank, VRP, Greeks, GEX, expected moves, screeners.

View all MCP Connectors

Appeared in Searches

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