protogrid

Search / com.layerhop/mcp

LayerHop

R0· no sign-in

Best-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs.

v0.5.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality85new
Trust100of 100
Uptime, 30 days100%
Latency p50550 ms

Connect

8 clients · secrets stay placeholders
{
  "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

Quality 85 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations15 of 15 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints6 of 15 tools declare all four hints; missing: get_swap_link (destructiveHint, idempotentHint); list_chains (destructiveHint, idempotentHint); list_tokens (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 4,089 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 1 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @layerhop/[email protected]

15 tools, about 4,089 tokens to load them all · tool set 81480d94a568 · tools last changed 2026-10-19 · checked 2026-10-19 21:42 UTC

Tool changes

  • simulate_depositadded

    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.

  • disable_deposit_addressadded

    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.

  • refresh_deposit_addressadded

    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.

  • get_deposit_addressadded

    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.

  • list_deposit_addressesadded

    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.

  • create_deposit_addressadded

    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.

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.

Trust 100 / 100

provenance100
liveness100
freshness100
hygiene100

+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.

Dependencies

@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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.layerhop.com/mcp streamable-httpnoneyes100%550 ms2025-11-252026-10-19
packageregistryversionruntimesecrets
@layerhop/mcpnpm0.5.0–LAYERHOP_API_KEY

Tools (15)

build_transactionTurn 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_addressCreate 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_addressdestructiveDisable 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-onlyGet 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-onlyCheck 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-onlyGet 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-onlyCreate 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-onlyList 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-onlyList 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-onlyList 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-onlyList 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_addressAsk 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_submittedTell 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_depositTEST 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-onlyBuild 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.

Similar MCP servers

Official server.json
{
  "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."
}