Skip to main content
Glama
socials-zanskar

Nubra MCP Server

Nubra MCP Server

This repository is the main GitHub/source repository for the Nubra MCP server.

It provides authentication, instrument lookup, quotes, historical data, options analytics, portfolio and account tools, report generation, screening utilities, backtesting, and order placement through UAT.

Setup and Start

Follow the steps below to run the MCP locally.

1. Prerequisites

Ensure the following are available:

  • Python 3.11

  • PowerShell

  • network access to install Python dependencies

2. Clone the repository

git clone https://github.com/socials-zanskar/nubra-mcp-server.git
cd nubra-mcp-server

3. Bootstrap the environment

powershell -ExecutionPolicy Bypass -File .\bootstrap.ps1

This script performs the following actions:

  • creates .venv if it does not exist

  • upgrades pip

  • installs packages from requirements.txt

  • creates .env from .env.example if .env is missing

After this step, the repository should contain:

  • .venv

  • .env

4. Configure .env

Edit .env and set the required values:

PHONE=
MPIN=
NUBRA_ENV=UAT
NUBRA_DEFAULT_EXCHANGE=NSE
LOG_LEVEL=INFO
HOST=127.0.0.1
PORT=8000
MCP_PATH=/mcp
AUTH_STATE_FILE=auth_state.json

Recommended settings:

  • start with NUBRA_ENV=UAT

  • keep HOST=127.0.0.1

  • keep MCP_PATH=/mcp unless you need a custom path

5. Start the MCP

For MCP clients that use stdio:

.\run_stdio.ps1

For local HTTP testing:

.\run_http.ps1

Equivalent direct commands:

python server.py --transport stdio
python server.py --transport streamable-http
python server.py --transport sse

6. Verify the server

When using HTTP transport, the default local endpoints are:

  • health: http://127.0.0.1:8000/health

  • mcp: http://127.0.0.1:8000/mcp

Import smoke test:

.\.venv\Scripts\python.exe -c "import server; print('server-import-ok')"

Run tests:

.\.venv\Scripts\python.exe -m unittest discover -s tests -v

MCP Client Integration

This repository includes project-local MCP configuration in .mcp.json.

Standard repo-based setup:

  1. Open the nubra-mcp-server folder in your MCP client.

  2. Run .\bootstrap.ps1.

  3. Fill in .env.

  4. Allow the client to start .\run_stdio.ps1 through .mcp.json.

For clients that require manual registration, use one of the following:

  • mcp-client-config.example.json

  • or the HTTP endpoint http://127.0.0.1:8000/mcp after starting .\run_http.ps1

Authentication

Protected tools should use the following flow:

  1. call auth_status

  2. if login is required, ask for phone number

  3. call begin_auth_flow

  4. ask for OTP and call verify_otp

  5. ask for MPIN and call verify_mpin

  6. continue with the original request

Authentication uses the OTP -> MPIN flow.

What This Repo Provides

The server includes tools for:

  • authentication and session handling

  • instrument search and ref-id resolution

  • quotes and historical market data

  • option chain analytics and Greeks

  • funds, holdings, positions, and portfolio summaries

  • HTML and image report generation

  • CSV export workflows

  • screening and indicator-based tooling

  • backtesting utilities

  • order placement through UAT

For PROD, order placement is temporarily blocked. Other supported operations continue to work.

Repo Structure

  • server.py: MCP entrypoint

  • config.py: configuration loading

  • nubra_client.py: Nubra client and service logic

  • tools/: MCP tool registration modules

  • tests/: test suite

  • bootstrap.ps1: setup script

  • run_stdio.ps1: stdio launcher

  • run_http.ps1: HTTP launcher

First Use

Common tasks after startup include:

  • check authentication status

  • search for an instrument

  • get the current price for a symbol

  • fetch historical data

  • review option chain data

  • generate a portfolio report

Example first prompt:

  • Use nubra mcp and check auth status

Local Notes

  • start with UAT when validating setup and workflows

  • keep .env, auth state files, and local artifacts out of source control

  • build outputs such as dist/, build/, and *.egg-info/ should remain uncommitted

A
license - permissive license
-
quality - not tested
C
maintenance

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/socials-zanskar/nubra-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server