Search / com.layerhop/mcp
LayerHop
R0· no sign-inBest-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs.
v0.5.0 · active · repository · website · descriptor JSON · versions
Search / com.layerhop/mcp
R0· no sign-inBest-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs.
v0.5.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"layerhop": {
"type": "http",
"url": "https://mcp.layerhop.com/mcp"
}
}
}claude mcp add --transport http layerhop https://mcp.layerhop.com/mcp[mcp_servers.layerhop]
url = "https://mcp.layerhop.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"layerhop": {
"type": "remote",
"url": "https://mcp.layerhop.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"layerhop": {
"type": "http",
"url": "https://mcp.layerhop.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=layerhop&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmxheWVyaG9wLmNvbS9tY3AifQ%3D%3D"
}{
"servers": {
"layerhop": {
"type": "http",
"url": "https://mcp.layerhop.com/mcp"
}
}
}{
"mcpServers": {
"layerhop": {
"httpUrl": "https://mcp.layerhop.com/mcp"
}
}
}extensions:
"layerhop":
enabled: true
name: "layerhop"
type: streamable_http
uri: "https://mcp.layerhop.com/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations15 of 15 tools declare readOnlyHint or destructiveHinttools.directory_hints6 of 15 tools declare all four hints; missing: get_swap_link (destructiveHint, idempotentHint); list_chains (destructiveHint, idempotentHint); list_tokens (destructiveHint, idempotentHint); …tools.token_costabout 4,089 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes, stability.rug_pulltool history recorded for 1 of the 7 days neededdeps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @layerhop/[email protected]simulate_depositaddedTEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settles with webhooks. The amount decides the outcome: base units ending in 4001 -> refunded, 4002 -> failed, anything else -> filled. Moves no real funds. Fails with a live key.
disable_deposit_addressaddedDisable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user must stop using it. Cannot be undone. Confirm with the user first. Needs a LayerHop API key.
refresh_deposit_addressaddedAsk LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent funds, then call get_deposit_address after ~15-30 s. Needs a LayerHop API key.
get_deposit_addressaddedGet one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, filled, refunded, failed) and tx hashes. Tell the user: send ONLY srcToken on srcChain to the address (other tokens or chains may be lost for good), at least $1 worth; refundTo must be the user's own address on srcChain, never an exchange (CEX) deposit address. Needs a LayerHop API key; test keys (lh_test_) give a fake sandbox address that must never receive real funds. Read-only.
list_deposit_addressesaddedList the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read-only.
create_deposit_addressaddedCreate an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing needed. Non-custodial: the address belongs to the liquidity provider (Relay), LayerHop never holds funds. Tell the user: send ONLY srcToken on srcChain to the address (other tokens or chains may be lost for good), at least $1 worth; refundTo must be the user's own address on srcChain, never an exchange (CEX) deposit address. Needs a LayerHop API key; test keys (lh_test_) give a fake sandbox address that must never receive real funds. The LayerHop MCP server holds no private keys and never signs or broadcasts transactions.
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-100% +updated-1d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
@layerhop/[email protected] npmthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp.layerhop.com/mcp streamable-http | none | yes | 100% | 550 ms | 2025-11-25 | 2026-10-19 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@layerhop/mcp | npm | 0.5.0 | – | LAYERHOP_API_KEY |
build_transaction | Turn a quoteId from get_quote into the UNSIGNED transaction the user's own wallet must sign: EVM {chainId, to, data, value in wei, optional ERC-20 approval to send first} or Solana {serializedTx base64}. Includes plain-language signing steps. The LayerHop MCP server holds no private keys and never signs or broadcasts transactions. Only use this when the user has their own signer and explicitly wants raw transaction data, after they confirmed the quote; otherwise give them the swap link. |
create_deposit_address | Create an address the user sends tokens to; every deposit is swapped/bridged and delivered as toToken on toChain to recipient. No wallet connection or signing needed. Non-custodial: the address belongs to the liquidity provider (Relay), LayerHop never holds funds. Tell the user: send ONLY srcToken on srcChain to the address (other tokens or chains may be lost for good), at least $1 worth; refundTo must be the user's own address on srcChain, never an exchange (CEX) deposit address. Needs a LayerHop API key; test keys (lh_test_) give a fake sandbox address that must never receive real funds. The LayerHop MCP server holds no private keys and never signs or broadcasts transactions. |
disable_deposit_addressdestructive | Disable a deposit address: LayerHop stops tracking it (no more orders or webhooks for it). The provider may still process funds sent to it later, so the user must stop using it. Cannot be undone. Confirm with the user first. Needs a LayerHop API key. |
get_deposit_addressread-only | Get one deposit address with its 20 most recent deposits (orders, quoteId starting with dep_): amount deposited and delivered, status (submitted, pending, filled, refunded, failed) and tx hashes. Tell the user: send ONLY srcToken on srcChain to the address (other tokens or chains may be lost for good), at least $1 worth; refundTo must be the user's own address on srcChain, never an exchange (CEX) deposit address. Needs a LayerHop API key; test keys (lh_test_) give a fake sandbox address that must never receive real funds. Read-only. |
get_order_statusread-only | Check the status of a swap or bridge after the source transaction was sent: pending, filled (funds delivered), refunded, failed, or unknown (some same-chain providers; check the tx on an explorer). Read-only. |
get_quoteread-only | Get the best price to swap or bridge tokens, within one chain or across chains (EVM <-> Solana). Asks every liquidity provider and returns the best quote plus alternatives with human-readable amounts, minimum received after slippage, fees (LayerHop fee, partner fee, provider fee, gas) and ETA. Returns a quoteId (valid until expiresAt) and a layerhop.com swapLink a human can open to review and sign. Read-only: The LayerHop MCP server holds no private keys and never signs or broadcasts transactions. Always show the user the fees and output and get confirmation before proceeding. |
get_swap_linkread-only | Create a https://layerhop.com/swap link prefilled with the swap, which the user opens to review the live quote and fees and sign in their own wallet. This is the default, safest way to execute a swap. The LayerHop MCP server holds no private keys and never signs or broadcasts transactions. The amount is in human units. |
list_chainsread-only | List every blockchain LayerHop can swap from or to: slug, numeric chain id, name, VM type (evm or svm = Solana) and native coin. Read-only. |
list_deposit_addressesread-only | List the deposit addresses of the API key's account and mode (live or test), newest first: address, route, status, deposit count. Needs a LayerHop API key. Read-only. |
list_ordersread-only | List LayerHop orders (swaps built or submitted through LayerHop) where the address is the sender or recipient, newest first, with status. Public data (addresses only). Read-only. |
list_tokensread-only | List LayerHop's built-in tokens on one chain (symbol, contract address or mint, decimals). Symbols can be used directly in get_quote; other tokens can be quoted by address. Read-only. |
refresh_deposit_address | Ask LayerHop to check a deposit address for new deposits right away (instead of waiting for the next scheduled check). Call it when the user says they sent funds, then call get_deposit_address after ~15-30 s. Needs a LayerHop API key. |
report_submitted | Tell LayerHop that the user's wallet broadcast the transaction for a quoteId, so the order is tracked (status, webhooks). Call this once after broadcasting, with the EVM tx hash (0x + 64 hex) or Solana signature. Idempotent. Does not sign or send anything. |
simulate_deposit | TEST MODE ONLY (lh_test_ key and a test deposit address): record a fake deposit so the integration can be tested end to end; it becomes a test order that settles with webhooks. The amount decides the outcome: base units ending in 4001 -> refunded, 4002 -> failed, anything else -> filled. Moves no real funds. Fails with a live key. |
simulate_transactionread-only | Build the transaction for a quoteId and dry-run it on-chain (EVM eth_call + gas estimate from the sender; Solana simulateTransaction) without sending anything or recording an order. Reports whether it would succeed, gas / compute units, whether an ERC-20 approval is still needed, and the error if it would fail. Read-only: The LayerHop MCP server holds no private keys and never signs or broadcasts transactions. |
Schemas: list_tools.
{
"name": "com.layerhop/mcp",
"title": "LayerHop",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://mcp.layerhop.com/mcp",
"type": "streamable-http"
}
],
"version": "0.5.0",
"packages": [
{
"version": "0.5.0",
"transport": {
"type": "stdio"
},
"identifier": "@layerhop/mcp",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "LAYERHOP_API_KEY",
"format": "string",
"isSecret": true,
"description": "Optional LayerHop API key from dashboard.layerhop.com, for higher rate limits"
},
{
"name": "LAYERHOP_INTEGRATOR",
"format": "string",
"description": "Optional partner ID, so swaps made through your agent earn your partner fee"
}
]
}
],
"repository": {
"url": "https://github.com/layerhop/layerhop-js",
"source": "github",
"subfolder": "packages/mcp"
},
"websiteUrl": "https://docs.layerhop.com/guides/ai-agents",
"description": "Best-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs."
}