Upstox MCP server

Un servidor MCP para integrarse con la API de trading de Upstox por Upstox.

Documentación

mcp-server-upstox-api

Un servidor MCP para integrarse con la API de trading de Upstox.

Inicio rápido

Configuración

  1. Clona el repositorio:
git clone https://github.com/yourusername/mcp-server-upstox-api.git
cd mcp-server-upstox-api
  1. Instala las dependencias:
npm install

Ejecución local

  1. Crea una aplicación de API de Upstox
    Crea una aplicación de API de Upstox regular en el portal de desarrolladores de Upstox (Apps → My apps → + New App). Establece la URL de redirección a:

    http://localhost:8787/callback
    
  2. Configura las credenciales
    Crea un archivo llamado .dev.vars en la raíz del proyecto y agrega tu clave de API (ID de cliente) y secreto de cliente:

    UPSTOX_CLIENT_ID=your_app_api_key
    UPSTOX_CLIENT_SECRET=your_app_api_secret
    
  3. Inicia la aplicación

    npm start
    

Tu servidor MCP estará ejecutándose en http://localhost:8787.

Ejecutar el servidor

Para iniciar el servidor MCP (después de completar los pasos anteriores):

npm run start

Configuración de MCP

Configuración de Claude Desktop

Para usar este servidor MCP con Claude Desktop, agrega la siguiente configuración a los ajustes de Claude Desktop:

{
  "mcpServers": {
    "mcp-server-upstox-api": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:8787/mcp"
      ]
    }
  }
}

Configuración de MCP en Cursor

Para usar este servidor MCP con Cursor, agrega la siguiente configuración a los ajustes de MCP en Cursor (generalmente ubicados en ~/.cursor/mcp.json):

{
  "mcpServers": {
    "mcp-server-upstox-api": {
      "url": "http://localhost:8787/mcp"
    }
  }
}

Estas configuraciones permiten que Claude Desktop y Cursor se conecten a tu servidor MCP local y usen los endpoints de la API de Upstox.

Uso con Claude y Cursor

Puedes interactuar con la API de Upstox mediante indicaciones en lenguaje natural. Aquí hay algunos ejemplos de indicaciones para cada comando:

Información del perfil

  • "¿Cuál es mi información de perfil en Upstox?"
  • "Muéstrame mis segmentos y productos activos en Upstox"
  • "¿Cuál es mi ID de usuario y correo electrónico en Upstox?"

Fondos y margen

  • "¿Cuál es mi margen disponible en Upstox?"
  • "Muéstrame los fondos de mi segmento de acciones y los detalles del margen"
  • "¿Cuál es la disponibilidad de margen en mi segmento de materias primas?"

Tenencias

  • "¿Qué acciones tengo actualmente en Upstox?"
  • "Muéstrame mis tenencias a largo plazo con sus valores actuales"
  • "¿Cuál es el valor total de mis tenencias en Upstox?"

Posiciones

  • "¿Cuáles son mis posiciones abiertas actuales en Upstox?"
  • "Muéstrame mis posiciones intradía con su P&L"
  • "¿Cuál es mi P&L no realizado total de las posiciones actuales?"

Posiciones MTF

  • "¿Cuáles son mis posiciones de financiamiento de operaciones con margen?"
  • "Muéstrame mis posiciones MTF con sus valores actuales"
  • "¿Cuál es la exposición total de MTF en mi cuenta?"

Libro de órdenes

  • "Muéstrame las órdenes de hoy en Upstox"
  • "¿Cuáles son mis órdenes pendientes en Upstox?"
  • "Muéstrame mi historial de órdenes de hoy"
  • "¿Cuál es el estado de mis órdenes recientes?"
  • "Lista todas mis órdenes completadas de hoy"

Detalles de la orden

  • "Muéstrame los detalles de la orden ID xxxxxxxxxxxxxxx"
  • "¿Cuál es el estado de mi orden con ID xxxxxxxxxxxxxxx?"
  • "Obtén la información completa de la orden xxxxxxxxxxxxxxx"
  • "Verifica el estado de ejecución de la orden xxxxxxxxxxxxxxx"
  • "Consulta los detalles de mi orden reciente xxxxxxxxxxxxxxx"

Historial de órdenes

  • "Muéstrame el historial de la orden ID xxxxxxxxxxxxxxx"
  • "Obtén todas las actualizaciones de estado de la orden xxxxxxxxxxxxxxx"
  • "¿Cuál es la progresión de la orden xxxxxxxxxxxxxxx?"
  • "Muéstrame todas las etapas de la orden xxxxxxxxxxxxxxx"
  • "Obtén el historial de órdenes para la etiqueta xxxxxxxxxxxxxxx"

