Tools
The MCP tool catalog is test-guarded against the shared Juhus catalog used by the MCP server.
| Tool | Access | Purpose | Important inputs | Pagination | Browser confirmation |
|---|---|---|---|---|---|
whoami | Read-only | Return the signed-in Juhus account email, display name, exact balance in EUR, and account creation date. | None | None. | Never |
list_categories | Read-only | List public Juhus market categories. | None | None. | Never |
list_markets | Read-only | List public markets in one category. | category, status, limit, cursor | Cursor pagination; limit is 1-50 and defaults to 20. | Never |
list_events | Read-only | List public events in one category. | category, limit, cursor | Cursor pagination; limit is 1-50 and defaults to 20. | Never |
get_event | Read-only | Return one event and its markets. | eventId | None. | Never |
get_market | Read-only | Return one market with best bid and ask prices. | marketId | None. | Never |
get_order_book | Read-only | Return aggregated bid and ask depth for one market. | marketId | None. | Never |
list_recent_trades | Read-only | List recent matched trades for one market. | marketId, limit, cursor | Cursor pagination; limit is 1-50 and defaults to 20. | Never |
get_portfolio | Read-only | Return the signed-in account exact balance in EUR, positions, and open orders. | None | None. | Never |
list_orders | Read-only | List the signed-in account orders, optionally filtered by market or status. | marketId, status, limit, cursor | Cursor pagination; limit is 1-50 and defaults to 20. | Never |
place_order | Can trade | Prepare an order after Juhus browser confirmation. | marketId, side, price, quantity, budgetCents, orderType, timeInForce, idempotencyKey, expiresAt, postOnly | None. Reconcile ambiguous mutation outcomes with list_orders. | Can require browser confirmation |
cancel_order | Can trade | Cancel one owned open, partially filled, or scheduled order. | orderId | None. Reconcile ambiguous mutation outcomes with list_orders. | Never |
amend_order | Can trade | Change price or quantity on one owned order. | orderId, price, quantity | None. Reconcile ambiguous mutation outcomes with list_orders. | Can require browser confirmation |
Prices are integers from 1 to 99. Money values are integer EUR-cents. Balance responses retain their legacy cent fields and also include explicit balanceCents / balanceEur / currency fields; mutation balance objects similarly include totalCents, availableCents, totalEur, availableEur, and currency. Use the exact two-decimal EUR fields for user-facing answers. Mutation ambiguity should be reconciled with list_orders before retrying.
Rate limits
| Limit | Window | Dimension |
|---|---|---|
| All MCP requests before authentication | 120 requests | 60 seconds per source IP |
| Authenticated MCP requests | 120 requests | 60 seconds per user |
| Mutation tool calls | 30 requests | 60 seconds per user |
Every MCP request first consumes the source-IP limit. An authenticated request also consumes the user limit, and a mutation additionally consumes the mutation limit. HTTP rate-limit responses include Retry-After when Juhus can return an HTTP response. Mutation-tool throttles return retryAfterSeconds inside the MCP tool error.