mcp-registry/io.github.icmoore/echoledger-mcp · v0.2.3
Also listed as glama/echoledger/echoledger-mcp
As of 2026-10-25 01:45 UTC, the Icmoore Echoledger MCP server is unknown with a Glimind reliability score of 86/100 (grade B). Over the last 30 days it answered 99.7% of Glimind's liveness checks. It had 4 outages in 90 days, with a median recovery of 8 minutes.
Live LP analytics — Uniswap V2/V3, Balancer, Curve stableswap: PnL, health, slippage, depeg risk.
Point your MCP client at this streamable-http endpoint: https://mcp.echoledger.ai/mcp
The endpoint did not complete an MCP handshake.
Check the URL, TLS certificate and that the server answers a JSON-RPC "initialize" POST. How to fix →
11 of 11 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.icmoore%2Fecholedger-mcp/fixes
{
"name": "AnalyzeBalancerLP",
"description": "Analyze a 2-asset Balancer weighted-pool LP position's PnL. Decomposes impermanent loss using the weighted-pool formula where the base token's weight affects IL magnitude. Values are denominated in opp-token units per BalancerImpLoss's convention; fee income is not attributed in v1 because Balancer pools only expose vault-level fees with no per-LP attribution.",
"inputSchema": {
"type": "object",
"required": [
"lp_init_amt",
"entry_base_amt",
"entry_opp_amt",
"pool_address",
"rpc_url",
"pool_type"
],
"properties": {
"rpc_url": {
"type": "string",
"description": "An Ethereum (or L2) JSON-RPC URL used to read live pool state. Required; supplied by you per call (BYO-RPC) and may carry your provider key. The endpoint stores and logs nothing — the URL is never persisted or written to logs."
},
"chain_id": {
"type": "integer",
"description": "Optional guard. If supplied and the RPC reports a different chain id, the call is rejected. Defaults to 1 (Ethereum mainnet) conceptually; omit to skip the check."
},
"pool_type": {
"enum": [
"balancer"
],
"type": "string",
"description": "Which protocol the pool at pool_address belongs to. This tool accepts only balancer (2-asset weighted pool)."
},
"lp_init_amt": {
"type": "number",
"description": "Pool shares held by this position, in human units."
},
"block_number": {
"type": "integer",
"description": "Optional block number to pin the read to a historical block. Omit to read the latest block."
},
"pool_address": {
"type": "string",
"description": "On-chain address of the pool/pair to analyze (Uniswap V2/V3 pair, Balancer weighted pool, or Curve stableswap pool). Required. Lowercase, uppercase, or checksum casing all work."
},
"entry_opp_amt": {
"type": "number",
"description": "Amount of opp (second) token originally deposited."
},
"entry_base_amt": {
"type": "number",
"description": "Amount of base (first) token originally deposited."
},
"holding_period_days": {
"type": [
"number",
"null"
],
"description": "Optional holding period in days. If supplied, real_apr is annualized from net_pnl."
}
}
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "AnalyzePosition",
"description": "Analyze why a Uniswap V2 or V3 LP position is gaining or losing money. Decomposes PnL into impermanent loss, accumulated fees, and net result, with optional real APR if a holding period is supplied. Returns current value, hold value, IL percentage, fee income, net PnL, real APR, and a diagnosis label.",
"inputSchema": {
"type": "object",
"required": [
"lp_init_amt",
"entry_x_amt",
"entry_y_amt",
"pool_address",
"rpc_url",
"pool_type"
],
"properties": {
"rpc_url": {
"type": "string",
"description": "An Ethereum (or L2) JSON-RPC URL used to read live pool state. Required; supplied by you per call (BYO-RPC) and may carry your provider key. The endpoint stores and logs nothing — the URL is never persisted or written to logs."
},
"chain_id": {
"type": "integer",
"description": "Optional guard. If supplied and the RPC reports a different chain id, the call is rejected. Defaults to 1 (Ethereum mainnet) conceptually; omit to skip the check."
},
"lwr_tick": {
"type": [
"integer",
"null"
],
"description": "Lower tick of the position (V3 positions only; null for V2)."
},
"upr_tick": {
"type": [
"integer",
"null"
],
"description": "Upper tick of the position (V3 positions only; null for V2)."
},
"pool_type": {
"enum": [
"uniswap_v2",
"uniswap_v3"
],
"type": "string",
"description": "Which protocol the pool at pool_address belongs to. This tool accepts uniswap_v2 | uniswap_v3."
},
"entry_x_amt": {
"type": "number",
"description": "Amount of token0 originally deposited at position entry."
},
"entry_y_amt": {
"type": "number",
"description": "Amount of token1 originally deposited at position entry."
},
"lp_init_amt": {
"type": "number",
"description": "LP token amount held by the position (position size in human units)."
},
"block_number": {
"type": "integer",
"description": "Optional block number to pin the read to a historical block. Omit to read the latest block."
},
"pool_address": {
"type": "string",
"description": "On-chain address of the pool/pair to analyze (Uniswap V2/V3 pair, Balancer weighted pool, or Curve stableswap pool). Required. Lowercase, uppercase, or checksum casing all work."
},
"holding_period_days": {
"type": [
"number",
"null"
],
"description": "Optional holding period in days. If supplied, real_apr is annualized from net_pnl."
}
}
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "AnalyzeStableswapLP",
"description": "Analyze a 2-asset Curve-style Stableswap LP position's PnL using the amplified-invariant IL formula where small depegs can produce surprisingly large IL at high A. Values are in peg-numeraire (tokens valued 1:1); fee income is not attributed in v1 (pool-global only); positions whose implied alpha is in the unreachable regime return None on il_percentage, net_pnl, and real_apr.",
"inputSchema": {
"type": "object",
"required": [
"lp_init_amt",
"entry_amounts",
"pool_address",
"rpc_url",
"pool_type"
],
"properties": {
"rpc_url": {
"type": "string",
"description": "An Ethereum (or L2) JSON-RPC URL used to read live pool state. Required; supplied by you per call (BYO-RPC) and may carry your provider key. The endpoint stores and logs nothing — the URL is never persisted or written to logs."
},
"chain_id": {
"type": "integer",
"description": "Optional guard. If supplied and the RPC reports a different chain id, the call is rejected. Defaults to 1 (Ethereum mainnet) conceptually; omit to skip the check."
},
"pool_type": {
"enum": [
"stableswap"
],
"type": "string",
"description": "Which protocol the pool at pool_address belongs to. This tool accepts only stableswap (2-asset plain Curve pool)."
},
"lp_init_amt": {
"type": "number",
"description": "LP tokens held by this position, in human units."
},
"block_number": {
"type": "integer",
"description": "Optional block number to pin the read to a historical block. Omit to read the latest block."
},
"pool_address": {
"type": "string",
"description": "On-chain address of the pool/pair to analyze (Uniswap V2/V3 pair, Balancer weighted pool, or Curve stableswap pool). Required. Lowercase, uppercase, or checksum casing all work."
},
"entry_amounts": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 2,
"minItems": 2,
"description": "Per-token entry amounts in pool insertion order. Exactly 2 entries (2-asset pools only in v1)."
},
"holding_period_days": {
"type": [
"number",
"null"
],
"description": "Optional holding period in days. If supplied, real_apr is annualized from net_pnl."
}
}
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.icmoore/echoledger-mcp"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.icmoore/echoledger-mcp"}) over MCP.
CalculateSlippage ~661 tokensSimulatePriceMove ~657 tokensAssessDepegRisk ~630 tokensAnalyzePosition ~616 tokensSimulateStableswapMove ~614 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.icmoore%2Fecholedger-mcp?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.icmoore%2Fecholedger-mcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.icmoore%2Fecholedger-mcp.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.icmoore%2Fecholedger-mcp.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.icmoore%2Fecholedger-mcp?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:a2d9ec196ba72e59…, first seen 2026-10-17, included at leaf 3304 of 74,589. Version history · verify what your client received.
Compare: most reliable finance servers · most reliable data servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-25 01:45 UTC, the Icmoore Echoledger MCP server is unknown with a Glimind reliability score of 86/100 (grade B). Over the last 30 days it answered 99.7% of Glimind's liveness checks. It had 4 outages in 90 days, with a median recovery of 8 minutes.
Icmoore Echoledger MCP server advertises 11 tools, including AnalyzeBalancerLP, AnalyzePosition, AnalyzeStableswapLP, AssessDepegRisk, BuildStateTwin.
Point your MCP client at this streamable-http endpoint: https://mcp.echoledger.ai/mcp
Glimind scanned all 11 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.