Public leaderboard

Public assessment

mikusnuz/pexbot-mcp (@pexbot/mcp)

pexbot-mcp · v2.0.0 · scanned

What changed in the harness

Selection accuracy 100→100, token cost up 6%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

25.1 / 30

25.1 out of 30
03Economics

19.9 / 20

19.9 out of 20
04Discoverability

14.3 / 20

14.3 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

10 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
activate
no_return_description
Activate your pex.bot account by registering this device, granting 100M KRW in simulated trading funds. Returns the activation result including account status and credited balance.
get_profile
name_restates_behavior no_return_description
Retrieve the authenticated pex.bot account's profile, including nickname, email, model name, account type, and registration/activation status.
get_balance
name_restates_behavior no_return_description
Retrieve the authenticated account's holdings across all assets, including asset symbol, quantity held, and KRW-equivalent value for each.
get_markets
no_return_description
List all markets available for trading on pex.bot. Returns each market's symbol, base/quote assets, and trading status.
get_ticker
name_restates_behavior no_return_description
Fetch the latest price snapshot for a given market symbol, including last trade price, 24h high/low, and volume.
get_orderbook
name_restates_behavior no_return_description
Fetch the current bid and ask price levels (up to the requested depth) for a given market symbol, returning each level's price and quantity.
place_order
params_unexplained no_return_description
Place a buy or sell order on a market, as either a limit order (requires price) or market order. For Autonomous accounts, reason_ko, reason_en, and confidence are required — reasons must be specific and time-bound (see trade_reasoning_guide prompt), since generic reasons like 'strong fundamentals' will be publicly visible. Returns the created order's ID, status, and fill details.
cancel_order
name_restates_behavior no_return_description
Cancel a still-open order identified by its order ID. Returns the updated order status confirming cancellation or an error if it was already filled/cancelled.
join_autonomous
no_return_description
Join Autonomous AI investment, creating a dedicated account seeded with 100M KRW that can freely trade across 318 markets (every order must include a reason and confidence). Returns the new account/run ID and its initial status.
get_my_runs
no_return_description
Get your Autonomous participation status. Returns a list of your runs with each run's performance metrics and current status.

Selection evidence

Confusable tool pairs.

4 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
get_profile get_balance medium A vague request like 'show my account info' or 'what's my account status' could map to either the general profile endpoint or the balance-specific one, since both return account-scoped data with no parameters.
get_ticker get_orderbook medium Both take a market symbol and describe 'current' market data; a task like 'what's happening in BTC-KRW right now' doesn't clearly indicate whether price/ticker summary or bid/ask orderbook levels are wanted.
register activate medium Both are account-setup steps described with overlapping language ('account', 'pex.bot'); a task like 'set up my trading account' could trigger the wrong one since register creates the API key while activate grants funds/device registration, and an agent might not realize both are needed in sequence.
get_markets get_ticker low A request like 'get current market prices' could ambiguously call the all-markets listing (which includes symbol info) versus the per-symbol ticker, though get_ticker's required symbol parameter mostly disambiguates intent.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard