# Angel One

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/ameernoufil/angel-one-mcp  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/angel-one

## Description
Angel One SmartAPI MCP for orders, portfolio, market data, GTT rules, charges, and margin.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "angel-one": {
    "command": "npx",
    "args": ["-y","angel-one"]
  }
}
```

## Documentation & README

# Angel One MCP Server

[![npm](https://img.shields.io/npm/v/angel-one-mcp)](https://www.npmjs.com/package/angel-one-mcp)
[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-official-blue)](https://registry.modelcontextprotocol.io/)

TypeScript [Model Context Protocol](https://modelcontextprotocol.io) server for [Angel One SmartAPI](https://smartapi.angelone.in/).

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`.

## Discoverability

- npm package: [`angel-one-mcp`](https://www.npmjs.com/package/angel-one-mcp)
- Official MCP Registry: [`io.github.ameernoufil/angel-one`](https://registry.modelcontextprotocol.io/)
- GitHub repo: [`ameernoufil/angel-one-mcp`](https://github.com/ameernoufil/angel-one-mcp)

If your client supports registry-based discovery, search for `io.github.ameernoufil/angel-one`.
If your client prefers package installs, use `angel-one-mcp` from npm.

## Quick Start

### Option A: Use with `npx` (recommended)

Add this to your MCP client config:

```json
{
  "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

```bash
git clone https://github.com/ameernoufil/angel-one-mcp.git
cd angel-one-mcp
npm install
cp .env.example .env
npm run build
npm start
```

If running from source, point your MCP client to `build/index.js`.

## Environment Variables

Required:
- `ANGEL_API_KEY`
- `ANGEL_CLIENT_ID`
- `ANGEL_PASSWORD`
- `ANGEL_TOTP_SECRET`

Optional safety limits:
- `SOFT_MAX_ORDER_QTY` default `25`
- `HARD_MAX_ORDER_QTY` default `100`
- `SOFT_MAX_ORDER_VALUE` default `10000`
- `HARD_MAX_ORDER_VALUE` default `100000`

Example `.env`:

```env
ANGEL_API_KEY=your_smartapi_key
ANGEL_CLIENT_ID=your_client_id
ANGEL_PASSWORD=your_mpin
ANGEL_TOTP_SECRET=your_base32_totp_secret
```

## Safety 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_order`
- `modify_order`
- `create_gtt_rule`
- `modify_gtt_rule`
- `convert_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`](docs/llm-setup.md).

## Development

Requirements:
- Node.js 18+

Commands:

```bash
npm install
npm run build
npm run lint
npm run lint:fix
npm run format
npm run dev
npm start
```

## Architecture 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`

## License

[MIT](LICENSE)

