protogrid

Search / io.github.alienbase-xyz/epsilon

Epsilon

R1· needs a key

Non-custodial limit, stop-loss and DCA trading on Epsilon (Robinhood Chain) for AI agents

v0.4.0 · active · repository · website · descriptor JSON · versions

An agent can connect on its own if it already holds X_API_KEY, X_API_KEY.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality76good
Trust97of 100
Uptime, 30 days100%
Latency p50491 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "epsilon": {
      "type": "http",
      "url": "https://api.epsilon.exchange/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}",
        "Authorization": "${X_API_KEY}"
      }
    }
  }
}
claude mcp add --transport http epsilon https://api.epsilon.exchange/mcp --header "X-API-Key: ${X_API_KEY}" --header "Authorization: ${X_API_KEY}"
[mcp_servers.epsilon]
url = "https://api.epsilon.exchange/mcp"
env_http_headers = { "X-API-Key" = "X_API_KEY", "Authorization" = "X_API_KEY" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "epsilon": {
      "type": "remote",
      "url": "https://api.epsilon.exchange/mcp",
      "enabled": true,
      "headers": {
        "X-API-Key": "{env:X_API_KEY}",
        "Authorization": "{env:X_API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "epsilon": {
      "type": "http",
      "url": "https://api.epsilon.exchange/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}",
        "Authorization": "${X_API_KEY}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=epsilon&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmVwc2lsb24uZXhjaGFuZ2UvbWNwIiwiaGVhZGVycyI6eyJYLUFQSS1LZXkiOiIke1hfQVBJX0tFWX0iLCJBdXRob3JpemF0aW9uIjoiJHtYX0FQSV9LRVl9In19"
}
{
  "servers": {
    "epsilon": {
      "type": "http",
      "url": "https://api.epsilon.exchange/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}",
        "Authorization": "${X_API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "epsilon": {
      "httpUrl": "https://api.epsilon.exchange/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}",
        "Authorization": "${X_API_KEY}"
      }
    }
  }
}
extensions:
  "epsilon":
    enabled: true
    name: "epsilon"
    type: streamable_http
    uri: "https://api.epsilon.exchange/mcp"
    headers:
      "X-API-Key": "${X_API_KEY}"
      "Authorization": "${X_API_KEY}"
    timeout: 300

Placeholders to fill from your own secret store: ${X_API_KEY}, ${X_API_KEY}. The registry never accepts secret values.

Quality 76 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations22 of 22 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints6 of 22 tools declare all four hints; missing: check_order (openWorldHint); get_grant (openWorldHint); get_market_stats (openWorldHint); …
  • pass
    tools.token_costabout 4,526 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes25 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @epsilon-exchange/[email protected]

22 tools, about 4,526 tokens to load them all · tool set f336e3e393e1 · tools last changed 2026-10-06 · checked 2026-10-19 23:18 UTC

Tool changes

  • place_trailing_orderadded

    Ask the user to approve a trailing stop: sell amount tokenIn for tokenOut when price drops trailPercent below its running high since placement. Keeper-executed after signing; always returns an approval link — trailing stops are never executed under an agent grant. For a fixed level use place_stop_order. HUMAN units.

  • place_stop_orderadded

    Place a stop-loss: sell amount tokenIn for tokenOut if the price falls to triggerPrice (tokenOut per tokenIn). Keeper-executed. Queued under an active agent grant that covers it, otherwise returns an approval link (status needs_approval). Use place_limit_order to sell ABOVE the market (take profit); this tool is for protection BELOW it. Autonomous stops enforce a signed minimum and may remain unfilled after a price gap. HUMAN units.

  • place_market_orderadded

    Ask the user to approve a market swap of amount tokenIn → tokenOut at the best current route. Returns an approval link, not a fill: the user signs in the Epsilon app. Use get_quote first to tell the user what to expect. For a price-conditional order use place_limit_order or place_stop_order. Amounts are HUMAN units.

  • place_limit_orderadded

    Place a resting limit order: sell amount tokenIn for tokenOut once the market reaches limitPrice (tokenOut per tokenIn) or better. Keeper-executed — it keeps working with the chat closed. If the user granted this client an agent grant and the order fits its caps, it is queued with a stable requestId (status reserved or submitted); otherwise you get an approval link the user signs in the Epsilon app (status needs_approval). Run check_order first. For a protective sell below the market use place_stop_order; for an immediate swap use place_market_order. HUMAN units.

  • place_dca_orderadded

    Ask the user to approve a DCA program: sell amount of tokenIn for tokenOut in `executions` equal slices, one every `every` (15m, 1h, 1d…). Optionally gated by triggerPrice (only sells at or below it). Keeper-executed after signing; always returns an approval link — DCA is never executed under an agent grant. HUMAN units; amount is the TOTAL.

  • get_meadded

    The signed-in Epsilon account behind this session: account id, handle, linked wallets (embedded first), the scopes this client was granted, and which client is connected. Call it first after sign-in to learn the wallet address other tools need. Requires an OAuth session (connect to /mcp/account); on the keyless /mcp endpoint it explains how to sign in instead.

  • get_grantadded

    The signed-in account's agent grant for this channel, if any: the embedded wallet it signs with, per-order and daily caps, what remains today, allowed order kinds, and whether the Epsilon signer is actually granted on the wallet. Call it before placing to know whether an order will be placed immediately or need an approval link. Grants are created and revoked by the user in the Epsilon app, never by a tool.

  • get_approvaladded

    Status of an approval you created: pending (user hasn't decided), submitted (with orderHash or txHash — then use get_order to follow fills), rejected, failed, or expired (links live 30 minutes). Poll no more than every few seconds.

  • cancel_orderadded

    Ask the user to approve cancelling one of their open orders (hash from list_orders). Returns an approval link; the cancellation is signed by the user's wallet in the Epsilon app. Orders already filled cannot be cancelled.

  • token_volumeremoved

    Per-token and total swap volume over a window (1h, 24h, 7d, 30d, all).

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-14d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@epsilon-exchange/[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.epsilon.exchange/mcp streamable-httpapi_key ${X_API_KEY}yes100%491 ms2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-052026-10-19
packageregistryversionruntimesecrets
@epsilon-exchange/mcpnpm0.4.0–EPSILON_API_KEY, EPSILON_WALLET_KEY

Tools (22)

cancel_orderAsk the user to approve cancelling one of their open orders (hash from list_orders). Returns an approval link; the cancellation is signed by the user's wallet in the Epsilon app. Orders already filled cannot be cancelled.
check_orderread-onlyCheck whether a resting order (limit, stop, DCA, trailing) for this pair and size would be executable: oracle support, liquidity, minimum size. Run this before signing any resting order; it does not price the trade — get_route does. Amounts are RAW token units.
get_approvalread-onlyStatus of an approval you created: pending (user hasn't decided), submitted (with orderHash or txHash — then use get_order to follow fills), rejected, failed, or expired (links live 30 minutes). Poll no more than every few seconds.
get_error_catalogread-onlyMachine-readable catalog of every error code the Epsilon API returns, with meanings and retry guidance. Consult it when any other tool returns an error code you need to interpret or decide whether to retry.
get_exampleread-onlyFull source code of one Epsilon integration example, by id from list_examples. No API key required.
get_grantread-onlyThe signed-in account's agent grant for this channel, if any: the embedded wallet it signs with, per-order and daily caps, what remains today, allowed order kinds, and whether the Epsilon signer is actually granted on the wallet. Call it before placing to know whether an order will be placed immediately or need an approval link. Grants are created and revoked by the user in the Epsilon app, never by a tool.
get_market_statsread-onlyMarket-level numbers for Epsilon (Robinhood Chain DEX). scope=overview (default) is the best first call: top tokens by 30-day volume, 24h volume, and engine-wide order/fill stats in one response. scope=engine returns only order counts by status, fill counts and volume aggregates; scope=volume returns per-token and total swap volume over window. For one token use search_tokens; for executed trades use list_fills.
get_meread-onlyThe signed-in Epsilon account behind this session: account id, handle, linked wallets (embedded first), the scopes this client was granted, and which client is connected. Call it first after sign-in to learn the wallet address other tools need. Requires an OAuth session (connect to /mcp/account); on the keyless /mcp endpoint it explains how to sign in instead.
get_orderread-onlyOne Epsilon order by hash: status (pending/active/filled/cancelled/expired), parameters, and its fills. Use list_orders to find orders by wallet first; use get_orderbook for the market's resting orders on a pair.
get_orderbookread-onlyThe market's open (pending/active) limit orders on both sides of a token pair, largest first — liquidity you can rest against. For one wallet's own orders use list_orders instead.
get_quoteread-onlyBest executable quote for swapping tokenIn → tokenOut on Epsilon (Robinhood Chain, id 4663): expected output and price. Use this for a quick price check; use get_route when you need the venue split, fee legs or minimum output for an order you will sign. Amounts are RAW token units — scale by the token's decimals first. Never executes.
get_routeread-onlyFull routing breakdown for a swap: best venue split, expected and minimum output, price impact (ppm), and the feeLegs a signed order must embed (pass orderType for a resting order so the right fee cell is served). Use get_quote for a plain price; use check_order to learn whether a resting order would be executable at all. Read-only. Amounts are RAW token units.
list_examplesread-onlyList runnable Epsilon integration examples (Python cron DCA, LangChain tools, Vercel AI SDK tools, Telegram bot). Fetch full source with get_example. No API key required.
list_fillsread-onlyExecuted trades (swaps and order fills) on Epsilon, newest first, optionally for one wallet — the trade history. For resting/open orders use list_orders. Amounts are RAW token units.
list_ordersread-onlyA wallet's Epsilon orders filtered by status and/or type — the portfolio view, newest first. Use get_order for one order's fills; use list_fills for executed trades.
place_dca_orderAsk the user to approve a DCA program: sell amount of tokenIn for tokenOut in `executions` equal slices, one every `every` (15m, 1h, 1d…). Optionally gated by triggerPrice (only sells at or below it). Keeper-executed after signing; always returns an approval link — DCA is never executed under an agent grant. HUMAN units; amount is the TOTAL.
place_limit_orderPlace a resting limit order: sell amount tokenIn for tokenOut once the market reaches limitPrice (tokenOut per tokenIn) or better. Keeper-executed — it keeps working with the chat closed. If the user granted this client an agent grant and the order fits its caps, it is queued with a stable requestId (status reserved or submitted); otherwise you get an approval link the user signs in the Epsilon app (status needs_approval). Run check_order first. For a protective sell below the market use place_stop_order; for an immediate swap use place_market_order. HUMAN units.
place_market_orderAsk the user to approve a market swap of amount tokenIn → tokenOut at the best current route. Returns an approval link, not a fill: the user signs in the Epsilon app. Use get_quote first to tell the user what to expect. For a price-conditional order use place_limit_order or place_stop_order. Amounts are HUMAN units.
place_stop_orderPlace a stop-loss: sell amount tokenIn for tokenOut if the price falls to triggerPrice (tokenOut per tokenIn). Keeper-executed. Queued under an active agent grant that covers it, otherwise returns an approval link (status needs_approval). Use place_limit_order to sell ABOVE the market (take profit); this tool is for protection BELOW it. Autonomous stops enforce a signed minimum and may remain unfilled after a price gap. HUMAN units.
place_trailing_orderAsk the user to approve a trailing stop: sell amount tokenIn for tokenOut when price drops trailPercent below its running high since placement. Keeper-executed after signing; always returns an approval link — trailing stops are never executed under an agent grant. For a fixed level use place_stop_order. HUMAN units.
search_docsread-onlySearch the Epsilon developer documentation (API, auth, order signing, webhooks, rev-share, SDKs, MCP). Returns the most relevant doc sections. No API key required.
search_tokensread-onlyResolve a token symbol or name to its address and decimals — call this FIRST when the user names a token; every other tool takes addresses. volume30dUsd disambiguates same-symbol tokens: the real one has volume.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.alienbase-xyz/epsilon",
  "title": "Epsilon",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.epsilon.exchange/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "X-API-Key",
          "isSecret": true,
          "isRequired": true,
          "description": "Epsilon developer key (eps_…) — create one at developers.epsilon.exchange"
        }
      ]
    }
  ],
  "version": "0.4.0",
  "packages": [
    {
      "version": "0.4.0",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@epsilon-exchange/mcp",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "EPSILON_API_KEY",
          "format": "string",
          "isSecret": true,
          "isRequired": true,
          "description": "Epsilon developer key (eps_…) — create one at developers.epsilon.exchange"
        },
        {
          "name": "EPSILON_WALLET_KEY",
          "format": "string",
          "isSecret": true,
          "description": "0x-prefixed private key of a dedicated trading wallet; omit for read-only (quotes, order status, market stats)"
        },
        {
          "name": "EPSILON_REFERRER",
          "format": "string",
          "description": "Optional rev-share payout address (0x…): the referral leg of every fill routed by this server is paid there on-chain. Never changes the maker's fee — it only redirects the existing leg."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/alienbase-xyz/EpsilonRobinhood",
    "source": "github",
    "subfolder": "mcp"
  },
  "websiteUrl": "https://developers.epsilon.exchange",
  "description": "Non-custodial limit, stop-loss and DCA trading on Epsilon (Robinhood Chain) for AI agents"
}