paper-broker-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GEMINI_MODEL | No | The Gemini model to use. | gemini-3.8-flash |
| GEMINI_API_KEY | No | Gemini API key. Uses Gemini when set and there is no Anthropic key. | |
| ANTHROPIC_MODEL | No | The Anthropic model to use. | claude-haiku-5-5 |
| ANTHROPIC_API_KEY | No | Anthropic API key. Uses Claude when set. Optional; with neither key the agent uses a built-in rules parser. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_instrumentsA | Find NSE stocks by company name, spoken name or symbol (for example 'reliance', 'state bank', 'L and T', 'infy'). Use this to turn what the user said into a symbol before quoting or ordering. |
| get_quoteA | Current simulated price for one stock: last price, previous close, day change, day high and low. |
| get_fundsB | Cash, cash blocked by open buy orders, available cash, holdings value and profit or loss for the account. |
| get_positionsA | Stocks held in the account with quantity, average price, current price and profit or loss. |
| get_ordersB | Recent orders, newest first, with status (OPEN, FILLED, CANCELLED or REJECTED). |
| preview_orderA | Check an order and get a preview to read back to the user. Does not place anything. Returns a preview_id that place_order needs. Previews expire after 60 seconds. |
| place_orderA | Place an order from a preview made by preview_order. Call only after the user has explicitly confirmed the preview (for example 'yes' or 'go ahead'). Never call it in the same step as preview_order. Fails if the preview does not exist or has expired. |
| cancel_orderA | Cancel an open limit order by its id, for example ORD-3. Filled orders cannot be cancelled. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct resource+action pair: search_instruments resolves names to symbols, get_quote prices a single stock, get_funds/get_positions/get_orders read distinct account views, and cancel_order/preview_order/place_order cover separate order lifecycle steps. The preview_order/place_order split is explicitly documented as a two-step gate with a preview_id handshake, so misselection risk is low. No two tools appear to do the same thing.
Every tool is snake_case verb_noun (search_instruments, get_quote, get_funds, get_positions, get_orders, preview_order, place_order, cancel_order). The verb choices are meaningful and predictable: get_* for reads, preview/place/cancel_* for lifecycle actions. No mixed conventions or vague verbs.
Eight tools is well-scoped for a paper-trading broker: three read-only account views, one instrument lookup, one quote, and a three-step order lifecycle. Each tool earns its place and there is no filler or redundant surface.
The surface covers the full retail trading loop: discovery (search_instruments), pricing (get_quote), account state (funds/positions/orders), and order creation and cancellation with a preview gate. Minor gaps remain, such as no modify-order operation, no single-order status lookup by id, and no market-hours/status signal, but agents can work around these using get_orders and cancel-then-replace.