Fyers MCP Server

Un servidor MCP para la API v3 de Fyers, con autenticación OAuth automatizada.

Documentación

Servidor MCP de Fyers

Servidor MCP (Model Context Protocol) para la API de Fyers v3 con autenticación OAuth automatizada

Python 3.10+ Fyers API v3 License: MIT

Un servidor MCP integral que permite a Claude Desktop interactuar con la plataforma de trading de Fyers mediante un flujo de autenticación seguro y automatizado. Admite todas las operaciones de trading principales, incluida la gestión de cartera, la colocación de órdenes y los datos de mercado en tiempo real.

🎬 Demostración

✨ Características

🔐 Autenticación inteligente

  • Flujo OAuth con un clic con manejo automático del navegador
  • Almacenamiento persistente de tokens en el archivo .env
  • Capacidades de actualización automática con gestión de sesiones

📊 Kit de herramientas de trading completo

  • Gestión de cartera: tenencias, posiciones, fondos, perfil
  • Gestión de órdenes: colocar, modificar, cancelar órdenes
  • Datos de mercado: cotizaciones en tiempo real para múltiples símbolos
  • Historial de órdenes: libro completo de órdenes y operaciones

🚀 Listo para producción

  • Manejo completo de errores con mensajes de error detallados
  • Seguridad de tipos con validación de parámetros
  • Registro integral para depuración
  • Integración con Claude Desktop con configuración sencilla

🚀 Inicio rápido

Requisitos previos

1. Instalación

# Clone the repository
git clone https://github.com/quantabox/fyers-mcp-server.git
cd fyers-mcp-server

# Install dependencies using uv (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

# Or install with pip
pip install .

2. Obtener credenciales de la API de Fyers

  1. Crear una aplicación de API de Fyers:

    • Visite el Panel de API de Fyers
    • Cree una nueva aplicación con URI de redirección: http://localhost:8080/
    • Anote su App ID y Secret Key
  2. Configurar el entorno:

    cp .env.example .env
    

    Edite el archivo .env:

    FYERS_CLIENT_ID=YOUR_APP_ID-100     # e.g., ABC123XYZ-100
    FYERS_SECRET_KEY=YOUR_SECRET_KEY    # Secret from Fyers app
    FYERS_REDIRECT_URI=http://localhost:8080/
    

3. Configurar Claude Desktop

Agregue a su archivo de configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "fyers-mcp-server": {
      "command": "uv",
      "args": [
        "run", 
        "--directory",
        "/path/to/fyers-mcp-server",
        "python",
        "fyers_mcp_complete.py"
      ],
      "env": {
        "PYTHONWARNINGS": "ignore"
      }
    }
  }
}

4. Primera ejecución

  1. Reinicie Claude Desktop
  2. Autentíquese: En Claude, escriba: authenticate
  3. Se abrirá el navegador → Inicie sesión en Fyers → Captura automática de tokens
  4. Comience a operar: ¡Las 11 herramientas ya están disponibles!

🛠️ Herramientas disponibles

Autenticación y perfil

  • authenticate() - Autenticación OAuth con un clic
  • check_auth_status() - Verificar la autenticación actual
  • get_profile() - Información del perfil de usuario

Cartera y fondos

  • get_funds() - Saldo de la cuenta y detalles de margen
  • get_holdings() - Tenencias de la cartera con ganancias y pérdidas
  • get_positions() - Posiciones de trading actuales

Órdenes y trading

  • place_order(symbol, quantity, order_type, side, ...) - Colocar nuevas órdenes
  • modify_order(order_id, quantity, limit_price, ...) - Modificar órdenes existentes
  • cancel_order(order_id) - Cancelar órdenes pendientes
  • get_orders() - Historial de órdenes y estado

Datos de mercado

  • get_quotes(symbols) - Cotizaciones en tiempo real para múltiples símbolos

📖 Ejemplos de uso

Análisis de cartera

# Check account balance
get_funds()

# View all holdings with P&L
get_holdings()

# Check current positions
get_positions()

Gestión de órdenes

# Place a market order
place_order("NSE:SBIN-EQ", 10, "MARKET", "BUY")

# Place a limit order
place_order("NSE:RELIANCE-EQ", 5, "LIMIT", "BUY", limit_price=2500)

