Servidor de protocolo de contexto del modelo Schwab
Este es un servidor que implementa el Protocolo de Contexto de Modelo (MCP) para la API de Schwab usando schwab-py y el MCP python-sdk .
Características
Exponer la funcionalidad de la API de Schwab a través del Protocolo de Contexto de Modelo
Obtener información de la cuenta y posiciones
Recuperar cotizaciones de acciones e historial de precios
Obtenga información del mercado y de los impulsores
Obtener cadenas de opciones y datos de vencimiento
Acceder al historial de pedidos y transacciones
Modificar el estado de la cuenta con herramientas especiales (requiere el indicador
--jesus-take-the-wheel)Diseñado para integrarse con modelos de lenguaje grandes (LLM)
Related MCP server: ShipBob API MCP Server
Instalación
Uso
Autenticación
El primer paso es autenticarse con la API de Schwab y generar un token:
Puede configurar estas credenciales a través de variables de entorno para evitar escribirlas cada vez:
SCHWAB_CLIENT_IDSCHWAB_CLIENT_SECRETSCHWAB_CALLBACK_URL(predeterminado: https://127.0.0.1:8182 )
De forma predeterminada, el token se guarda en ~/.local/share/schwab-mcp/token.yaml (específico de la plataforma). Puede especificar una ruta diferente:
Se admiten los formatos de token yaml y json y se inferirán a partir de la extensión del archivo.
Ejecución del servidor
Después de la autenticación, puede ejecutar el servidor:
La antigüedad del token está validada: si es mayor a 5 días, se le solicitará que vuelva a autenticarse.
ADVERTENCIA : El uso del indicador
--jesus-take-the-wheelhabilita herramientas que pueden modificar el estado de su cuenta. Úselo con precaución, ya que esto permite que los LLM cancelen pedidos y potencialmente realicen otras acciones que alteren el estado de la cuenta.
Herramientas disponibles
El servidor expone las siguientes herramientas MCP:
Información sobre fechas y mercados
get_datetime- Obtener la fecha y hora actual en formato ISOget_market_hours- Obtener el horario de mercado para un mercado específicoget_movers- Obtener movedores para un índice específicoget_instruments- Busca instrumentos con un símbolo específico
Información de la cuenta
get_account_numbers- Obtener la asignación de los ID de cuenta a los hashes de cuentaget_accounts- Obtener información de todas las cuentas de Schwab vinculadasget_accounts_with_positions- Obtener cuentas con información de posiciónget_account- Obtener información de una cuenta específicaget_account_with_positions- Obtener una cuenta específica con información de posiciónget_user_preferences: obtiene las preferencias del usuario para todas las cuentas, incluidos los apodos
Pedidos
get_order- Obtener detalles de un pedido específicoget_orders- Obtener pedidos para una cuenta específica
Citas
get_quotes- Obtener comillas para símbolos específicos
Historial de precios
get_advanced_price_history: obtenga el historial de precios avanzado de un símbolo específicoget_price_history_every_minute- Obtener el historial de precios con frecuencia de minutosget_price_history_every_five_minutes- Obtener el historial de precios con una frecuencia de cinco minutosget_price_history_every_ten_minutes- Obtener el historial de precios con una frecuencia de diez minutosget_price_history_every_fifteen_minutes- Obtener el historial de precios con una frecuencia de quince minutosget_price_history_every_thirty_minutes- Obtener el historial de precios con una frecuencia de treinta minutosget_price_history_every_day- Obtener el historial de precios con frecuencia diariaget_price_history_every_week- Obtener el historial de precios con frecuencia semanal
Opciones
get_option_chain- Obtener la cadena de opciones para un símbolo específicoget_advanced_option_chain: obtiene la cadena de opciones avanzadas para un símbolo específicoget_option_expiration_chain- Obtener información de vencimiento de la opción para un símbolo
Actas
get_transactions- Obtener transacciones para una cuenta específicaget_transaction- Obtener detalles de una transacción específica
Herramientas de modificación de cuenta (Requiere el indicador --jesus-take-the-wheel )
cancel_order- Cancelar un pedido específico
Advertencia de seguridad
El indicador --jesus-take-the-wheel permite a los LLM realizar acciones que pueden modificar el estado de su cuenta, incluidas:
Cancelación de pedidos
Otras acciones que pueden tener implicaciones financieras (se agregarán más herramientas en futuras versiones)
Utilice esta bandera únicamente en entornos controlados y comprenda los riesgos que conlleva.
Desarrollo
Licencia
Este proyecto está disponible bajo la licencia MIT.