Epsilon
REMOTE · API.EPSILON.EXCHANGE · 2 COMPONENTS
Non-custodial limit, stop-loss and DCA trading on Epsilon (Robinhood Chain) for AI agents
Available components
Last scanned (9 hours ago)
Scores higher than 95% of remote servers
Reachable. Last reached 6 Nov 2026.
Category Crypto and Web3
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability76
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3195 tokens (~145/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Checks we ran (13)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Nov 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 5 Nov 26 +7
- Stability: fail → pass ▲ security
- 7 Oct 26 −8
- Stability: pass → fail ▼ security
- Schema quality: pass → fail ▼ functional
- New tool “place_limit_order” functional
- New tool “cancel_order” functional
- New tool “get_approval” functional
- New tool “get_grant” functional
- New tool “get_me” functional
- New tool “place_dca_order” functional
- New tool “place_market_order” functional
- New tool “place_stop_order” functional
- New tool “place_trailing_order” functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Sept 26 0
- Stability: 0.97 → pass security
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 1 Sept 26 0
- “get_route” added an optional parameter “triggered” cosmetic
- “get_route” added an optional parameter “orderType” cosmetic
2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 29 Aug 26 0
- Stability: unverified → 0.03 ▲ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Nov 2026 · Probed https://api.epsilon.exchange/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.epsilon.exchange | CN=YE1,O=Let's Encrypt,C=US | 26 Oct 2026 | 24 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 6e4b1e018fee19e75316e6f5ab1633ddb28 |
| SANs: api.epsilon.exchange | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.epsilon.exchange. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| exchange. | DS published | 5011 | 8 | Verified |
| epsilon.exchange. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains |
| content-security-policy | default-src 'none' |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | no-referrer |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.epsilon.exchange/mcp | Verified | 200 | |
| http (plaintext) | http://api.epsilon.exchange/mcp | HTTPS enforced | 308 | https://api.epsilon.exchange/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cancel_order ~99
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.
| Name | Type | Req | Description |
|---|---|---|---|
| note | string | – | optional reason shown to the user (≤ 140 chars) |
| orderHash | string | yes | EIP-712 order hash to cancel (0x-hex, 32 bytes) — from list_orders |
No output schema declared.
No examples provided.
check_order ~137
Check 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.
| Name | Type | Req | Description |
|---|---|---|---|
| amountIn | string | yes | amount of tokenIn in RAW token units (decimal string, already scaled by the token's decimals) |
| tokenIn | string | yes | ERC-20 address of the token being sold (0x-hex) |
| tokenOut | string | yes | ERC-20 address of the token being bought (0x-hex) |
No output schema declared.
No examples provided.
get_approval ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | approval id returned by a place_*/cancel_order call (apr_…) |
No output schema declared.
No examples provided.
get_error_catalog ~48
Machine-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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_example ~50
Full source code of one Epsilon integration example, by id from list_examples. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | example id from list_examples, e.g. python-dca-cron |
No output schema declared.
No examples provided.
get_grant ~95
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_market_stats ~194
Market-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.
| Name | Type | Req | Description |
|---|---|---|---|
| scope | string | – | what to return: overview (default — top tokens by 30d volume + 24h volume + engine stats, the best first call), engine (order counts by status, fill counts, volume aggregates), or volume (per-token a… |
| window | string | – | for scope=volume: 1h, 24h (default), 7d, 30d, or all |
No output schema declared.
No examples provided.
get_me ~85
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_order ~81
One 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.
| Name | Type | Req | Description |
|---|---|---|---|
| orderHash | string | yes | EIP-712 order hash (0x-hex, 32 bytes) |
No output schema declared.
No examples provided.
get_orderbook ~86
The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| tokenA | string | yes | first token address of the pair (0x-hex) |
| tokenB | string | yes | second token address of the pair (0x-hex) |
No output schema declared.
No examples provided.
get_quote ~155
Best 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.
| Name | Type | Req | Description |
|---|---|---|---|
| amountIn | string | yes | amount of tokenIn in RAW token units (decimal string, already scaled by the token's decimals) |
| tokenIn | string | yes | ERC-20 address of the token being sold (0x-hex) |
| tokenOut | string | yes | ERC-20 address of the token being bought (0x-hex) |
No output schema declared.
No examples provided.
get_route ~278
Full 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.
| Name | Type | Req | Description |
|---|---|---|---|
| amountIn | string | yes | amount of tokenIn in RAW token units (decimal string, already scaled by the token's decimals) |
| orderType | string | – | order kind being priced (limit | stop_loss | take_profit | dca | trailing) — selects the fee cell served in feeLegs; omit for a direct swap |
| slippageBps | integer | – | slippage tolerance in basis points (default 100 = 1%) |
| tokenIn | string | yes | ERC-20 address of the token being sold (0x-hex) |
| tokenOut | string | yes | ERC-20 address of the token being bought (0x-hex) |
| triggered | boolean | – | with orderType=dca: the schedule gates on a trigger (triggered DCA fee cell) |
| wallet | string | – | optional maker wallet address — include it to get the exact feeLegs an order for this wallet must embed |
No output schema declared.
No examples provided.
list_examples ~46
List 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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_fills ~80
Executed 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | max rows (default 100, cap 500) |
| wallet | string | – | optional wallet address to filter by |
No output schema declared.
No examples provided.
list_orders ~119
A 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | max rows (default 100, cap 500) |
| status | string | – | order status filter, e.g. active, filled, cancelled |
| type | string | – | order type filter, e.g. limit, dca, trailing |
| wallet | string | – | maker wallet address to filter by (0x-hex) |
No output schema declared.
No examples provided.
place_dca_order ~306
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | TOTAL amount of tokenIn across the whole program, HUMAN units, decimal string |
| every | string | yes | interval between sells like 15m, 1h, 1d (minimum 1m) |
| executions | integer | yes | number of sells, 2–500; each sells amount/executions |
| note | string | – | optional one-line reason shown to the user (≤ 140 chars) |
| pauseOnRecovery | boolean | – | with triggerPrice: pause the program while price is back above the trigger |
| slippageBps | integer | – | slippage tolerance per execution in basis points (default 100) |
| tokenIn | string | yes | ERC-20 address being sold in slices (0x-hex) |
| tokenOut | string | yes | ERC-20 address being accumulated (0x-hex) |
| triggerPrice | string | – | optional: only sell while price is at or below this (tokenOut per tokenIn); omit to sell every interval regardless |
No output schema declared.
No examples provided.
place_limit_order ~316
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | amount of tokenIn in HUMAN units, decimal string |
| expiresIn | string | – | optional lifetime like 7d, 24h, 30m; default: never |
| limitPrice | string | yes | price in tokenOut per 1 tokenIn, decimal string (e.g. selling WETH for USDG at "4200") |
| note | string | – | optional one-line reason shown to the user (≤ 140 chars) |
| requestId | string | – | stable 32 lowercase hex characters for this trade; required for autonomous execution, reuse unchanged when retrying |
| slippageBps | integer | – | slippage tolerance for the fill in basis points (default 100) |
| tokenIn | string | yes | ERC-20 address being sold (0x-hex) |
| tokenOut | string | yes | ERC-20 address being bought (0x-hex) |
No output schema declared.
No examples provided.
place_market_order ~217
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | amount of tokenIn in HUMAN units, decimal string (e.g. "50" USDG, "0.25" WETH) — not raw units |
| note | string | – | optional one-line reason shown to the user on the approval page (≤ 140 chars) |
| slippageBps | integer | – | slippage tolerance in basis points (default 100 = 1%, max 5000) |
| tokenIn | string | yes | ERC-20 address being sold (0x-hex); resolve symbols with search_tokens first |
| tokenOut | string | yes | ERC-20 address being bought (0x-hex) |
No output schema declared.
No examples provided.
place_stop_order ~275
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | amount of tokenIn to sell, HUMAN units, decimal string |
| note | string | – | optional one-line reason shown to the user (≤ 140 chars) |
| requestId | string | – | stable 32 lowercase hex characters for this trade; required for autonomous execution, reuse unchanged when retrying |
| slippageBps | integer | – | slippage tolerance for the fill in basis points (default 100) |
| tokenIn | string | yes | ERC-20 address being sold when the stop triggers (0x-hex) |
| tokenOut | string | yes | ERC-20 address received (0x-hex), usually USDG |
| triggerPrice | string | yes | stop trigger in tokenOut per 1 tokenIn, decimal string — strict floor stop order; may remain unfilled if the price gaps below its minimum |
No output schema declared.
No examples provided.
place_trailing_order ~242
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | amount of tokenIn to sell, HUMAN units, decimal string |
| expiresIn | string | – | optional lifetime like 7d, 30d; default 7d |
| note | string | – | optional one-line reason shown to the user (≤ 140 chars) |
| slippageBps | integer | – | slippage tolerance for the fill in basis points (default 100) |
| tokenIn | string | yes | ERC-20 address being protected / sold when the trail triggers (0x-hex) |
| tokenOut | string | yes | ERC-20 address received (0x-hex), usually USDG |
| trailPercent | number | yes | distance below the running high that triggers the sell, in percent (e.g. 5 = 5%); 0.1–99 |
No output schema declared.
No examples provided.
search_docs ~98
Search the Epsilon developer documentation (API, auth, order signing, webhooks, rev-share, SDKs, MCP). Returns the most relevant doc sections. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | max sections to return (default 5, cap 10) |
| query | string | yes | what to look for in the Epsilon developer docs, e.g. 'sign an order', 'rate limits', 'webhooks signature' |
No output schema declared.
No examples provided.
search_tokens ~106
Resolve 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | max rows (default 20, cap 100) |
| search | string | – | symbol or name fragment (e.g. USDG), or an exact 0x address; empty returns the top tokens by 30-day volume |
No output schema declared.
No examples provided.
How do I install the Epsilon MCP server?
Epsilon is a hosted endpoint at https://api.epsilon.exchange/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.epsilon.exchange
claude mcp add --transport http alienbase-xyz-epsilon 'https://api.epsilon.exchange/mcp'
What is the Epsilon MCP server?
Epsilon is an MCP server listed in the public MCP registry as io.github.alienbase-xyz/epsilon. Non-custodial limit, stop-loss and DCA trading on Epsilon (Robinhood Chain) for AI agents. This page covers its hosted endpoint (https://api.epsilon.exchange/mcp).
Is the Epsilon MCP server safe to use?
Epsilon scores 88 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Epsilon MCP server expose?
Epsilon exposes 22 tools: cancel_order, check_order, get_approval, get_error_catalog, get_example, and 17 more. Their descriptions and schemas cost roughly 3,195 tokens of context every time the server is loaded.
Does the Epsilon MCP server require authentication?
No. We connected to Epsilon without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Epsilon MCP server still maintained?
Epsilon is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the Epsilon MCP server?
VerifyMCP ran 13 checks on Epsilon, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.