# Modify an order
modify_order("ORDER_ID", quantity=15, limit_price=2550)

# Cancel an order
cancel_order("ORDER_ID")

Datos de mercado

# Get live quotes
get_quotes("NSE:SBIN-EQ,NSE:RELIANCE-EQ,NSE:TCS-EQ")

🔧 Opciones de configuración

Tipos de órdenes

  • MARKET - Orden de mercado (ejecución inmediata)
  • LIMIT - Orden limitada (ejecutar a un precio específico)
  • STOP - Orden de stop loss
  • STOPLIMIT - Orden de stop limitado

Tipos de producto

  • MARGIN - Trading con margen (intradía con apalancamiento)
  • CNC - Cash and Carry (entrega)
  • INTRADAY - Trading intradía
  • BO - Orden de bracket
  • CO - Orden de cobertura

Opciones de validez

  • DAY - Válida para el día de trading actual
  • IOC - Inmediata o cancelar
  • GTD - Válida hasta una fecha

🐛 Solución de problemas

Problemas comunes

1. Error de autenticación

# Check credentials in .env file
cat .env | grep FYERS

# Verify app configuration at https://myapi.fyers.in/dashboard/

2. Problemas de conexión con Claude Desktop

# Test MCP server directly
cd /path/to/fyers-mcp-server
uv run python fyers_mcp_complete.py

# Check Claude Desktop logs (macOS)
tail -f ~/Library/Logs/Claude/mcp.log

3. Errores al colocar órdenes

  • Verifique el formato del símbolo: NSE:SYMBOL-EQ para acciones
  • Consulte el horario de mercado (9:15 a. m. - 3:30 p. m. IST)
  • Asegúrese de tener fondos/margen suficientes

Modo de depuración

Habilite el registro detallado:

export LOG_LEVEL=DEBUG
uv run python fyers_mcp_complete.py

🚧 Desarrollo

Estructura del proyecto

fyers-mcp-server/
├── fyers_mcp_complete.py    # Main MCP server
├── pyproject.toml          # Dependencies
├── .env.example           # Environment template
├── claude_config.json     # Claude Desktop config
└── README.md             # This file

Agregar nuevas funciones

  1. Haga un fork del repositorio
  2. Cree una rama de funciones: git checkout -b feature/new-tool
  3. Agregue la herramienta MCP: Use el decorador @mcp.tool()
  4. Pruebe con Claude Desktop
  5. Envíe una solicitud de extracción

Pruebas

# Install development dependencies
uv sync --dev

# Run tests
uv run pytest

# Type checking
uv run mypy fyers_mcp_complete.py

📋 Referencia de la API

Flujo de autenticación

graph TD
    A[Claude: authenticate] --> B[Generate Auth URL]
    B --> C[Open Browser]
    C --> D[User Login]
    D --> E[Auth Code Capture]
    E --> F[Exchange for Token]
    F --> G[Store in .env]
    G --> H[Ready for Trading]

Manejo de errores

Todas las funciones devuelven respuestas estandarizadas:

  • ✅ Éxito: Confirmación clara con datos relevantes
  • ❌ Error: Mensaje de error detallado con sugerencias para solucionar problemas

🤝 Contribuciones

¡Agradecemos sus contribuciones! Consulte nuestras Pautas de contribución para obtener más detalles.

Áreas para contribuir

  • Transmisión de datos en tiempo real mediante WebSocket
  • Tipos de órdenes avanzados (OCO, Iceberg)
  • Análisis y generación de informes de cartera
  • Herramientas de análisis de cadenas de opciones
  • Funciones de gestión de riesgos

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENCIA para obtener más detalles.

⚠️ Aviso legal

Este software es para fines educativos y de desarrollo. El trading implica riesgo financiero. Los usuarios son responsables de sus decisiones de trading y deben probar exhaustivamente en entornos de demostración antes de operar en vivo.

🔗 Enlaces

📊 Estado

  • Versión actual: 1.0.0
  • Compatibilidad con la API: API de Fyers v3.1.7
  • Soporte de Python: 3.10+
  • Herramientas disponibles: 11/11 ✅
  • Listo para producción: Sí ✅

Hecho con ❤️ para la comunidad de trading
Habilite el trading algorítmico con la inteligencia de Claude