Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
convert_to_markdownA
Convert a webpage URL into clean, AI-friendly markdown by performing a live
HTTP GET (15s timeout) and stripping ads, navigation, and scripts, keeping
only the main content (capped at 3MB of source HTML).

Use this when you need to read a webpage's actual content but want to avoid
wasting tokens on HTML tags, ads, navigation menus, and scripts - or when raw
HTML parsing is causing hallucinations in downstream reasoning. Call it before
summarizing, extracting facts from, or answering questions about any arbitrary
public URL. Do NOT use it for: URLs requiring authentication/login (no cookies
or headers are sent); non-HTML resources such as PDFs, images, or other binary
files (returns "unsupported_content"); or JavaScript-rendered single-page apps
(this does a static HTML fetch, not a browser render, so client-side-only
content may come back sparse or empty). No other tool here does markdown
conversion - the sibling get_token_dump_risk is unrelated.

Failure modes returned as structured errors (never raised): "timeout" (15s
exceeded), "http_error" (non-2xx from the target site), "network_error"
(DNS/connection failure), "unsupported_content" (not HTML or over 3MB),
"invalid_url" (missing http(s):// scheme).

Args:
    url: The full absolute URL of the webpage to convert, including scheme
        (e.g. "https://example.com/article"). Relative paths are not accepted.

Returns:
    On success: {"success": true, "url", "title", "markdown", "char_count"}
    On failure: {"success": false, "error": {"type", "message"}}
get_token_dump_riskA
Calculate a token's vesting/unlock D-Day, unlock ratio relative to
circulating supply, and a sell-pressure score against real-time volume,
returned as a concise summary report.

Use this to evaluate token unlock/vesting supply overhang risk before
taking mid-to-long term positions. Default data source (on-chain Sablier
vesting, the current configuration - no DropsTab key set) does NOT classify
VC/team vs. other holders and does NOT provide exact unlock timing
(days_until_unlock stays null) - it only reports the currently-locked
supply ratio; treat a null value as "unknown," never as "no risk." On this
on-chain path it also reports vesting_deposit_amount/vesting_withdrawn_amount
(Sablier's own depositAmount/withdrawnAmount, aggregated across streams) and
vesting_progress_pct (withdrawn/deposit * 100) showing how far along the
vesting schedule already is - null when deposit data wasn't available. Do
NOT use it for intra-day slippage or real-time transaction simulation - use
dex.liquidity_slippage for that instead. This tool is free (no payment) as
an onboarding check; every other tool here is a normal read-only call
against app/logic.py.

Args:
    symbol: Token ticker symbol (e.g. "ATH", "AO", "CPOOL"). Case-insensitive.

Returns:
    Success & data available: {"success": true, "available": true, "symbol",
        "unlock_date_utc", "days_until_unlock", "unlock_supply_pct",
        "vesting_progress_pct", "volume_impact_pct", "sell_pressure_risk_level", ...}
    Success but not yet available:
        {"success": true, "available": false, "reason", "message"}
        (e.g. the paid data source isn't connected yet, by business decision)
    Failure: {"success": false, "error": {"type", "message"}}
market.kimchi_alertA
Detect Korea-vs-global crypto price arbitrage (the "kimchi premium"):
whether a coin trades at a premium or discount on Upbit vs a global
reference price (Coinbase spot, CoinGecko fallback - NOT a live Binance
orderbook, despite the legacy binance_price_usdt field name kept for
backward compatibility), a reverse-premium crash-risk flag (-1.5% or
below), and a premium-surge flag (+3 percentage points within the last
hour).

Use this when asked about cross-exchange arbitrage opportunities in Korean
crypto markets, to detect a reverse-premium crash risk, or a sudden premium
surge. This is a live snapshot only - do NOT use it for historical/backtesting
data, or for non-Korean-exchange comparisons (use arb.spread_matrix for a
general CEX-DEX spread check instead).

Args:
    symbol: Ticker symbol, e.g. "BTC", "ETH", "SOL" (default "BTC").

Returns:
    On success: {"success": true, "symbol", "upbit_price_krw",
        "binance_price_usdt" (legacy name, actually Coinbase/CoinGecko),
        "cex_reference_price_usdt" (same value, honest name),
        "cex_price_source", "kimchi_premium_pct", "premium_change_1h_pct",
        "alerts", "thresholds", "notice", ...}
    On failure: {"success": false, "error": {"type", "message"}}
security.token_riskA
Check a token contract for honeypot/scam risk before buying: is_honeypot,
buy/sell tax, mintability, open-source status, ownership renouncement,
holder count, individual GoPlus risk signals (cannot_buy, cannot_sell_all,
hidden_owner, transfer_pausable, selfdestruct, is_blacklisted,
slippage_modifiable, owner_percent - all feed into risk_flags), is_proxy
and trading_cooldown (informational only, not flagged - both are common in
legitimate contracts), and a summarized risk_level (LOW/MEDIUM/HIGH/UNKNOWN).
Data source: GoPlus Security, falling back to Honeypot.is (the GoPlus-only
fields above are always null on the fallback path).

Use this right before entering a position on an unfamiliar or newly-listed
token. Do NOT treat a null field as "safe" - it means that field could not
be determined; check risk_level and risk_flags instead. This tool does not
cover LP lock/burn status - use get_contract_health_audit for that, or
get_token_diagnostic to get both in one call.

Args:
    chain_id: EVM chain id, e.g. 8453 for Base.
    contract_address: Token contract address (0x...).

Returns:
    On success: {"success": true, "is_honeypot", "buy_tax_pct", "sell_tax_pct",
        "risk_level", "risk_flags", ...}
    On failure: {"success": false, "error": {"type", "message"}}
security.contract_health_auditA
Audit LP lock/burn status for a token contract (GoPlus): lp_locked_pct,
lp_burned_pct, top_unlocked_holder_pct, rolled up into a liquidity_health
category (LOCKED / PARTIALLY_LOCKED / UNLOCKED / NO_LP_DATA). A key
rug-pull signal that get_token_risk does not cover.

Use this to check whether a token's liquidity is locked, burned, or freely
held by a single wallet before trusting it - complements, not replaces,
get_token_risk (honeypot/tax/mint checks). Deliberately does NOT include any
qualitative "suspicious transaction" judgment, only GoPlus's own numbers, and
has no fallback if GoPlus fails (Honeypot.is does not expose LP lock data).

Args:
    chain_id: EVM chain id, e.g. 8453 for Base.
    contract_address: Token contract address (0x...).

Returns:
    On success: {"success": true, "lp_locked_pct", "lp_burned_pct",
        "liquidity_health", ...}
    On failure: {"success": false, "error": {"type", "message"}}
security.token_diagnosticA
Bundles get_token_risk + get_contract_health_audit into one combined
diagnostic report (same GoPlus data, run in parallel, one upstream round
trip), plus a deduped union of risk_flags. Does not compute a composite
score/grade - every field is copied unchanged from the two underlying tools.

Use this right before buying or swapping an unfamiliar token when you want
both honeypot/tax risk AND LP lock/burn status in one call, instead of
calling get_token_risk and get_contract_health_audit separately. Do NOT
use it if you only need one of the two - call that single tool directly
to save a round trip. Does not cover token unlock/vesting risk - use
get_token_dump_risk separately for that.

Args:
    chain_id: EVM chain id, e.g. 8453 for Base.
    contract_address: Token contract address (0x...).

Returns:
    On success: {"success": true, ...combined token_risk + contract_health_audit fields}
    On failure: {"success": false, "error": {"type", "message"}}
derivatives.whale_position_auditA
Audit a Hyperliquid wallet's open perpetual futures positions: side,
size, leverage, max_leverage, unrealized PnL, return_on_equity_pct,
liquidation price, and distance-to-liquidation percentage for every open
position (max_leverage and return_on_equity_pct are Hyperliquid's own
reported fields, not derived by this tool).

Use this only when you already have a specific Hyperliquid/EVM wallet address
(from an explorer, a screenshot, on-chain sleuthing, etc.) and want to audit
its current exposure. Do NOT use it to discover or rank "smart money" wallets
- Hyperliquid's public API has no leaderboard or large-trader disclosure
endpoint, so this tool cannot identify addresses for you, only audit ones you
provide. risk_flags (HIGH_LEVERAGE, NEAR_LIQUIDATION) are fixed numeric
thresholds, never a qualitative judgment.

Args:
    address: Hyperliquid/EVM wallet address to audit (0x...).

Returns:
    On success: {"success": true, "positions": [...], "risk_flags", ...}
    On failure: {"success": false, "error": {"type", "message"}}
derivatives.funding_rateA
Get perpetual futures funding rate (Bybit primary, Binance fallback) to
gauge long/short crowding before entering or hedging a position.

Use this when asked about funding rate levels or funding-rate arbitrage/carry
trade opportunities. If you also need the trade annualized into an APR with
a carry-trade breakeven-days estimate, use get_funding_apr_matrix instead -
it already calls this internally, so calling both is redundant. Check the
data_source field to see whether Bybit or the Binance fallback answered;
predicted_rate equals funding_rate because neither exchange exposes a
separate forecast field (not a bug). Also returns mark_price/index_price
(populated on both the Bybit and Binance paths) and open_interest_usd
(Bybit path only - always null on the Binance fallback, since Binance's
premiumIndex endpoint doesn't report open interest).

Args:
    symbol: e.g. "BTC", "ETH", or "BTCUSDT" (non-USDT symbols are
        normalized to USDT pairs).

Returns:
    On success: {"success": true, "funding_rate_percentage",
        "funding_interval_hours", "mark_price", "index_price",
        "open_interest_usd", "data_source", ...}
    On failure: {"success": false, "error": {"type", "message"}}
derivatives.funding_apr_matrixA
Annualize a perpetual funding rate into APR + carry-trade breakeven days:
evaluates a spot+perpetual cash-and-carry trade, tells you which side
collects funding, and how many days of income recoups round-trip costs.
Pure calculation layer on top of get_funding_rate - no extra upstream call,
so prefer this over get_funding_rate whenever you need the APR/breakeven
view rather than the raw rate.

Use this to evaluate a spot+perpetual carry trade. Does NOT account for
margin borrow cost, spot-perp basis risk, or perp liquidation risk - treat
breakeven_days as a rough estimate, not a guaranteed profit timeline.

Args:
    symbol: e.g. "BTC", "ETH", or "BTCUSDT".
    assumed_round_trip_cost_pct: Combined entry+exit trading fee % across
        both legs (default 0.2). Pass your own fee tier for accuracy.

Returns:
    On success: {"success": true, "apr_pct", "collects_funding_side",
        "breakeven_days", ...}
    On failure: {"success": false, "error": {"type", "message"}}
dex.liquidity_slippageA
Estimate DEX pool liquidity and trade slippage (GeckoTerminal): total USD
liquidity, 24h volume, an estimated slippage percentage for the given
trade size, and slippage_tiers at fixed $1k/$5k/$10k sizes. Approximated
under a documented constant-product (50:50) assumption since GeckoTerminal's
free API exposes only combined USD liquidity, not per-token reserves.

Also returns quote_token_is_stablecoin (false/null means this pool isn't
USD-quoted - an extra hop is needed to reach USD, not accounted for here),
pool_fee_pct (the pool's swap fee tier, disclosed for reference only - not
subtracted from the slippage estimate), and assumed_gas_cost_usd (a flat
per-network estimate, not a live quote).

Use this before sizing a trade or comparing pools for a given token, to
check depth before swapping. Do NOT treat estimated_slippage_pct or
slippage_tiers as an exact on-chain quote, especially for concentrated-
liquidity or stableswap pools - always re-verify with a live quote before
executing. Requires exactly one of pool_address or token_address; passing
neither raises an "invalid_input" error.

Args:
    trade_size_usd: Hypothetical trade size in USD.
    network: GeckoTerminal network id, e.g. "base", "eth" (default "base").
    pool_address: A specific pool contract address.
    token_address: Token contract address (auto-picks the most liquid pool).
        One of pool_address or token_address is required.

Returns:
    On success: {"success": true, "total_liquidity_usd",
        "estimated_slippage_pct", "slippage_tiers", ...}
    On failure: {"success": false, "error": {"type", "message"}}
arb.spread_matrixA
CEX-DEX arbitrage spread calculator: checks whether a global reference
price (Coinbase spot, CoinGecko fallback - NOT a specific exchange
orderbook, despite internal naming) and a DEX pool price (GeckoTerminal)
diverge enough to be worth trading after an assumed flat gas cost. Returns
gross/net spread, direction, and is_profitable.

Use this before executing a cross-venue arbitrage trade, or for kimchi-style
premium checks on non-Korean venues (use market.kimchi_alert instead for the
Upbit-specific case). net_spread_pct does NOT subtract the DEX pool's own
swap fee (see pool_fee_pct, typically 0.05-1%), CEX trading fees, CEX
deposit/withdrawal availability, or slippage beyond trade_size_usd - a
spread that clears the threshold before those costs may not clear it after,
so always re-verify with live quotes before executing. Requires exactly one
of pool_address or token_address; passing neither raises "invalid_input".

Args:
    symbol: Ticker symbol, e.g. "SUI", "BTC", "ETH".
    network: GeckoTerminal network id (default "base").
    trade_size_usd: Hypothetical trade size in USD (default 1000.0).
    min_spread_threshold_pct: Net spread threshold (%) above which
        is_profitable is true (default 0.8).
    pool_address: A specific DEX pool contract address.
    token_address: Token contract address (auto-picks the most liquid pool).
        One of pool_address or token_address is required.

Returns:
    On success: {"success": true, "gross_spread_pct", "net_spread_pct",
        "direction", "is_profitable", ...}
    On failure: {"success": false, "error": {"type", "message"}}
calendar.macro_ddayA
Countdown to the nearest major US macro event (FOMC/CPI/NFP): event name,
exact date/time (UTC and KST), a D-Day countdown, impact level, and the
next few upcoming events. Static, pre-loaded 2026 calendar sourced from
official Federal Reserve/BLS release schedules - no live external API call,
so this never fails on an upstream outage and takes no parameters.

Use this to plan position sizing or avoid holding risk into a high-impact
macro print. Does NOT cover non-US events (e.g. ECB, BOJ) or company
earnings - only FOMC/CPI/NFP are tracked. Takes no arguments; calling it
with any input is unnecessary.

Returns:
    On success: {"success": true, "nearest_event", "days_until", ...}
    On failure: {"success": false, "error": {"type", "message"}}
prediction.neg_risk_arbitrageA
Detect basket arbitrage in a Polymarket neg-risk (mutually-exclusive,
multi-outcome) event: a full YES basket across all outcomes always settles
to exactly $1 via Polymarket's neg-risk adapter, so a basket price away
from $1 (after costs) is a near risk-free edge. Also computes
buy/sell_basket_capacity_shares - the actual liquidity-bottleneck size the
thinnest outcome's order book can support within max_slippage_pct - so
this isn't just a top-of-book mirage. Note *_capacity_notional_usd still
prices that size at top-of-book (optimistic beyond the first price level) -
use *_capacity_vwap_notional_usd for the realistic average fill cost. Also
returns oldest_book_snapshot_time, the staleness bottleneck across all legs
(the oldest of each leg's own order-book snapshot timestamp). Polymarket only.

Use this to scan a specific multi-outcome event you already know the slug
for. Do NOT use for binary Yes/No markets (no basket to arbitrage, this
needs 2+ mutually-exclusive outcomes) or for Kalshi (its Data ToS forbids
this use of their data). Pair with prediction.exit_capacity_audit before
sizing a real position on one leg.

Args:
    event_slug: Polymarket event slug, from the event's URL on polymarket.com.
    assumed_round_trip_cost_pct: Gas + fees + slippage buffer, as a
        percentage of $1 basket notional (default 1.5).
    max_slippage_pct: How far past each leg's best price to walk the book
        when sizing executable basket capacity (default 1.0).
    min_net_edge_pct: Minimum net edge (%) required to flag
        arbitrage_viable: true (default 1.0).

Returns:
    On success: {"success": true, "basket_ask_sum", "basket_bid_sum",
        "buy_basket_net_edge_usd", "buy_basket_capacity_shares",
        "opportunity", "arbitrage_viable", ...}
    On failure: {"success": false, "error": {"type", "message"}}
prediction.exit_capacity_auditA
Walk a single Polymarket outcome's live order book to determine how much
of a given position size can actually be filled right now, at what
average price, and with how much price impact versus the best quote - a
live, point-in-time snapshot, not historical/average liquidity. Also
returns book_snapshot_time (the book's own reported snapshot timestamp)
and Polymarket's own tick_size/min_order_size for this market (null if the
book response didn't include them).

Use this to validate one leg of an opportunity found by
prediction.neg_risk_arbitrage before committing capital, or whenever you
need real executable liquidity rather than the headline best bid/ask. Do
NOT use for multi-outcome basket arbitrage detection (use
prediction.neg_risk_arbitrage instead). market_slug only resolves an
EXACT Polymarket market slug - no fuzzy keyword search, since a wrong
silent match would be worse than an error here.

Args:
    position_size_shares: Number of outcome shares to sell (or buy). Must
        be positive.
    token_id: The outcome's CLOB token_id / asset_id, if already known.
        Provide either this OR market_slug.
    market_slug: Exact Polymarket market slug, used to resolve token_id
        automatically when not already known.
    outcome: "yes" (default) or "no" - which side to resolve when using
        market_slug. Ignored if token_id is given directly.
    side: "sell" (default) to audit exiting a position against the bid
        side, or "buy" to audit entering against the ask side.

Returns:
    On success: {"success": true, "executable", "best_quote",
        "avg_exit_price", "price_impact_pct", "max_executable_shares", ...}
    On failure: {"success": false, "error": {"type", "message"}}

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.5/5.0

Scored across 14 tools

Disambiguation4/5

Most tools map to distinct domains and explicitly cross-reference each other (e.g. token_diagnostic vs token_risk, kimchi_alert vs spread_matrix). The main ambiguity comes from composable pairs like funding_rate/funding_apr_matrix and token_risk/token_diagnostic, but the descriptions draw clear boundaries.

Naming Consistency4/5

Twelve of fourteen tools follow a consistent domain-prefixed snake_case noun pattern (security.*, derivatives.*, prediction.*), which makes the set navigable. The outliers are convert_to_markdown and get_token_dump_risk, which break the prefix/verb pattern, but they are minor deviations rather than chaos.

Tool Count4/5

At 14 tools, the set is at the high end of the ideal range but still manageable, and each tool has a distinct analytical job. A couple are deliberate composites/wrappers (token_diagnostic, funding_apr_matrix), so the surface could be trimmed slightly without losing real functionality.

Completeness3/5

The server covers token risk, DEX/CEX arb, derivatives, macro events, and prediction-market exits well, but notable gaps remain for a trading/alpha pipeline: there is no direct token price/quote tool and no way to discover Polymarket event slugs or wallet addresses, leaving some workflows dependent on externally supplied identifiers. These holes are workable but will cause dead ends in autonomous use.

Maintenance

ActivityMaintained
ResponsivenessWithin a week