MangroveTrader MCP Server

MangroveTrader is an agent-native social trading leaderboard. Traders post tweets calling out trades to @MangroveTrader; a Grok-powered agent parses the tweet, tracks the position, and scores the trader. Public preview is free; full leaderboard data and trade-history lookups are gated via x402 micropayments in USDC on Base.
  • MCP: https://api.mangrovetraders.com/mcp
  • REST bridge: https://api.mangrovetraders.com/api/v1/tools/{name}

How traders register

There is no signup. A trader’s account is implicitly created the first time they tweet a trade call to @MangroveTrader. The bot parses the tweet (regex-first, falls back to LLM for natural-language phrasing) and starts tracking positions, computing realized/unrealized P&L from market data, and updating the score. Composite score = 50% return × 30% consistency × 20% risk-adjusted. A trader becomes “qualified” after 1 closed trade.

Tool catalog (9 tools)

Free

ToolPurpose
trader_my_stats(twitter_handle)Your own composite score, rank, total trades, qualified status, open positions
trader_performance_report(twitter_handle, timeframe)Return %, Sharpe, max drawdown, win rate (your handle only)
trader_last_trade(twitter_handle)Your most recent trade
trader_cancel_last(twitter_handle)Cancel an erroneous tweet within the cancellation window
trader_watch(twitter_handle)Add a trader to your watchlist
trader_unwatch(twitter_handle)Remove from watchlist

x402-gated

ToolPricePurpose
trader_get_leaderboard0.25 USDCTop 100 ranked traders
trader_search_trader(query)0.02 USDCFind a trader by handle, name, or partial match
trader_get_trade_history(twitter_handle)0.01 USDC per 3 tradesFull trade log for any trader other than yourself
API keys (paid tier) bypass x402 entirely.

Quick start

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(
  new StreamableHTTPClientTransport(new URL("https://api.mangrovetraders.com/mcp"))
);

// Free
const me = await client.callTool({
  name: "trader_my_stats",
  arguments: { twitter_handle: "@my_handle" },
});

// x402 — first call returns 402 with price; client signs and retries
const board = await client.callTool({
  name: "trader_get_leaderboard",
  arguments: {},
});
If you use Claude Code, the mangrove-trader-plugins repo bundles slash commands (/mt-leaderboard, /mt-stats) that wire the MCP connection and the x402 round-trip for you.

Twitter format

A trade call tweet must mention @MangroveTrader and include enough info for the parser. Examples:
@MangroveTrader enter long 100 AAPL @ 185.50
@MangroveTrader exit AAPL @ 192.10
@MangroveTrader long 0.5 BTC @ 67200 stop 65000 target 70000
For options, include strike, type, and expiry:
@MangroveTrader long 5 NVDA 850C exp 2026-05-17 @ 4.20
The full grammar is in the trader plugin’s /mt-track command — see mangrove-trader-plugins on GitHub.

Source