Operaciones de la orden

  • "Muéstrame las operaciones de la orden ID xxxxxxxxxxxxxxx"
  • "¿Qué operaciones se ejecutaron para la orden xxxxxxxxxxxxxxx?"
  • "Obtén los detalles de las operaciones de mi orden xxxxxxxxxxxxxxx"
  • "Lista todas las operaciones asociadas con la orden xxxxxxxxxxxxxxx"
  • "Muéstrame los detalles de ejecución de la orden xxxxxxxxxxxxxxx"

Operaciones

  • "Muéstrame mis operaciones de hoy"
  • "¿Qué operaciones he ejecutado hoy?"
  • "Obtén mi historial de operaciones diarias"
  • "Lista todas mis operaciones completadas del día"
  • "Muéstrame los detalles de mis operaciones con precios de ejecución"

IPOs

  • "¿Qué IPOs están abiertas ahora mismo?"
  • "Muéstrame las próximas IPOs de SME"
  • "Lista las IPOs que se listaron recientemente"
  • "¿Cuál es el nivel de suscripción de las IPOs actualmente abiertas?"
  • "Muéstrame las próximas 10 IPOs de mainboard abiertas"

Detalles de IPO

  • "Muéstrame los detalles de la IPO xxxxxxxxxxxxxxx"
  • "¿Cuál es el tamaño del lote y la cantidad mínima para la IPO xxxxxxxxxxxxxxx?"
  • "¿Cuándo son las fechas de asignación y listado de la IPO xxxxxxxxxxxxxxx?"
  • "¿Quién es el registrador de la IPO xxxxxxxxxxxxxxx?"
  • "Dame la banda de precios y el precio de corte de la IPO xxxxxxxxxxxxxxx"

Órdenes de IPO

  • "¿A qué IPOs he solicitado?"
  • "Muéstrame mis solicitudes de IPO y su estado de asignación"
  • "¿Obtuve asignación en alguna de mis solicitudes de IPO?"
  • "¿Cuál es el estado del mandato UPI en mis solicitudes de IPO?"
  • "¿Cuánto dinero está bloqueado contra mis solicitudes de IPO?"

Detalles de la orden de IPO

  • "Muéstrame los detalles de mi solicitud de IPO xxxxxxxxxxxxxxx"
  • "¿Qué ofertas hice en la solicitud de IPO xxxxxxxxxxxxxxx?"
  • "¿Cuántas unidades se asignaron para mi solicitud de IPO xxxxxxxxxxxxxxx?"
  • "¿Por qué se rechazó mi solicitud de IPO xxxxxxxxxxxxxxx?"
  • "¿Cuándo se envió la solicitud de IPO xxxxxxxxxxxxxxx al intercambio?"

Endpoints disponibles

EndpointMétodoDescripción
/get-profileGETObtener información del perfil del usuario
/get-funds-marginGETObtener fondos del usuario e información de margen. El parámetro opcional de segmento puede ser 'SEC' (Acciones) o 'COM' (Materias primas)
/get-holdingsGETObtener información de tenencias a largo plazo del usuario
/get-positionsGETObtener información de posiciones a corto plazo del usuario
/get-mtf-positionsGETObtener información de posiciones de financiamiento de operaciones con margen (MTF) del usuario
/get-order-bookGETObtener las órdenes del día actual del usuario y su estado
/get-order-detailsGETObtener información detallada sobre una orden específica usando el ID de la orden
/get-order-tradesGETObtener operaciones ejecutadas para una orden específica usando el ID de la orden
/get-order-historyGETObtener historial de órdenes usando el ID de la orden o la etiqueta
/get-tradesGETObtener las operaciones del usuario ejecutadas durante el día actual
/get-iposGETListar IPOs disponibles públicamente. Filtros opcionales: status ('open', 'closed', 'listed', 'upcoming'), issue_type ('regular', 'sme'), además de page_number y records (máx. 30) para paginación
/get-ipo-detailsGETObtener detalles completos de una sola IPO usando su ID de IPO, incluidos tamaño del lote, precio de corte, enlaces al prospecto, información del registrador y el cronograma de asignación/listado
/get-ipo-ordersGETObtener las solicitudes de IPO del propio usuario con ofertas, asignación, mandato UPI y estado de pago. page_number y records opcionales (máx. 30) para paginación
/get-ipo-order-detailsGETObtener una sola solicitud de IPO del usuario usando su ID de solicitud