Did yesterday's order fill?
Walk historical orders by date range, or pull one order by id — status, fill price and quantity in one call.
「Did my 00700 buy from yesterday fill?」
Beta in progress — rolled out by account region
usmart-mcp connects uSMART order placement, amendments and order queries to Claude Code, Cursor, Codex and other MCP clients. Credentials stay on your machine and never enter the model; every order and amendment needs your explicit confirmation, and we suggest starting in read-only mode.
claude mcp add --env USMART_READONLY=1 usmart -- uvx --from usmart-mcp==1.2.0 usmart-mcpHK, US and Stock Connect markets — SG accounts only
I want to buy 100 shares of 00700 — can I afford it? Any orders already open today?
✓ 2 tools returned · 640ms
Buying power HK$128,400; board lot is 100 shares. At HK$380, 100 shares is about HK$38,000, so you can afford it.
No open 00700 orders today. Shall I submit a limit order for 100 shares at HK$380? You will need to confirm it.
We suggest starting read-only (USMART_READONLY=1)
Quick start
No market-data entitlement, no trading API to write. You need a uSMART account with OpenAPI access.
Enable SG OpenAPI on uSMART's developer platform, create a public app to get a client_id (no App Secret needed) and register http://localhost:5100/callback as the redirect URI.
OAuth2 + PKCEInstall Python 3.10+ and uv, add usmart-mcp to a local client with one command, and set USMART_READONLY=1. The ChatGPT and Claude connectors come once they open.
uvx --from usmart-mcpRun check_trade_credentials, sign in through oauth_login in the browser, then confirm with list_today_orders. Decide about trading only after that.
check_trade_credentials → oauth_loginUse cases
Each one maps to a real tool. The answer is data you can check, not a model's recollection.
Walk historical orders by date range, or pull one order by id — status, fill price and quantity in one call.
「Did my 00700 buy from yesterday fill?」
The pre-trade check returns board lot, max size and buying power, and rejects a bad lot with a suggested quantity.
「What would 2 lots of 00700 cost? Can I afford it?」
Amendments and cancellations also need your confirmation, then pass limits and land in the local audit trail.
「Cancel my 00700 order at 380.」
In conversation
Every call shows the tool name and its latency. Writes go through confirmation, lot validation, limits and audit, and are never retried.
uSMART MCP · session 4f21Cancel my 00700 order at 380 and show me what is still open today.
Found it: buy 00700, 100 shares @ 380, order 88231409, unfilled. Cancel it?
Yes, cancel it.
Two orders are still open: buy 00700 100 shares @ 380, and sell AAPL 20 shares @ 215. The 00700 cancellation was submitted as order 88231409 — accepted is not cancelled; check again with list_today_orders.
Security
In local mode the MCP runs on credentials on your machine and your uSMART authorization — not a password handed to an AI.
Passwords, signing keys and tokens live in ~/.usmart — never in tool arguments or the model context.
Set USMART_READONLY=1 and the place and amend tools are not registered at the protocol layer at all. We suggest every new user starts here and decides on trading later.
Every order needs confirmed=true and passes board-lot validation plus per-order and daily limits.
Writes land in a local JSONL audit; timeouts or auth failures go to a human instead of a second attempt.
Any AI can misread your intent. Verify symbol, side, quantity and price before ordering; accepted is not filled.
Capabilities
No market data, no news, no ticker-name resolution. The AI queries your orders and submits them — with a trail for every action.
| Capability | Description | Tool |
|---|---|---|
| Authorization & credentials | OAuth2 sign-in, token refresh, local logout and credential self-check. Passwords and keys never enter the model context. | oauth_login oauth_login_status check_trade_credentials |
| Order queries | Today's and historical orders, single-order detail, and a pre-trade check for board lot, tradable size and buying power. | preview_order list_today_orders get_order_detail |
| Trading | Place, amend or cancel. Explicit confirmation, lot validation, per-order and daily limits, local audit — and never retried. | place_order modify_order |
Clients
ChatGPT and Claude connect remotely with no Python install, but only for queries and pre-trade checks, and they are not open yet. Local clients run through uvx, get all eleven tools, and are where you trade.
Beta access rolls out by account region; connector availability follows platform review.
Compare
One tool set, two entry points. Use the connector for queries, go local when you actually trade.
| ChatGPT / Claude | Local client | |
|---|---|---|
| Best for | Queries and pre-trade checks | Trading from the chat |
| Can do | Queries and pre-trade checks | All 11 tools |
| Credentials | Scoped by authorization | Local ~/.usmart |
| Availability | Opens after directory review | Beta package ready |
| Prerequisites | A developer app ID | Python 3.10+ and uv |
Public directories may not execute investment trades, so the connector surface is read-only. That is policy, not a technical limit.
Roadmap
Get the queries right, the orders safe and the trail complete — before widening the surface.
OAuth2 authorization, order queries and pre-trade checks, proven in read-only mode.
Read-only capability opens once ChatGPT plugins and Claude Connectors pass review.
Place, amend and cancel stay in local clients and enterprise private connections.
Regions beyond Singapore depend on local protocols and regulation.
FAQ
No. usmart-mcp does not provide quotes and does not resolve ticker names — you confirm the symbol and market in the conversation. It handles authorization, orders and trading.