streamable-httpApache-2.0updated 1mo ago
EchoLedger's MCP server. Analyze live Uniswap V2/V3, Balancer, and Curve stableswap pools โ positions, price moves, pool health, rug signals, slippage, and depeg risk โ or build a portable State Twin for off-MCP analysis, from any MCP-compatible AI client. Reads real chain state via a caller-supplied RPC; the endpoint itself is authless.
What can you do with EchoLedger?
echoledger-mcp
EchoLedger's MCP server. Analyze live Uniswap V2/V3, Balancer, and Curve stableswap pools โ positions, price moves, pool health, rug signals, slippage, and depeg risk โ or build a portable State Twin for off-MCP analysis, from any MCP-compatible AI client. Reads real chain state via a caller-supplied RPC; the endpoint itself is authless.
Endpoint: https://mcp.echoledger.ai/mcp (streamable-HTTP, authless).
Install
Claude Desktop
Settings โ Integrations โ Add server.
URL: https://mcp.echoledger.ai/mcp
Claude Code
claude mcp add --transport http echoledger https://mcp.echoledger.ai/mcp
Cursor
Settings โ MCP โ Add new MCP server.
Name: echoledger ยท Type: http ยท URL: https://mcp.echoledger.ai/mcp
Smithery
Listed at smithery.ai/servers/ic3moore/echoledger โ connect via the Smithery gateway from any supported client.
Tools
The endpoint ships 11 tools over live Uniswap V2/V3, Balancer weighted (2-asset), and Curve stableswap (2-asset) pools. Two surfaces:
- 10 reactive primitives โ one question, one answer, one chain read.
Four of them also take a vector input (e.g.
price_change_pcts[],amounts_in[]) to sweep a whole grid/curve in one call. BuildStateTwinโ returns a portable State Twin (the pool's state as JSON) that a client rehydrates locally to run unlimited counterfactuals off the MCP, zero further RPC.
Every call takes pool_address, rpc_url, and pool_type, plus an
optional chain_id guard and block_number pin โ nothing is stored.
Each reactive tool is protocol-specific and advertises only the
pool_type values it accepts; pointing one at an unsupported type
returns a clean error before any chain read.
Full reference โ params, returns, and a verified example per tool:
docs/TOOLS.md.
Scope: the Balancer tools cover 2-asset weighted pools; the
stableswap tools cover 2-asset plain Curve pools (rate-bearing pools
โ metapools, LSD โ are a later release). A stableswap tool pointed at a
3-coin or rate-bearing pool fails cleanly.
Uniswap V2/V3
AnalyzePosition
PnL decomposition for an LP position โ impermanent loss, fees, and net.
"Analyze my position in the V3 USDC/ETH pool."
SimulatePriceMove
"What if price moves X%?" โ projected reserves, position value, and IL.
"If ETH drops 20%, what happens to my V3 ETH/DAI position?"
CheckPoolHealth
TVL, reserves, LP concentration, and recent activity for a pool.
"Is this V3 pool healthy?"
DetectRugSignals
Threshold-based rug flags on a pool's on-chain state.
"Any rug signals on this V2 pair?"
CalculateSlippage
Slippage, price impact, and max trade size for a given trade.
"How much slippage on a 50 ETH buy in this V3 pool?"
Balancer (2-asset weighted)
AnalyzeBalancerLP
PnL decomposition for a 2-asset Balancer weighted-pool position, using the weighted-pool IL formula where the token weight shapes IL magnitude.
"How is my 80/20 BAL/WETH Balancer position doing?"
SimulateBalancerMove
"What if the base token moves X%?" โ projected value and IL on a 2-asset weighted pool, weight-aware.
"If BAL drops 30%, what happens to my BAL/WETH Balancer LP?"
Curve stableswap (2-asset plain)
AnalyzeStableswapLP
PnL decomposition for a 2-asset Curve stableswap position via the amplified-invariant IL formula โ small depegs can produce outsized IL at high A.
"Analyze my position in the crvUSD/USDC pool."
SimulateStableswapMove
"What if the peg shifts X%?" โ projected value and IL on a 2-asset stableswap pool. At high A, large shocks may be physically unreachable (returned as null).
"What happens to my USDC/DAI Curve LP if USDC depegs 2%?"
AssessDepegRisk
IL across a ladder of depeg levels (default 2%, 5%, 10%, 20%, 50%) for a 2-asset stableswap position, with an optional constant-product benchmark.
"How exposed is my crvUSD/USDC position to a depeg?"
State twin builder (all four pool types)
BuildStateTwin
Reads a pool once and returns a portable State Twin โ the pool's state
as JSON (__type__ + fields + a content_hash). A client rehydrates it
locally and runs unlimited counterfactuals (price moves, IL, slippage)
off the MCP, with zero further RPC โ build once, run N. Spans all four
pool types. See the twin round-trip in docs/TOOLS.md and
the echoledger package.
"Build me a reusable twin of the USDC/ETH 0.05% pool."
(Honest gap: it's a single-block STATE twin โ history-derived health
metrics stay server-side reads inside CheckPoolHealth/DetectRugSignals.)
How it works
echoledger-mcp reads live Uniswap V2/V3, Balancer, and Curve
stableswap pool state through a caller-supplied RPC endpoint (BYO-RPC,
passed per tool call). The endpoint is authless โ no API key, no
account. Nothing is logged or stored; each call pulls state, runs the
analysis, and returns a typed result.
The analytics are powered by open-source DeFiPy โ the same primitives, twin, and tools that run against synthetic recipes, now pointed at real pools. The math is open; the reports are paid.
Roadmap
- v0.2 โ Balancer & Stableswap live reads โ shipped. The 5 Balancer/Stableswap tools went live on DeFiPy 2.2's LiveProviders (2-asset weighted + 2-asset plain Curve).
- v0.2.2 โ honest schemas, vectors & the twin builder โ shipped.
Per-tool
pool_typeenums; vectorized scenario inputs on the four scenario tools; andBuildStateTwinโ the 11th tool โ for portable, off-MCP twin analysis. - N-asset & rate-bearing pools โ 3-asset Balancer, N-coin and rate-bearing (metapool/LSD) Curve, once the upstream DeFiPy primitives extend past 2 assets.
- Distribution polish โ OCI-package listing, DNS-verified namespace, and OIDC auto-publish.
Develop
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
Run the server over streamable HTTP (binds to $PORT, default 8080):
PORT=8080 python -m echoledger_mcp.server # endpoint at http://localhost:8080/mcp
Or over stdio for a local MCP Inspector smoke-test:
python -m echoledger_mcp.server --stdio
npx @modelcontextprotocol/inspector python -m echoledger_mcp.server --stdio
Tests (offline โ fake provider + real twin/primitives):
pytest tests/
Live-RPC gate (real mainnet Uniswap V2/V3, Balancer, and Curve pools; needs your own RPC):
ECHOLEDGER_TEST_RPC_URL="https://eth-mainnet.example/v2/<key>" pytest tests/test_live.py -v
License
Apache-2.0. See LICENSE and NOTICE.
This project adapts code from DeFiPy (Apache-2.0).
See also
- DeFiPy (open-source substrate): https://defipy.org
- EchoLedger: https://echoledger.ai
- State Twins paper: https://arxiv.org/abs/2605.11522
Install
Add EchoLedger to your client. Pick the one you use.
claude mcp add --transport http echoledger https://mcp.echoledger.ai/mcpcodex mcp add echoledger --url https://mcp.echoledger.ai/mcp{
"mcpServers": {
"echoledger": {
"url": "https://mcp.echoledger.ai/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"echoledger": {
"type": "http",
"url": "https://mcp.echoledger.ai/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"echoledger": {
"url": "https://mcp.echoledger.ai/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"echoledger": {
"serverUrl": "https://mcp.echoledger.ai/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance19/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 26 days ago
- Has a release history
- Repository is not archived
- Licensed Apache-2.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.2.3Latest | Aug 5, 2026 |