mcp-hylo
Provides read-only tools for querying public Hylo protocol state on Solana mainnet via Solana RPC, including protocol mint supplies, Earn Pool state, wallet SPL token balances for Hylo mints, and static mechanism explanations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-hyloWhat's the current Hylo Earn Pool NAV and hyUSD held?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-hylo
A local, read-only MCP server for public Hylo state on Solana mainnet. It does not accept a private key, connect a wallet, build a transaction, simulate a trade, or sign anything. Source: Hylo SDK and Hylo onchain addresses.
Run
Node 22+ and pnpm are required.
pnpm install
pnpm build
pnpm smokeThe default endpoint is https://api.mainnet-beta.solana.com. Set SOLANA_RPC_URL to a different public or private RPC URL if needed. No RPC credential is required by the default endpoint. The smoke script calls the same four tool handlers used by the MCP server; it performs four read-only RPC requests. The wallet example is the public Hylo Earn Pool authority, not a person. Public RPC rate limits may affect repeated runs.
For Claude Desktop, add this to ~/Library/Application Support/Claude/claude_desktop_config.json under mcpServers, then restart Claude:
{
"mcpServers": {
"hylo": {
"command": "/opt/homebrew/bin/node",
"args": ["/Users/0xmarvel/superconductor/projects/value-drops/hylo-mcp/dist/index.js"]
}
}
}For Cursor, put the same mcpServers object in a project .cursor/mcp.json or use Cursor's MCP settings. Change the Node path if which node reports a different binary. Restart the client after rebuilding. The server uses stdio; stdout contains MCP messages, not status logs.
Related MCP server: Hyperliquid MCP Updated
Tools
get_protocol_state: hyUSD, xSOL and eHYUSD mint supplies; SOL-pool virtual stablecoin accounting supply; protocol and SOL-pool pause flags. These are not estimates of circulating float or aggregate collateralization.get_earn_pool_state: hyUSD in the Earn Pool, eHYUSD mint supply, eHYUSD NAV in hyUSD, pool pause flag. NAV is the reserve/supply ratio rounded up to six decimals as in Hylo's SDK math; it is not a market quote or a guaranteed redemption amount.get_wallet_exposure(wallet): direct SPL Token balances for those three mints in public token accounts owned by the supplied address. It does not count positions deposited into other protocols, custodial holdings, or a transaction history.explain_mechanism: short description with links to the core mechanism, xAsset mechanics, and hyUSD/eHYUSD. Static explanation; its slot is only an RPC connectivity check.
Every response includes a confirmed RPC slot, local UTC observation timestamp, sourceAccounts, and read-only: no transactions are built or signed. Numeric fields from one tool call come from a single RPC snapshot. Values are decimal strings to avoid JavaScript precision loss. A schema/owner/mint mismatch fails rather than returning an invented number.
Actual mainnet run
pnpm build && pnpm smoke passed on 2026-10-20. The following are selected fields from the four actual tool responses, not a cached data source. Run pnpm smoke to see full JSON including all source account addresses and notes.
get_protocol_state: slot 459364411, timestamp 2026-10-20T20:34:40.212Z, sourceAccounts HYEXCHtHkBagdStcJCp3xbbb9B7sdMdWXFNj6mdsG4hn / 9cd2sAfbBvKs4SX9YKo4dcjwP3TgTVQ8dT5koshGcDND / 5YMkXAYccHSGnHn9nob9xEvv6Pvka9DZWH7nTbotTu9E / 4sWNB8zGWHkh6UnmwiEtzNxL4XrN7uK9tosbESbJFfVs / HnnGv3HrSqjRpgdFmx7vQGjntNEoex1SU4e9Lxcxuihz, hyUSD.mintSupply 24860625.721152, xSOL.mintSupply 190373579.132589, eHYUSD.mintSupply 13822274.500846, solPoolVirtualStablecoinSupply 21391929.586304, protocolPaused false
get_earn_pool_state: slot 459364412, timestamp 2026-10-20T20:34:40.502Z, sourceAccounts HysTabVUfmQBFcmzu1ctRd1Y1fxd66RBpboy1bmtDSQQ / 2jk7miWrsTbt5hUSaCXPkEQPvuUMgbFLpgMzMQw3Z6ar / EqozKyMj7FVnLHc2cJj3VC25aBr4AhVh1cGM2WDajGe9 / HnnGv3HrSqjRpgdFmx7vQGjntNEoex1SU4e9Lxcxuihz, hyUSDInPool 20787119.512185, eHYUSDSupply 13822274.500846, eHYUSDNavInHyUSD 1.503886, paused false
get_wallet_exposure({"wallet":"5YrRAQag9BbJkauDtJkd1vsTquXT6N46oU8rJ66GDxHd"}): slot 459364413, timestamp 2026-10-20T20:34:40.809Z, source account EqozKyMj7FVnLHc2cJj3VC25aBr4AhVh1cGM2WDajGe9, hyUSD.balance 20787119.512185, xSOL.balance 0, eHYUSD.balance 0
explain_mechanism: slot 459364414, timestamp 2026-10-20T20:34:41.086Z, sourceAccounts HYEXCHtHkBagdStcJCp3xbbb9B7sdMdWXFNj6mdsG4hn / HysTabVUfmQBFcmzu1ctRd1Y1fxd66RBpboy1bmtDSQQ, source https://docs.hylo.so/protocol-overview/core-mechanismThe stdio server also answered MCP initialize, tools/list (four tools), and tools/call for get_protocol_state on mainnet at slot 459364549. All four smoke outputs include the read-only note.
Verification boundary
Program IDs, mint seeds and account layouts come from SDK commit 5071a0e. The derived token mints match Hylo's published addresses. Account discriminators, lengths, owners, mint addresses, fixed-point exponent and SPL decimals are checked against live RPC responses. Earn Pool reserve also matches the balance obtained through the independent getTokenAccountsByOwner call above.
I could not compare these values with hylo.so's web dashboard: the public site returned HTTP 429 and then a Vercel Security Checkpoint in a clean browser. That comparison is not verified. I left collateral ratio, xSOL NAV/effective leverage, SOL/USD and other pool prices, and exogenous pool totals out. They require current collateral vault balances, valid oracle updates, SDK price math and an independent public sanity check. The SOL-pool virtual supply is not the total hyUSD supply. No purported stability-pool APY is inferred from these accounts.
What I'd add next
Validate oracle freshness and LST reserve valuation against a public Hylo dashboard figure, then compute SOL-pool CR and xSOL NAV using the SDK's exact math.
Decode and cross-check each exogenous pool before claiming an aggregate collateral ratio or effective leverage.
Report additional Hylo mint balances only after pinning their SDK addresses and checking live mint ownership.
Available Tools
4 toolsexplain_mechanismA
Describe Hylo backing and xAsset leverage with links to Hylo docs, plus current mainnet slot.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It is a zero-parameter read-only-sounding tool, and the description does reveal what is returned (doc links plus the current mainnet slot), but it says nothing about freshness, caching, or whether the slot value is live.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the core content (backing and xAsset leverage) is front-loaded before the supplementary doc-links and slot clauses. Only minor polish would improve it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description gives an adequate picture of the returned content for a simple zero-param explanatory tool. It stops short of specifying scope limits or freshness, which is the only remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics burden to compensate for; the baseline for a no-param tool is 4. The description correctly implies no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Describe) applied to a specific resource (Hylo backing and xAsset leverage) and names the concrete payload additions (doc links, current mainnet slot). It is clearly differentiated from the sibling getters by being an explanatory rather than state-retrieval tool, though it never explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: an agent can infer this is for conceptual/background explanation rather than fetching live protocol state. There is no explicit when-to-use, no when-not-to-use, and no pointer to an alternative sibling, so the routing guidance is only inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earn_pool_stateB
Read hyUSD Earn Pool reserve and eHYUSD supply; compute eHYUSD NAV in hyUSD from SDK formula.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does disclose one non-obvious trait: the NAV value is derived via an SDK formula rather than read directly on-chain. However, it says nothing about data freshness, RPC dependencies, or failure behavior, so the disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the read targets front-loaded before the derived NAV computation. No filler, though the semicolon-joined clauses make it slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must describe returns, and it names the three values (reserve, eHYUSD supply, NAV) but not their units, precision, or structure. Adequate for a zero-param read tool but leaves the return shape underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. The description correctly adds no parameter commentary, as there is nothing to disambiguate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource: reading the hyUSD Earn Pool reserve and eHYUSD supply, plus computing eHYUSD NAV. It is clearly narrower than get_protocol_state, though it never explicitly says how it differs from that sibling, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when to prefer get_protocol_state or get_wallet_exposure instead, and no prerequisites. Usage is only implied by the read-only framing of the verb 'Read'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_stateA
Read verified Hylo SPL mint supplies, SOL-pool virtual stablecoin supply and pause flags at one mainnet slot. No inferred CR or price.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden; it does disclose meaningful traits — 'verified' data provenance, a point-in-time snapshot ('at one mainnet slot'), and explicit exclusions ('No inferred CR or price'). It still omits read-only declaration, auth/permission needs, and any rate or freshness caveats, so it is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with what is read before the exclusion note. Every clause carries information: resource list, snapshot scope, and the negative constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description usefully enumerates the data items returned (mint supplies, virtual stablecoin supply, pause flags) and what is not returned. It could say more about the return shape or units, but it is largely sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema coverage is 100%, so the baseline of 4 applies. There is nothing for the description to clarify beyond confirming the call needs no arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and enumerates the concrete resources returned: Hylo SPL mint supplies, SOL-pool virtual stablecoin supply, and pause flags. The scope is precise enough to separate it from get_earn_pool_state and get_wallet_exposure, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'No inferred CR or price' implies the agent should not call this for collateral-ratio or price data, which is a mild when-not signal. However, no alternative tool is named and no positive condition for choosing this tool is given, so usage remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_exposureA
Find direct SPL balances of hyUSD, xSOL and eHYUSD at one mainnet slot for any public address.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Public Solana wallet address (base58). No wallet connection required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden: it discloses read-like behavior, direct-only balances, and a point-in-time mainnet slot. It omits read-only/side-effect confirmation, the slot-selection rule, and return format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, naming the action, token set, scope, and address type efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema covers the lone wallet input, but with no output schema the description should clarify return shape and how the 'one mainnet slot' is chosen. These are meaningful gaps for an agent interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, and the schema fully documents it as a base58 public Solana wallet address with no wallet connection required. The description adds 'any public address' but little semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Find') and resource ('direct SPL balances of hyUSD, xSOL and eHYUSD') scoped to a public address. This clearly distinguishes it from the protocol/pool-state siblings and explain_mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope implies it is for direct wallet holdings rather than protocol or pool state, but it does not explicitly say when to choose it over get_earn_pool_state or explain_mechanism. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
explain_mechanism - First observed
get_earn_pool_state - First observed
get_protocol_state - First observed
get_wallet_exposure
TDQS
Scored across 4 tools
Each tool targets a clearly distinct scope: protocol-wide state, Earn Pool state, per-wallet balances, and a conceptual explainer. The descriptions make the boundary between get_protocol_state and get_earn_pool_state explicit, so no realistic misselection.
All four tools follow a consistent snake_case verb_noun pattern: get_protocol_state, get_earn_pool_state, get_wallet_exposure, explain_mechanism. The single 'explain' verb is a reasonable deviation for a documentation tool and remains readable.
Four read-only tools is thin but each covers a genuinely distinct surface for a state-inspection server. Slightly minimal, but nothing feels redundant or wasted.
The read-only domain is well covered: protocol state, Earn Pool NAV, wallet exposure for the key assets (hyUSD, xSOL, eHYUSD), and an explainer. Minor gaps like historical/timeseries or per-asset detailed state exist, but core read paths are addressed.
Maintenance
Related MCP Connectors
Read-only tools for agents: everything a Solana or Robinhood Chain wallet can get back (rent, wrapped SOL, LP fees, dead positions, failed deploys), whether a token is safe, when it unlocks, which protocol upgrades are live, and what a token operation costs. Every answer names the page where the user acts with their own wallet. Nothing here moves funds or holds keys.
Read-only Solana and crypto reserve-recovery scans, pricing, chain facts, and methodology.
Read-only Hyperliquid data for AI agents: fills, candles, funding, liquidations, wallet analytics.
Read-only Hyperliquid wallet, market and portfolio research with source timestamps and coverage.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides read-only access to Solana on-chain data, enabling natural language queries for wallet balances, token holdings, prices, transactions, and more via MCP-compatible clients.8MIT
- AlicenseCqualityDmaintenanceA read-only Model Context Protocol server for Hyperliquid that exposes over 30 tools to query public market data and user state via the Hyperliquid Info API, without requiring a private key.41MIT

magpie-mcpofficial
AlicenseNot gradedqualityAmaintenanceProvides LLMs and agents with read-only access to Magpie Capital's Solana lending protocol data, including live stats, collateral catalog, and per-token loan terms, plus guidance for agent borrowing via x402 endpoints.8 npm2MIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query live Solana wallet token holdings, native SOL balances, transaction history, transaction details, and SPL token mint top holders through keyless public endpoints.36 npmMIT