
Dex Data
com.donnyautomationPublished by donnyautomation.comv1.7.0Updated Nov 5, 2026
DEX market data, SEC EDGAR change oracles, LEI and US Treasury curve. 13 tools, x402 paid.
Overview
Local MCP server giving an assistant live DEX market data, Uniswap v4 hook risk, GLEIF/OFAC entity checks, SEC EDGAR deltas and the US Treasury yield curve…
- What you can do
- Query DEX state per chain: Base liquidity and TVL, Polygon token prices, Avalanche pool reserves, and cross-venue arbitrage scans on Polygon and Avalanche.
- Inspect Uniswap v4 hook permissions, custody class and source consensus.
- Look up legal entities by name in GLEIF and pull joined company dossiers with OFAC screening and SEC registration.
- Fetch SEC EDGAR deltas since a given date: filings, 8-K events by item code, and insider or ownership forms.
- Read the US Treasury par yield curve from 1 month to 30 years.
- Check the session's spend and the caps in force with a free local tool.
- When to use it
- Useful when an assistant needs current on-chain market state, arbitrage spreads, or regulatory and filing data about companies and issuers, and you want it without an API key or account. The free daily allowance covers light, occasional lookups; heavier use means paying per call.
- Requirements
- Runs locally over stdio with Node 18 or newer, installed via npx from the npm package. No account, API key or wallet is needed for the free tier. Paid calls beyond 25 per day require DEX_WALLET_KEY (an EVM private key holding USDC on Base) plus optional payment packages, and network access to the gateway.
Installation
In SourceWeft
- Open Dex Data in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
dex-data MCP server
For an agent
Everything you need to decide whether to call this server, and what it will cost, is in this section. Read no further unless a human is asking.
Install
Or, for any MCP host that reads a JSON config:
Cost model
The first 25 calls each day are free on every tool. No wallet, no signup, no API key, no account. The free answer is the full answer — nothing is stubbed, truncated or degraded. What the free tier limits is how many calls you make, not what is in them.
After 25 calls in a day, a tool returns a payment challenge instead of an answer. If — and only if — a wallet is configured, this server settles that challenge in USDC on Base and returns the answer. With no wallet it tells you the price and spends nothing.
Environment
The default ceiling is $0.05, which is exactly the dearest tool here. Lower it
below that and the $0.05 tools stop working — deliberately, and they say so.
The cap, and what "fails closed" means
Every paid call passes the same four gates, in this order, and any one of them refuses without paying:
- No wallet → never pays. This is the state you are in unless someone set a key.
- Price unreadable → refuses. A challenge whose amount cannot be parsed is not treated as free or as cheap; it is treated as unknown, and unknown does not get paid.
- Price above
DEX_MAX_PRICE_USD→ refuses, and names the price and the cap. - Would cross
DEX_MAX_SPEND_USDorDEX_MAX_CALLS→ refuses.
Accounting is in integer micro-USD, so a $1.00 budget at $0.05 a call buys
exactly 20 calls and not 19 — floating-point drift cannot quietly close the
budget early.
Call get_spend_budget before any loop over paid tools. It is free, local
and makes no network call, and it returns what has been spent and every cap in
force.
Tools
Thirteen tools. Twelve fetch from the gateway; one is local. Each of the twelve targets exactly one route, and together they are exactly the routes the storefront lists — there is no hidden catalogue and no tool pointing at something that was withdrawn.
Prices are USDC on Base (eip155:8453) and are read from the gateway's own
x-payment-info, not kept in step by hand.
Three things that will save you a wasted call
- The three
get_sec_*tools return DELTAS, not dumps.sinceis required and inclusive. Pass the date you last read; you get what has landed since. They reportmatchedandtruncated, so a cut-off delta is never mistaken for a complete one. - Missing arguments are refused here, not upstream. A call with a required
argument absent or empty is stopped before any request is made, and says
Nothing was requested and nothing was spent. It does not become?symbol=undefinedand it does not cost you a call. get_v4_hook_risknever outputs SAFE. It is capability analysis: it tells you what a hook is able to do to your trade, not whether its author intends to. TreatOPAQUEas unresolved, not as clean.
For a human
What this is
Thirteen MCP tools over live on-chain and regulatory data: DEX market state on Base, Polygon and Avalanche, Uniswap v4 hook security, GLEIF legal-entity lookup, OFAC-screened counterparty dossiers, SEC EDGAR change oracles and the US Treasury yield curve.
Zero dependencies, stdio, Node 18+. The payment packages are optional and are only loaded if a wallet is configured.
Why the tool list shrank in 1.7.0
1.6.1 shipped 23 tools. This release ships 13, and the nine-tool difference is the point.
The gateway behind this server sold 62 priced routes, and this package carried a tool for most of them — including geocoding, weather, web search, public holidays, RSS and IP lookup. Then the demand was measured across the whole recorded history of the storefront: 12 routes have either organic buyers or no substitute anywhere in the catalogue. The other 50 had between zero and two calls each, every one of them from a single wallet. On 2026-09-16 the storefront was cut to those 12, and this release follows it.
A tool list is not free. It is loaded into the model's context in every session, whether or not a single tool is called, and a tool that advertises a shelf the storefront no longer stocks costs the agent a turn to discover the gap. Removing nine tools makes the list shorter and every entry in it true.
The 50 dropped routes still work. They are served, priced and payable by anyone holding the URL. Removing a tool withdrew a recommendation, not a product.
Three of the nine went for a second, independent reason: the upstreams behind
geocode, reverse_geocode and get_weather retire on 2026-09-27. A tool that
will 404 in eleven days should not ship in a release today.
Upgrading from 1.6.x
Breaking, and deliberately so:
- No tool takes a
chainargument any more. Each tool targets one chain's route and writes the whole path itself. Sendingchainis now an error rather than being silently ignored — ignoring it would have sent a Polygon question to a Base route and charged for the answer. - These tools are gone, with the routes they used to call, which are all still
live:
get_token_price(/price),get_liquidity(/liquidity),get_pool_reserves(/reserves),find_arbitrage(/scan),get_best_venue(/route),get_slippage(/slippage),get_liquidity_risk(/risk),geocode,reverse_geocode,get_weather,search,get_search_suggestions,get_holidays,read_feed,get_random,url_to_markdown,geolocate_ip,get_gas,list_chainsandget_dex_spread(/call). - Chain-specific replacements exist for the routes the storefront kept:
get_base_liquidity,get_polygon_token_price,get_avalanche_pool_reserves,find_polygon_arbitrage,find_avalanche_arbitrage. - New:
get_v4_hook_risk,get_company_dossier,get_sec_filings,get_sec_events,get_sec_insiders. lookup_lei,get_treasury_yield_curveandget_spend_budgetare unchanged.
If you were calling a removed tool, the route behind it still answers. Call it
directly, at list price, at https://x402.donnyautomation.com.
Paying
Set DEX_WALLET_KEY to an EVM private key holding USDC on Base, and install the
optional payment packages:
Without both, this server cannot spend anything: it returns the price and the payment instructions and stops. With them, it pays only what the caps in the agent section above allow.
- Fund it with USDC on Base and nothing else. x402's
exactscheme is EIP-3009: you sign an off-chain authorization and the facilitator broadcasts and pays the gas, so the wallet needs zero ETH. - Use a burner. The key sits in your MCP client config in plaintext. A few dollars of USDC, never a main wallet.
- Spend is capped and fails closed —
DEX_MAX_SPEND_USD(default $1 total for the process),DEX_MAX_PRICE_USD(default $0.05 for any single call) andDEX_MAX_CALLS(default 200). Hitting any one stops payment and returns a plain explanation rather than continuing to spend. The asking price is read from the 402 challenge and refused before paying if it exceeds the ceiling. A cap that cannot be parsed (DEX_MAX_SPEND_USD=1,00) now refuses to start rather than silently evaluating toNaN, which switched every cap off. get_spend_budgetreports what this session has spent and the caps in force.- Since 1.7.0 the caps, the integer accounting and the receipts log live in
x402-budget, a standalone package in this repo that holds no wallet.pay.mjsis the adapter that reads theDEX_*variables and supplies the signing function. Behaviour is unchanged.
Use a wallet you funded for this and nothing else. This server holds no custody, takes no fee and sends nothing anywhere except the payment the challenge asks for — but the key is yours to scope.
Development
The five no-network suites run in CI on every push and pull request. The coverage check runs at release, because it is the only one that needs the gateway to be up.
test/fixtures/challenge-402.json is a verbatim recording of the live gateway's
402 challenge for each of the twelve routes. Re-record it if prices change; the
suites assert that each tool's description quotes the same price the challenge
asks for.
Links
- Gateway and full API: https://x402.donnyautomation.com
- Source: https://github.com/donnywin85/dex-data-mcp
- MIT licensed.
Source: README.md at commit 189c86e
Tools
0Version history
1- v1.7.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts