tenzro-layerzero
Server Details
LayerZero V2 tools over MCP: message quotes, OFT transfers, Stargate bridging, DVN lookups.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 21 of 21 tools scored. Lowest: 3.5/5.
Each tool has a clearly distinct purpose: quoting, sending, listing, tracking, or encoding for different protocols (generic EndpointV2, OFT, Stargate, Value Transfer API). No two tools overlap in functionality, even the multiple quoting tools are differentiated by the protocol they target.
All tools use the prefix 'lz_' followed by a verb_noun pattern (e.g., lz_list_chains, lz_send_message, lz_broadcast_signed_tx). Conventions are consistent throughout, with minor exceptions like lz_oft_list which is still intuitive.
21 tools cover a comprehensive range of cross-chain operations (quoting, sending, tracking, listing, etc.) for multiple LayerZero protocols. The count is appropriate for the server's purpose without being excessive or insufficient.
The tool set covers most essential workflows: fee estimation, message construction, signing/broadcasting, tracking, and querying metadata. Minor gaps exist (e.g., no explicit retry or destination verification tool), but agents can work around them using the available tools.
Available Tools
21 toolslz_broadcast_signed_txAInspect
Broadcast a pre-signed Ethereum transaction via eth_sendRawTransaction on the source chain RPC. Use this as the canonical broadcast path for calldata produced by lz_send_message (EndpointV2.send), lz_oft_send (OFT.send), lz_stargate_send (StargatePoolNative.sendToken), and lz_transfer_build (Value Transfer API steps). Returns the transaction hash on success. The caller must construct calldata, sign locally with msg.value = nativeFee from the corresponding quote tool, then submit the RLP-encoded signed tx hex here.
| Name | Required | Description | Default |
|---|---|---|---|
| src_chain | Yes | Source chain name (e.g. 'ethereum', 'arbitrum', 'base', 'optimism', 'polygon', 'avalanche', 'bsc') | |
| signed_tx_hex | Yes | Pre-signed Ethereum transaction in hex format (the 0x-prefixed RLP-encoded signed transaction). Construct calldata via lz_send_message / lz_oft_send / lz_stargate_send / lz_transfer_build, sign locally with msg.value = nativeFee, then submit here. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses the core behavior (broadcast via eth_sendRawTransaction, returns tx hash) and the required prior signing step. However, it does not mention failure modes, pending state, or network errors, which are important for a broadcast tool. Slightly below perfect but still strong.
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?
The description is a single compact paragraph of three sentences, each providing essential information: what it does, when to use it, and the required preconditions. No redundancy or fluff, front-loaded with the core action.
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?
Given the tool's complexity (LayerZero broadcast) and the presence of an output schema (assumed to document return format), the description covers the full workflow and return value. It lacks some details on error handling, but is complete enough for an agent to use 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?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that signed_tx_hex must be RLP-encoded and that calldata comes from specific tools, which aids in constructing correct inputs. This extra context justifies a score above baseline.
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?
Description clearly states the tool broadcasts a pre-signed transaction via eth_sendRawTransaction on the source chain RPC. It lists specific sibling tools (lz_send_message, etc.) that produce the calldata, effectively distinguishing this broadcast step from other operations like encoding, quoting, or sending messages.
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?
Explicitly instructs when to use this tool ('as the canonical broadcast path for calldata produced by...') and outlines the prerequisite workflow: construct calldata, sign locally with msg.value = nativeFee, then submit the RLP-encoded signed tx hex. This provides clear guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_encode_optionsAInspect
Encode LayerZero TYPE_3 options bytes for use with EndpointV2.quote() and EndpointV2.send(). TYPE_3 (version tag 0x0003) is the current standard options format for LayerZero V2. Builds binary options with executor worker ID 0x01 and option type 1 (lzReceive) with configurable gas limit and native token drop amount. Returns the hex-encoded options bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| gas_limit | No | Gas limit for lzReceive execution on destination (default: 200000) | |
| native_drop | No | Native token amount to drop on destination in wei (default: 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility. It explains the internal structure (worker ID, option type) and output (hex-encoded bytes). Although it does not explicitly state it is a pure function with no side effects, the behavior is clearly non-destructive and safe.
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?
The description is four sentences, each adding critical information: purpose, format standard, internal structure, and output. It is front-loaded with the primary action and avoids redundant or verbose language.
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?
Given the tool's simplicity (2 optional parameters, no nested objects, clear output), the description covers all necessary context: usage context, parameter roles, output type, and standard version. It is complete for an agent to invoke 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 input schema already describes both parameters (gas_limit, native_drop) with defaults, providing 100% coverage. The description adds context by mentioning 'configurable' gas limit and native drop, reinforcing the schema. No additional parameter details are necessary.
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 clearly states the tool encodes LayerZero TYPE_3 options bytes for EndpointV2.quote() and send(), specifying the version, worker ID, and option type. It distinguishes from sibling tools like lz_quote_fee or lz_send_message by focusing on options encoding.
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 description explicitly states the tool is for use with EndpointV2.quote() and EndpointV2.send(), providing clear when-to-use context. It does not explicitly list when not to use or alternatives among siblings, but the specificity is sufficient for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_get_chain_rpcAInspect
Get the public RPC URL for a supported chain by name. These RPC URLs are used by the server for eth_call queries against EndpointV2.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_name | Yes | Chain name to get RPC URL for (e.g. 'ethereum', 'arbitrum', 'base') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It states the RPC URL is 'public' and used by the server for eth_call queries, implying read-only access. However, it does not explicitly declare side effects (e.g., no mutations), authentication needs, rate limits, or output format. This is adequate for a simple lookup tool but lacks details that could be critical for an agent (e.g., error handling if chain is unsupported).
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?
The description is two sentences with zero waste. The first sentence front-loads the core purpose (get RPC URL by chain name), and the second provides relevant context (usage by server). Every word earns its place, and the structure is optimal for quick parsing by an AI agent.
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?
Given the tool's simplicity (one parameter), complete schema coverage, and the existence of an output schema (per context signals), the description is fully sufficient. It does not need to explain return values as per rules. The description covers the tool's function and one-line behavioral context, making it complete for an agent to select and invoke 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?
Schema coverage is 100% for the single parameter chain_name, with a description that matches the tool's description. The tool description adds no new semantic details beyond the schema (e.g., format, allowed values from a list). According to guidelines, baseline is 3 when schema coverage is high, as the schema already provides sufficient meaning. The description does not compensate with additional context like example values beyond what's in 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?
The description clearly states the tool's verb ('Get') and resource ('public RPC URL for a supported chain by name'), making the purpose unambiguous. It distinguishes itself from sibling tools like lz_list_chains (which lists chain names) by specifying it retrieves the actual RPC endpoint. The additional context about usage for eth_call queries reinforces the tool's role without causing confusion.
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?
No guidance is provided on when to use this tool versus alternatives (e.g., when a chain is supported, prerequisites like network connection). The description does not mention when-not-to-use or how this tool relates to other tools in the same suite. The context is entirely implicit, leaving the agent to infer usage from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_get_deploymentsAInspect
Get LayerZero V2 deployment addresses across all supported chains. Returns EndpointV2, SendLib, ReceiveLib, DVN, and Executor addresses from the LayerZero Metadata API.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses it is a read operation against the LayerZero Metadata API and returns specific address types. Though it does not mention rate limits or idempotency, for a simple GET-like call the transparency is good. No contradictions with annotations (none provided).
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 sentences deliver the full purpose and outcome without any wasted words. The description is front-loaded with the core action and immediately provides specifics. It earns its space.
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?
Given there are no parameters and an output schema exists, the description covers the main aspects: what it returns and from where. It could mention data freshness or whether it includes all chains always, but overall it is sufficiently complete for a no-input tool.
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 are zero parameters, and the input schema defines no properties. The description correctly adds no parameter details since none exist. Baseline for 0 params is 4, which is appropriate here.
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 uses a specific verb ('Get') and clearly identifies the resource ('LayerZero V2 deployment addresses across all supported chains'). It further lists the specific addresses returned (EndpointV2, SendLib, etc.), making its purpose unambiguous and distinct from sibling tools that handle transactions, quotes, or messages.
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?
No explicit guidance on when to use or avoid this tool is provided. However, the purpose implies it is the tool to retrieve deployment addresses, and with zero parameters, it is straightforward. Sibling tools like lz_quote_fee or lz_send_message have different purposes, so confusion is unlikely, but explicit usage notes are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_get_messageAInspect
Get a LayerZero message by its GUID (Global Unique Identifier). The GUID is returned by EndpointV2.send() and can also be found in the Scan API message tracking response.
| Name | Required | Description | Default |
|---|---|---|---|
| guid | Yes | LayerZero message GUID (hex, with or without 0x prefix) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It implies a read-only operation by saying 'Get', but does not explicitly confirm no side effects, auth requirements, or rate limits. The GUID format expectation is helpful.
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?
The description is concise with two sentences, front-loading the main purpose. Every sentence adds essential information without redundancy.
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 simple get-by-ID tool with a single parameter, the description is complete. It explains the parameter thoroughly, and since an output schema exists, the return value is covered.
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?
Schema coverage is 100% and the schema describes the parameter as 'hex, with or without 0x prefix'. The description adds value by explaining the GUID origin (from EndpointV2.send() or Scan API), which helps the agent understand the parameter source.
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 clearly states the tool retrieves a LayerZero message by GUID, specifying the verb 'Get' and the resource. It explains what a GUID is and where to find it, distinguishing it from sibling tools that query by address.
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 description explains where the GUID comes from (EndpointV2.send() or Scan API) but does not explicitly state when to use this tool versus alternatives like lz_get_messages_by_address. There is no guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_get_messages_by_addressAInspect
Get LayerZero messages for a specific wallet address. Queries the Scan API for all messages sent or received by the given address. Returns message details including status, source/destination chains, and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of messages to return (default: 10) | |
| address | Yes | Wallet address to get LayerZero messages for (hex, with or without 0x prefix) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that it queries the Scan API, returns message details (status, source/destination chains, timestamps), and implies read-only behavior. However, it does not address potential pagination or rate limits, and the phrase 'all messages' slightly conflicts with the limit parameter.
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?
The description is concise: two sentences that front-load the purpose and then provide additional context. Every sentence adds value without redundancy.
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?
Given the presence of an output schema, the description's mention of return fields (status, chains, timestamps) is adequate. The tool is simple with few parameters, but the lack of usage guidelines and minor inconsistency in 'all messages' vs limit prevent a perfect score.
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?
Schema coverage is 100% with descriptions for both parameters. The description adds no additional meaning beyond the schema; it does not elaborate on the limit parameter or address format beyond what is already provided in the input 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?
The description clearly states the tool retrieves LayerZero messages for a specific wallet address, using a specific verb ('Get') and resource ('messages by address'). It distinguishes itself from sibling tools like lz_get_message by focusing on an address-based query rather than retrieving a single message.
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?
No explicit guidance on when to use this tool versus alternatives. The description implies usage for retrieving all messages for an address, but does not contrast with lz_get_message or other sibling tools. The context suggests it is appropriate for address-based queries, but lacks when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_list_chainsAInspect
List all 16 chains supported by this LayerZero MCP server with their Endpoint IDs (EIDs). Includes Ethereum, Arbitrum, Optimism, Polygon, BSC, Avalanche, Base, Solana, zkSync, Sei, Sonic, Berachain, Story, Monad, MegaETH, and Tron. EIDs are used in EndpointV2.quote() and EndpointV2.send() to identify destination chains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description explains the tool returns a list of chains with EIDs and mentions usage in quote/send functions, adding transparency beyond the empty schema.
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 sentences with no unnecessary words. First sentence states purpose, second provides details and use context. Highly efficient.
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?
Given no parameters and existence of output schema, the description is complete. It covers purpose, content, and relevance to other tools.
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?
No parameters required. Baseline 4 as per guidelines. Description adds no parameter info, but none is 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?
Clearly states the tool lists all 16 supported chains with their Endpoint IDs. The verb 'List' and resource 'chains' are specific, and it distinguishes from sibling tools like lz_get_chain_rpc.
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?
Provides clear context: use when you need the list of supported chains and their EIDs. No explicit exclusions, but context implies when not to use (e.g., for RPC details).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_list_dvnsAInspect
List all Decentralized Verifier Networks (DVNs) registered in the LayerZero V2 protocol. DVNs verify cross-chain messages by attesting to source chain state on the destination chain. Returns DVN names, addresses, supported chains, and configuration details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description transparently states the operation ('List all') and expected output. It does not explicitly note that the tool is read-only or mention any potential side effects, which is acceptable for a simple list operation.
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?
The description is three sentences: one for purpose, one for context, and one for output. It is clear, concise, and front-loaded with the most important information.
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 parameters and an output schema present, the description sufficiently covers the tool's purpose and output. It provides enough context for an AI agent to understand what DVNs are and what the tool returns.
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 has no parameters, and the input schema is fully described (100% coverage). The description adds no additional parameter information because none is 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?
The description clearly states the tool lists all Decentralized Verifier Networks (DVNs) registered in the LayerZero V2 protocol, with a concise explanation of what DVNs do and what the output includes. It distinguishes itself from sibling tools that list other entities (chains, tokens, etc.).
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 description implicitly indicates that this tool is for listing DVNs, but it does not explicitly mention when to use it versus alternatives or any prerequisites. However, since it is a simple list operation with no parameters, such guidance is less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_oft_listAInspect
List all available OFT (Omnichain Fungible Token) deployments registered in the LayerZero Metadata API. Returns token symbols, contract addresses, supported chains, and deployment details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions return values but does not disclose behavioral traits like data freshness, authentication requirements, or error handling.
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?
Single sentence, 20 words, front-loaded with purpose and outputs; no redundant information.
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?
Given no parameters and an output schema, the description details the return values sufficiently for a list tool, though lacks pagination or limits info.
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?
Zero parameters with 100% schema coverage; description adds no parameter info but baseline for zero params is 4.
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 uses specific verb 'List' and resource 'all available OFT deployments', and clearly distinguishes from sibling listing tools by naming the exact resource (OFT tokens vs chains or DVNs).
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 description implies usage for retrieving OFT deployment data but does not explicitly state when to use this tool over siblings or provide conditions/limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_oft_quoteAInspect
Quote an OFT (Omnichain Fungible Token) transfer via the LayerZero Metadata API. Returns estimated fees, exchange rates, and transfer details for bridging tokens between chains using LayerZero's OFT standard.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to transfer (in base units as string) | |
| dst_chain | Yes | Destination chain name (e.g. 'arbitrum') | |
| src_chain | Yes | Source chain name (e.g. 'ethereum') | |
| token_symbol | Yes | Token symbol (e.g. 'USDC', 'USDT', 'ETH') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose side effects, authentication needs, or read-only nature. It only states what it returns, not behavioral traits.
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 efficient sentences, front-loaded with purpose, no waste.
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?
Output schema exists, so return values are covered. Description mentions key outputs (fees, rates, details), making it complete for this tool.
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?
Schema coverage is 100% with adequate descriptions for each parameter. The description adds no extra meaning beyond the schema, meeting baseline.
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?
Description clearly states the tool quotes OFT transfers, uses specific terminology, and returns fees/exchange rates. It distinguishes from send tools but not explicitly from other quote siblings like lz_transfer_quote.
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?
Implied usage for OFT token transfers, but no explicit guidance on when to use this vs. other quote tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_oft_sendAInspect
Build transaction calldata for an OFT (Omnichain Fungible Token) send() call on any OFT contract. OFT V2 uses uint64 amountSD (shared decimals) instead of uint256 amountLD. Returns the hex-encoded calldata for OFT.send(SendParam, MessagingFee, refundAddress). The caller must first call lz_quote_fee or lz_oft_quote to get the messaging fee, then sign and broadcast this transaction with msg.value = nativeFee.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to send in shared decimals (amountSD, uint64 — OFT V2 uses shared decimals, not local decimals) | |
| dst_chain | Yes | Destination chain name (e.g. 'arbitrum', 'base', 'solana') | |
| gas_limit | No | Gas limit for lzReceive on destination (default: 200000) | |
| recipient | Yes | Recipient address (hex, 20 bytes for EVM — will be left-padded to bytes32) | |
| src_chain | Yes | Source chain name (e.g. 'ethereum', 'arbitrum', 'base') | |
| min_amount | No | Minimum amount to receive in shared decimals (minAmountSD, uint64 — default: 90% of amount) | |
| oft_address | Yes | OFT contract address on the source chain (hex, 20 bytes) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses returns hex-encoded calldata for OFT.send(), explains V2 uses uint64 amountSD, required prior steps, and msg.value requirement. It does not cover error cases but suffices.
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 sentences with no fluff, front-loaded with core purpose, then details. Every sentence adds value.
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?
Given 7 params (5 required) and no output schema, the description covers main points. Could mention the output is usable with lz_broadcast_signed_tx, but generally complete.
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?
Schema coverage is 100% so baseline is 3. The description adds meaningful clarifications: amount is in shared decimals, recipient left-padded to bytes32, min_amount defaults to 90% of amount, gas_limit defaults to 200000.
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 clearly states it builds transaction calldata for an OFT send() call, specifying the verb 'build' and resource 'OFT send() call'. It distinguishes from siblings by mentioning OFT specifically and noting version differences (V2).
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 description provides explicit usage sequence: first call lz_quote_fee or lz_oft_quote to get messaging fee, then sign and broadcast with msg.value = nativeFee. It lacks explicit when-not-to-use but gives sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_quote_feeAInspect
Estimate cross-chain messaging fee via LayerZero EndpointV2.quote() eth_call. Returns the native fee and LZ token fee required to send a message from the source chain to the destination endpoint. Uses the on-chain EndpointV2 contract at 0x1a44076050125825900e736c501f859c50fE728c. Selector: 0xdb9d28c6.
| Name | Required | Description | Default |
|---|---|---|---|
| dst_eid | Yes | Destination chain LayerZero Endpoint ID (e.g. 30110 for Arbitrum) | |
| src_chain | Yes | Source chain name (e.g. 'ethereum', 'arbitrum', 'base') | |
| sender_hex | Yes | Hex-encoded sender address (20 bytes, with or without 0x prefix) | |
| message_hex | Yes | Hex-encoded message payload (with or without 0x prefix) | |
| options_hex | No | Hex-encoded LayerZero V3 options bytes (default: lzReceive with 200000 gas if omitted) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It correctly indicates the tool performs a read-only eth_call, which implies no state mutation. The contract address and selector are disclosed, adding transparency. However, it does not mention potential reverts or gas cost implications, which prevents a perfect score.
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?
The description is concise (two sentences) and begins with the primary purpose. It includes essential details (contract address, selector) without redundancy. Minor improvements could be made by removing redundant phrases like 'eth_call' since the schema implies it, but overall it is well-structured.
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?
Given that an output schema exists (not shown but indicated), the description does not need to detail return values. It covers the core functionality, target contract, and technical specifics. It lacks discussion of edge cases (e.g., invalid chains, default options), but for a simple fee estimation tool, it is reasonably complete.
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 input schema has 100% description coverage, so the baseline is 3. The description adds value by mentioning the function selector (0xdb9d28c6) and the contract address, but it does not elaborate on parameter formats or constraints beyond the schema. The schema already explains each parameter adequately.
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 clearly states the tool estimates cross-chain messaging fees via a specific on-chain function (LayerZero EndpointV2.quote()). It specifies the return values (native fee and LZ token fee) and provides the contract address and selector. This makes the purpose unambiguous and distinct from sibling tools like lz_oft_quote or lz_stargate_quote.
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 description implies the tool is used to estimate fees before sending a message, but it does not explicitly state when to use it versus alternatives like lz_oft_quote or lz_stargate_quote. No usage conditions, exclusions, or recommendations are provided, leaving the agent to infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_send_messageAInspect
Build transaction calldata for EndpointV2.send() to dispatch a cross-chain message via LayerZero V2. Returns the hex-encoded calldata that should be submitted as a transaction to the EndpointV2 contract on the source chain. The caller must sign and broadcast the transaction with msg.value set to the nativeFee from lz_quote_fee. Selector: 0x5e280f11.
| Name | Required | Description | Default |
|---|---|---|---|
| dst_eid | Yes | Destination chain LayerZero Endpoint ID | |
| receiver | Yes | Hex-encoded receiver address as bytes32 (left-padded to 32 bytes) | |
| src_chain | Yes | Source chain name (e.g. 'ethereum', 'arbitrum', 'base') | |
| message_hex | Yes | Hex-encoded message payload | |
| options_hex | No | Hex-encoded LayerZero V3 options bytes (default: lzReceive with 200000 gas if omitted) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns hex-encoded calldata, the required follow-up action (sign and broadcast), and the selector. It does not cover error conditions or prerequisites, but the core behavior is 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?
The description is three sentences, each adding unique information: purpose, usage instruction, and selector. No redundant or fluff content. The key information is front-loaded.
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?
Given the presence of an output schema (not shown but mentioned), the description does not need to explain return values. It covers the tool's action, how to use the output, and a default option. It could mention validation of inputs (e.g., invalid src_chain), but overall it is reasonably complete for a calldata-building tool.
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?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds value by stating the default behavior for options_hex (lzReceive with 200000 gas) and the selector. This provides context 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?
The description clearly states the tool builds transaction calldata for EndpointV2.send() to dispatch a cross-chain message via LayerZero V2. It specifies the verb (build), resource (EndpointV2.send() calldata), and context (cross-chain message). This distinguishes it from siblings like lz_broadcast_signed_tx and lz_quote_fee.
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 description explains that the output calldata must be signed and broadcast with msg.value set to the nativeFee from lz_quote_fee. It provides the function selector. While it doesn't explicitly state when not to use the tool or suggest alternatives, the instructions for subsequent steps are clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_stargate_quoteAInspect
Quote a Stargate V2 native bridge transfer fee. Calls quoteSend() on the StargatePoolNative contract (ETH, USDC, or USDT) to get the exact LayerZero messaging fee for bridging between supported EVM chains. Returns the fee in wei and the minimum amount received after slippage. Supported tokens: ETH (Ethereum/Optimism/Arbitrum/Base), USDC (6 chains), USDT (6 chains).
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token symbol: 'ETH', 'USDC', or 'USDT' | |
| amount | Yes | Amount to bridge in base units (wei for ETH, micro-units for USDC/USDT) | |
| dst_chain | Yes | Destination chain name (e.g. 'base', 'ethereum', 'arbitrum') | |
| src_chain | Yes | Source chain name (e.g. 'optimism', 'ethereum', 'base', 'arbitrum') | |
| wallet_address | Yes | Sender/recipient wallet address (hex, 20 bytes) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the tool calls quoteSend on specific contracts and returns fees in wei and minimum amount. This implies a read-only operation, though it does not explicitly state that no state change occurs or what permissions are needed.
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?
The description is concise (4 sentences) and front-loaded with the main purpose. Every sentence adds useful information without redundancy.
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?
Given the presence of an output schema and 100% schema coverage, the description adequately covers key details including contract function, supported tokens/chains, and return values. No gaps identified for a quoting tool.
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?
Schema coverage is 100% and the description adds value beyond schema by listing supported tokens (ETH, USDC, USDT) and chains (e.g., Ethereum, Optimism, Arbitrum, Base for ETH; 6 chains for USDC/USDT), plus clarifying what the return values are.
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 clearly states the tool quotes a Stargate V2 native bridge transfer fee, specifying the contract (StargatePoolNative) and the function (quoteSend). It distinguishes from sibling tools that target different protocols (e.g., lz_oft_quote for OFT).
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 description implies use for Stargate V2 native bridge quotes but does not explicitly state when to prefer this tool over siblings like lz_oft_quote or lz_transfer_quote. No when-not-to-use or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_stargate_sendAInspect
Build transaction calldata for a Stargate V2 sendToken() bridge transfer. Returns hex-encoded calldata, the target contract address, and the msg.value to include. The caller must sign and broadcast the transaction. For native ETH, msg.value = nativeFee + bridgeAmount. For ERC-20 tokens (USDC/USDT), approve the pool contract first, then msg.value = nativeFee only. Supported: ETH (4 chains), USDC (6 chains), USDT (6 chains).
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token symbol: 'ETH', 'USDC', or 'USDT' | |
| amount | Yes | Amount to bridge in base units (wei for ETH, micro-units for USDC/USDT) | |
| dst_chain | Yes | Destination chain name (e.g. 'base', 'ethereum', 'arbitrum') | |
| src_chain | Yes | Source chain name (e.g. 'optimism', 'ethereum', 'base', 'arbitrum') | |
| slippage_bps | No | Slippage tolerance in basis points (default: 50 = 0.5%) | |
| wallet_address | Yes | Sender/recipient wallet address (hex, 20 bytes) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses return values (calldata, contract, msg.value) and key behavioral details like msg.value computation and ERC-20 approval requirement. It does not mention error handling or limitations, but covers essential behavior without annotations.
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?
The description is concise with 5 sentences, front-loaded with the main purpose, and well-structured. Every sentence adds information without redundancy.
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?
Given the complexity of Stargate bridging, the description covers key prerequisites, return values, and token/chain support. It is complete for most use cases, though some edge cases (e.g., unsupported chains) are omitted.
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?
Schema coverage is 100%, so parameters are described. The description adds significant value by explaining how to compute msg.value based on token type and the relationship between amount and nativeFee, which is not in 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?
The description clearly states the tool builds transaction calldata for Stargate V2 sendToken() bridge transfer. It distinguishes itself from sibling tools like lz_broadcast_signed_tx and lz_stargate_quote by specifying it returns calldata, requiring separate broadcast.
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 description explicitly states the caller must sign and broadcast the transaction, and provides specific rules for native ETH vs ERC-20 tokens. However, it does not directly compare to sibling tools or state when to prefer this over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_track_messageAInspect
Track a cross-chain LayerZero message by the source transaction hash. Queries the LayerZero Scan API for message status: INFLIGHT, CONFIRMING, DELIVERED, FAILED, or BLOCKED. Returns the full message details including source/destination chains, GUID, and current status.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | Transaction hash to track LayerZero message for (with or without 0x prefix) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes that it queries LayerZero Scan API, lists possible message statuses, and specifies return details (chains, GUID, status). No annotations provided, so description carries the burden and does it well, though missing potential error conditions.
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?
Three purposeful sentences, no wasted words, front-loaded with primary action.
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?
Given output schema exists and schema coverage is 100%, description sufficiently covers functionality and return values without gaps.
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?
Single parameter tx_hash is fully described in schema with 100% coverage. Tool description adds context about 0x prefix flexibility, exceeding schema info.
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?
Clearly states the tool tracks a cross-chain LayerZero message by source transaction hash, with specific verb and resource. Implicitly differentiates from siblings like lz_get_message which may use GUID.
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?
Implies usage when transaction hash is available, but no explicit guidance on when not to use or alternatives like lz_get_message.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_transfer_buildAInspect
Build signable transaction steps from a Value Transfer API quote. Takes a quoteId from lz_transfer_quote and returns pre-built transaction calldata (to, data, value) that the caller can sign and broadcast. Handles approval and bridge steps automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | Quote ID returned from lz_transfer_quote |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses key behaviors: it returns pre-built calldata for signing, and automatically handles approval and bridge steps. No contradictions.
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 concise sentences, front-loaded with purpose, followed by details. No wasted words.
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?
Given the tool's complexity and the presence of an output schema, the description covers the flow, automatic steps, and return format. Could mention prerequisites like valid quote, but overall complete.
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?
Schema coverage is 100%, and description adds value by clarifying that quote_id originates from lz_transfer_quote, providing useful context beyond the schema's description.
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?
Clearly states it builds signable transaction steps from a quote, specifying input (quoteId) and output (calldata). Distinguishes from sibling lz_transfer_quote and lz_broadcast_signed_tx by indicating its role in the pipeline.
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?
Implicitly tells when to use: after obtaining a quote from lz_transfer_quote. No explicit when-not-to-use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_transfer_chainsAInspect
List all chains supported by the LayerZero Value Transfer API. Returns 130+ chains including Solana, all EVM L1s and L2s, and their chain keys for use in lz_transfer_quote.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool lists all chains (read-only, no side effects) and returns 130+ chains and keys. This is adequate for a simple query tool, though it omits details like potential caching or rate limits.
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?
The description is two sentences, front-loaded with the main action ('List all chains'), and every word adds value. No fluff or redundancy.
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?
Given zero parameters and an output schema (which explains return values), the description is complete. It specifies the scope (130+ chains, specific examples) and the primary use case. Minor improvement could be differentiating from lz_list_chains, but not necessary for completeness.
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 has zero parameters, so the baseline is 4. The description adds no parameter info, which is appropriate. No additional meaning is needed beyond what the schema already conveys (empty 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?
The description clearly states the tool lists chains supported by the LayerZero Value Transfer API, naming specific examples (Solana, EVM L1s/L2s) and the output's purpose (chain keys). This distinguishes it from sibling tools like lz_list_chains, which may serve different purposes.
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 description explicitly says the chain keys are for use in lz_transfer_quote, providing clear downstream context. It does not discuss when not to use this tool or compare to all siblings, but the guidance is sufficient for an AI agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_transfer_quoteAInspect
Get a cross-chain transfer quote from the LayerZero Value Transfer API. This is the newest LayerZero API (replaces deprecated Stargate REST API) supporting 130+ chains including Solana. Returns quotes with fees, estimated times, and a quote ID for building transaction steps. Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE as the token address for native ETH.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to transfer in base units (wei for ETH, smallest unit for tokens) | |
| dst_chain | Yes | Destination chain key (e.g. 'base', 'solana', 'ethereum') | |
| dst_token | Yes | Destination token address (use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native ETH) | |
| src_chain | Yes | Source chain key (e.g. 'optimism', 'ethereum', 'base', 'solana') | |
| src_token | Yes | Source token address (use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native ETH, or contract address for ERC-20) | |
| dst_address | Yes | Recipient wallet address on the destination chain | |
| src_address | Yes | Sender wallet address on the source chain |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns quotes with fees, estimated times, and a quote ID for building transaction steps. It also provides a special token address constant. It does not mention potential errors, rate limits, or authentication, but for a read-only quote tool, the transparency is adequate.
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?
The description is concise with about 4 sentences, front-loading the purpose and then adding details. There is minimal redundancy, though it could combine some information (e.g., merging the first two sentences). Overall, it is well-structured and efficient.
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?
Given the presence of an output schema (not shown but hinted), the description sufficiently covers return values (fees, times, quote ID). With 7 required parameters and no nested objects, the description provides all necessary context for using the tool effectively, including replacing the deprecated API.
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?
Schema coverage is 100%, so baseline 3. The description adds significant value by explaining the native ETH address constant and specifying that amounts are in base units (wei). It also gives examples of chain keys like 'optimism' and 'solana', which are not in the schema descriptions.
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 clearly states the tool gets a cross-chain transfer quote from the LayerZero API, noting it replaces the deprecated Stargate API and supports 130+ chains. It distinguishes itself from siblings like lz_stargate_quote (deprecated) and lz_transfer_build (builds transaction steps) by mentioning the returned elements (fees, estimated times, quote ID).
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 description implies this is the updated tool to use instead of the deprecated Stargate API, but it does not explicitly state when to use this versus other quote tools like lz_oft_quote or lz_quote_fee. It lacks exclusion criteria or specific context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_transfer_statusAInspect
Check the status of a Value Transfer API transfer by its quote ID. Returns current transfer status, source/destination transaction hashes, and delivery progress.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | Quote ID or transfer ID to check status for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the return values but does not disclose that it is read-only, nor mentions prerequisites (e.g., quote_id must exist) or potential errors. The transparency is adequate for a simple status check but could be improved.
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 concise sentences that are front-loaded with the main purpose and list key return values with no wasted words.
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?
Given the output schema exists, the description sufficiently explains the tool's action and expected output. It lacks details about error cases or polling behavior, but for a simple status check, it is complete enough.
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?
Schema coverage is 100%, and the parameter description in the schema already explains the quote_id. The description adds marginal value by reiterating its use, but does not provide new information 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?
The description clearly states the tool checks the status of a transfer using a quote ID, specifying the verb ('check'), resource, and identifier. It also lists the return values, differentiating it from sibling tools that handle building, quoting, or sending transfers.
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 description implies usage after initiating a transfer to check its progress, but lacks explicit guidance on when not to use or comparisons to alternatives. However, the narrow purpose and clear identifier make the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lz_transfer_tokensAInspect
List tokens available for cross-chain transfer via the LayerZero Value Transfer API. Optionally filter by chain. Returns token addresses, symbols, decimals, and which chains they're available on.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Filter tokens by chain key (optional, e.g. 'optimism', 'solana') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | Underlying response payload verbatim. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description details return fields (addresses, symbols, decimals, chains) and optional filtering. Could mention if it's cached or requires API key, but still adequate.
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 sentences with zero waste: first specifies action, second clarifies filtering and output. Perfectly front-loaded.
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?
Given one parameter, 100% schema coverage, and output schema, description is almost complete. Could mention pagination but not critical.
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?
Only one parameter with full schema coverage. Description adds meaning by stating filtering effect and return values beyond 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?
Description clearly states verb 'List', resource 'tokens', and context 'cross-chain transfer via LayerZero'. Distinguishes from sibling tools like lz_transfer_build by being a listing tool.
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?
Explicitly mentions optional chain filtering and what is returned, providing clear context. But no guidance on when not to use or alternatives among sibling listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!