angel-one-mcp
v1.0.10
Published
MCP server for Angel One SmartAPI — trade stocks, track portfolio, analyze markets & manage orders via LLM clients like Claude, Cursor & Copilot
Maintainers
Readme
Angel One MCP Server
TypeScript Model Context Protocol server for Angel One SmartAPI.
Use it from Claude, Cursor, Copilot, or any MCP client to:
- place and manage orders
- read holdings, positions, and funds
- fetch market data, candles, OI, Greeks, and movers
- manage GTT rules
- estimate charges and margin
Highlights
- Direct
fetch()integration. No Angel One SDK dependency. - Auto TOTP generation from your base32 secret.
- Lazy login with token refresh in API layer.
- Safety guard for trading mutations with soft and hard limits.
- stdio MCP server. Works well with
npx.
Quick Start
Option A: Use with npx (recommended)
Add this to your MCP client config:
{
"mcpServers": {
"angel-one": {
"type": "stdio",
"command": "npx",
"args": ["-y", "angel-one-mcp"],
"env": {
"ANGEL_API_KEY": "your_smartapi_key",
"ANGEL_CLIENT_ID": "your_client_id",
"ANGEL_PASSWORD": "your_mpin",
"ANGEL_TOTP_SECRET": "your_base32_totp_secret"
}
}
}
}Option B: Run from source
git clone https://github.com/ameernoufil/angel-one-mcp.git
cd angel-one-mcp
npm install
cp .env.example .env
npm run build
npm startIf running from source, point your MCP client to build/index.js.
Environment Variables
Required:
ANGEL_API_KEYANGEL_CLIENT_IDANGEL_PASSWORDANGEL_TOTP_SECRET
Optional safety limits:
SOFT_MAX_ORDER_QTYdefault25HARD_MAX_ORDER_QTYdefault100SOFT_MAX_ORDER_VALUEdefault10000HARD_MAX_ORDER_VALUEdefault100000
Example .env:
ANGEL_API_KEY=your_smartapi_key
ANGEL_CLIENT_ID=your_client_id
ANGEL_PASSWORD=your_mpin
ANGEL_TOTP_SECRET=your_base32_totp_secretSafety Model
Trading mutations are guarded.
Soft limits block by default and can be overridden with force: true.
Hard limits cannot be bypassed without changing env vars and restarting the server.
Guarded operations include:
place_ordermodify_ordercreate_gtt_rulemodify_gtt_ruleconvert_position
For MARKET orders, the server attempts LTP-based value checks before allowing the request.
Tool Coverage
- Auth: login and logout
- Portfolio: holdings, positions, funds, conversion
- Orders: place, modify, cancel, book lookup, trade lookup
- Market: search, LTP, quotes, candles, OI, Greeks, movers, PCR
- GTT: create, modify, cancel, list, inspect
- Calculator: margin and brokerage estimates
- User: profile
For an agent-focused onboarding prompt, see docs/llm-setup.md.
Development
Requirements:
- Node.js 18+
Commands:
npm install
npm run build
npm run lint
npm run lint:fix
npm run format
npm run dev
npm startArchitecture Notes
- Entry point:
src/index.ts - API client and auth flow:
src/api.ts - Config and safety limits:
src/config.ts - Order guard:
src/guards.ts - Tool registration:
src/tools/index.ts - Tool implementations:
src/tools/*.ts
