tenzro-chainlink
Server Details
Chainlink tools over MCP: CCIP cross-chain, data feeds, data streams, VRF, proof of reserve.
- 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 3.9/5 across 21 of 21 tools scored. Lowest: 3.2/5.
All tools are grouped by service prefix (ccip_, chainlink_, ds_, por_, vrf_) and each has a unique purpose. For example, ccip_get_fee and ccip_send_message are clearly distinct, and even within similar functions like chainlink_get_price and ds_get_report, the descriptions clarify they target different data sources (on-chain feeds vs. low-latency streams). No overlap.
Tool names follow a consistent pattern of service prefix + verb_noun (e.g., ccip_get_fee, ds_list_feeds, vrf_request_random). Even longer names like chainlink_broadcast_signed_tx adhere to the pattern. There is no mixing of cases or inconsistent verb forms.
21 tools covering multiple Chainlink products (CCIP, Data Feeds, Data Streams, VRF, Functions, Automation, Proof of Reserve) is well-scoped. Each tool serves a distinct needed capability without bloat, and the count is within the ideal range for a focused integrated server.
The tool set covers core read and write operations for most services (e.g., full CCIP workflow from fee estimation to message sending and tracking). However, there are minor gaps: no tool to create or manage subscriptions (only get), and no direct Functions request execution (only cost estimation and subscription query). These are workable but not fully complete.
Available Tools
21 toolsccip_get_feeAInspect
Estimate CCIP cross-chain messaging fee via Router.getFee() eth_call. Returns the native fee required to send a CCIP message from the source chain to the destination chain. Supports Ethereum, Base, and Arbitrum as source chains.
| Name | Required | Description | Default |
|---|---|---|---|
| data_hex | No | Hex-encoded data payload to send (with or without 0x prefix). Use '0x' or '' for empty | |
| receiver | Yes | Hex-encoded receiver address on the destination chain (with or without 0x prefix) | |
| fee_token | No | Fee token address. Use zero address (0x0000...0000) for native gas token payment | |
| src_chain_id | Yes | Source chain identifier: 'ethereum', 'base', 'arbitrum', or a chain ID number | |
| token_amounts | No | Token amounts to transfer as JSON array of {token, amount} objects. Empty array for message-only | |
| dst_chain_selector | Yes | Destination CCIP chain selector (uint64). E.g. 4949039107694359620 for Arbitrum |
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 carries full burden. It discloses that the call is an eth_call (simulated, no state change) and returns the required native fee, but could further clarify that it does not send the message or explain any side effects. No contradictions found.
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 extremely concise with two sentences: the first defines the tool's primary action and method, the second adds supported source chains. Every sentence is informative and there is no 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 6 parameters (3 required) and the presence of an output schema (which handles return value documentation), the description is largely complete. It could briefly note that the fee estimate depends on parameters like data length or token amounts, but this is not essential.
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 baseline is 3. The description does not add additional parameter details beyond what is already in the schema. It mentions supported source chains, but this is already covered in the src_chain_id 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?
The description explicitly states the tool estimates a CCIP cross-chain messaging fee via Router.getFee() eth_call, clearly specifying the verb, resource, and method. It also lists supported source chains (Ethereum, Base, Arbitrum), distinguishing it from sibling tools that handle other CCIP operations like lanes, rate limits, 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?
The description implies usage for fee estimation before sending a CCIP message, but does not explicitly state when to use this tool versus alternatives like ccip_send_message. It provides clear context but lacks exclusions or references to related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_get_lanesBInspect
Get available CCIP lanes (source-destination chain pairs) from the Chainlink REST API. Optionally filter by source or destination chain selector.
| Name | Required | Description | Default |
|---|---|---|---|
| environment | No | Environment: 'mainnet' or 'testnet'. Defaults to 'mainnet' | |
| dest_chain_selector | No | Optional destination chain selector to filter lanes | |
| source_chain_selector | No | Optional source chain selector to filter lanes |
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 carry the full burden. It only states 'Get', implying a read-only operation, but fails to disclose request limitations, error potential, pagination, or authorization requirements. A simple listing tool could benefit from stating it's 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?
Very concise single sentence that front-loads the main action and resource. Efficient but could be improved with a short second sentence on usage context without significant bloat.
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, compensating for return value description. However, missing usage guidance and behavioral transparency make it less complete for an agent to select and invoke confidently.
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%, thus baseline is 3. The description adds no extra meaning beyond 'optionally filter', not explaining what a chain selector is or required format. No additional value over 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?
Clearly states the verb 'Get' and resource 'available CCIP lanes', and explicitly mentions filtering by source or destination chain selector. Distinguishes from sibling tools like ccip_get_fee or ccip_get_supported_chains.
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 for fetching lane data with optional filters, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., when to use ccip_get_supported_chains instead). No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_get_rate_limitsAInspect
Get CCIP Token Pool rate limiter configuration for a specific remote chain. Returns inbound and outbound rate limits (tokens per second, capacity) that control the maximum cross-chain transfer throughput. Part of CCIP v1.6+ security model.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain the pool is deployed on: 'ethereum', 'base', 'arbitrum'. Defaults to 'ethereum' | |
| pool_address | Yes | Token pool contract address (hex with 0x prefix) | |
| remote_chain_selector | Yes | Remote chain selector (uint64) to query rate limits 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 provided, so description carries full burden. Describes return data but lacks disclosure about permissions needed, side effects (none expected), error cases, or caching behavior. Minimal behavioral context beyond the return 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, no redundant words. Front-loaded with verb and resource. 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 simple 3-param tool with output schema and no annotations, description covers purpose and returns. Missing usage guidelines and error context, but otherwise adequate for a read operation.
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 all parameters. Description adds no significant meaning beyond the schema; it echoes 'remote chain' concept already captured in schema. Baseline 3 appropriate.
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 verb 'Get', resource 'CCIP Token Pool rate limiter configuration', and scope 'for a specific remote chain'. It also specifies return data: inbound and outbound rate limits. Distinguishes from sibling CCIP tools as a read operation for rate limits.
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?
Mentions 'Part of CCIP v1.6+ security model' implying version relevance, but does not explicitly state when to use this tool versus alternatives like ccip_send_message or ccip_get_fee. No 'when to use' or 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_get_supported_chainsAInspect
Get supported chains for Chainlink CCIP from the Chainlink REST API. Returns chain names, selectors, and network details.
| Name | Required | Description | Default |
|---|---|---|---|
| environment | No | Environment: 'mainnet' or 'testnet'. Defaults to 'mainnet' |
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 exist, so the description carries the transparency burden. It accurately describes a read-only operation (get) from an external API, with no mention of destructive actions. It could explicitly state 'does not modify state' for more clarity.
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, front-loaded sentence with no wasted words. It effectively conveys purpose and output in an efficient manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values do not need elaboration. The description lists the key output fields (chain names, selectors, network details) and covers the single optional parameter. It is adequate but could mention the environment parameter's role in filtering.
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 only parameter 'environment' is fully described in the schema (default 'mainnet'). The description does not add extra meaning beyond the schema, but with 100% schema coverage, a baseline of 3 is appropriate.
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 supported chains for Chainlink CCIP, specifying the source (REST API) and output (chain names, selectors, network details). It is distinct from sibling tools that deal with fees, lanes, or tokens.
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 clear context but lacks explicit guidance on when to use this tool versus alternatives like ccip_get_lanes or ccip_get_supported_tokens. No when-not or alternative naming is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_get_supported_tokensBInspect
Get supported tokens for Chainlink CCIP from the Chainlink REST API. Returns token addresses, symbols, and supported lanes.
| Name | Required | Description | Default |
|---|---|---|---|
| environment | No | Environment: 'mainnet' or 'testnet'. Defaults to 'mainnet' |
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, and the description lacks details about side effects, authentication, or rate limits. The description implies a read operation but does not confirm idempotency or safety.
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 concise sentence that front-loads the action and outcome. No wasted words, but could be slightly more structured (e.g., separate lines for input/output).
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 tool with one optional parameter and an output schema, the description covers the basics. However, it does not mention data freshness, pagination, or any constraints, leaving some 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?
Schema coverage is 100% with clear parameter descriptions. The tool description adds no additional meaning beyond the schema, which is adequate but does not enhance understanding.
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 supported tokens for Chainlink CCIP and specifies the return fields (addresses, symbols, lanes). It distinguishes from siblings like ccip_get_fee and ccip_get_lanes.
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 does not explicitly state when to use this tool versus alternatives. While the purpose is clear, there is no guidance on exclusions or when not to use it, such as for fee queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_get_token_poolBInspect
Get information about a CCIP Token Pool contract. Returns the pool type (Lock/Release or Burn/Mint), the token address, supported remote chains, and rate limiter config. Token Pools are part of the Cross-Chain Token (CCT) standard in CCIP v1.6+.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain: 'ethereum', 'base', 'arbitrum'. Defaults to 'ethereum' | |
| pool_address | Yes | Token pool contract address (hex with 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 carries the full burden. It only states what data is returned but does not disclose any side effects (e.g., network calls), authentication needs, error conditions, or rate limits. For a read-only tool, safety is implied but not explicit.
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 front-loaded with the purpose and key returns. It earns its place without fluff, though it could be slightly more structured with bullet points for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the return fields, and an output schema exists, limiting the need to detail return structure. However, it lacks behavioral context (e.g., error handling, performance implications) and usage guidance, making it minimally adequate for a simple read 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%, so the input schema already documents both parameters (chain and pool_address) with descriptions. The tool description adds no additional meaning or usage hints about the parameters beyond what the schema provides. Baseline 3 is appropriate.
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 information about a CCIP Token Pool contract, specifying the returned fields (pool type, token address, supported remote chains, rate limiter config) and context (CCT standard in CCIP v1.6+). This is specific and distinguishes it from sibling tools like ccip_get_fee or ccip_get_lanes.
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 no explicit guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It lacks any usage context such as required permissions or scenarios where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_send_messageBInspect
Send a CCIP cross-chain message via Router.ccipSend(). Submits a signed transaction to the source chain's CCIP Router to send a message and/or tokens to the destination chain. Returns the transaction hash.
| Name | Required | Description | Default |
|---|---|---|---|
| data_hex | No | Hex-encoded data payload | |
| receiver | Yes | Hex-encoded receiver address on the destination chain | |
| fee_token | No | Fee token address (zero address for native). Defaults to native | |
| gas_limit | No | Gas limit for execution on destination chain (default: 200000) | |
| sender_key | Yes | Hex-encoded sender private key for signing the transaction | |
| src_chain_id | Yes | Source chain: 'ethereum', 'base', 'arbitrum', or chain ID | |
| token_amounts | No | Token amounts to transfer as JSON array of {token, amount} objects | |
| dst_chain_selector | Yes | Destination CCIP chain selector (uint64) |
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?
Despite no annotations, the description only mentions submitting a signed transaction and returning a hash. It omits critical behavioral details like state mutation, gas costs, potential reverts, and that it requires a private key.
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 very concise, with two sentences that front-load the purpose and provide immediate clarity. 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?
For a complex cross-chain operation with 8 parameters, the description covers only the essential action. While output schema exists, more context about chain selectors, key management, and error handling would improve 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?
Schema coverage is 100%, so all parameters are described in the schema. The description adds minimal new meaning beyond what the schema already provides.
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 sends a CCIP cross-chain message via Router.ccipSend(), specifying the action, mechanism, and return value. It distinguishes itself from sibling read-only tools.
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 (e.g., ccip_get_fee for fee estimation). No prerequisites or caveats mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_track_messageAInspect
Track the execution status of a CCIP cross-chain message on the destination chain. Calls OffRamp.getExecutionState() to check message delivery status. States: 0=UNTOUCHED (not yet processed), 1=IN_PROGRESS (being executed), 2=SUCCESS (delivered), 3=FAILURE (execution failed).
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | CCIP message ID (64-byte hex, with or without 0x prefix) | |
| dst_chain_id | Yes | Destination chain: 'ethereum', 'base', 'arbitrum', or chain ID | |
| offramp_address | Yes | OffRamp contract address on the destination chain (hex with 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?
The description discloses the method (OffRamp.getExecutionState()) and the possible return states (0-3 with meanings), providing behavioral context beyond the input schema. However, it does not explicitly state that the operation is read-only or mention any auth or rate limits, though the context suggests non-destructive behavior.
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 concise sentences that front-load the purpose, then add the method detail, and finally list the states. No unnecessary words or repetition.
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 and the presence of an output schema, the description covers the purpose, method, and output states comprehensively. It lacks guidance on when to invoke (tied to usage guidelines) but is otherwise 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 description coverage is 100%, and the description does not add additional semantic information about the parameters beyond what the schema provides. It focuses on the overall behavior rather than parameter details, which is acceptable given full schema coverage.
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 tracks execution status of a CCIP cross-chain message on the destination chain, specifying the resource and action. It mentions the internal call to OffRamp.getExecutionState(), and the purpose distinguishes it from siblings like ccip_send_message or ccip_get_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 implies usage after sending a message to check status, but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusion conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_broadcast_signed_txAInspect
Broadcast a pre-signed Ethereum transaction (CCIP Router.ccipSend, VRF requestRandomWords, Functions request, etc.) to the chosen chain via eth_sendRawTransaction. Returns the resulting transaction hash as plain text. Sign the tx externally — typically built via ccip_send_message or vrf_request_random and signed with the operator key.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Source chain to broadcast on: 'ethereum', 'base', 'arbitrum' | |
| signed_tx_hex | Yes | Pre-signed RLP-encoded transaction as hex (0x-prefixed). Build via ccip_send_message → external signer, or vrf_request_random → external signer. |
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 mentions that the tool uses eth_sendRawTransaction and returns the hash as plain text, but with no annotations provided, it lacks details on potential failure modes, gas handling, or side effects like nonce consumption. This is adequate but not comprehensive.
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, consisting of two sentences that front-load the core action and return value, followed by essential workflow context. Every sentence adds value 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 tool's moderate complexity (2 parameters, no enums, no nested objects) and the presence of an output schema, the description sufficiently covers the broadcast action and typical use cases. It provides enough context for an agent to correctly select and invoke the 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?
The schema already describes both parameters with 100% coverage. The description adds value by explaining that signed_tx_hex is typically built via ccip_send_message or vrf_request_random and then signed externally, providing workflow 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 it broadcasts a pre-signed Ethereum transaction via eth_sendRawTransaction and returns the transaction hash. It distinguishes from sibling tools like ccip_send_message and vrf_request_random by noting that those build the transaction while this broadcasts it after external signing.
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 that the transaction must be pre-signed and built via tools like ccip_send_message or vrf_request_random, providing clear context for when to use this tool. However, it does not explicitly state when not to use it or list alternatives, which would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_check_upkeepAInspect
Check if a Chainlink Automation upkeep needs to be performed by dry-running checkUpkeep(bytes) on the target contract. Returns whether upkeep is needed and the perform data.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | No | Chain to query: 'ethereum', 'arbitrum', 'base', or chain ID. Defaults to 'ethereum' | |
| check_data | No | Hex-encoded check data to pass to checkUpkeep (with or without 0x prefix). Defaults to empty | |
| contract_address | Yes | Address of the Automation-compatible contract (hex with 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 provided, so description carries full burden. It states dry-run simulation (no state change) and return data. However, it does not explicitly confirm read-only nature, mention permissions, or potential failures.
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, front-loaded with key action and output. No filler, every word 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?
Covers input behavior and output shape. With an output schema present, description need not detail return format. Missing error scenarios or prerequisites, but overall sufficient for typical use.
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 good descriptions. Description adds context by linking parameters to the checkUpkeep function, but does not significantly augment individual parameter meanings 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 the action (dry-run checkUpkeep), resource (Chainlink Automation upkeep), and output (whether upkeep needed and perform data). Distinct from siblings like chainlink_get_upkeep_info which retrieves existing info.
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 for checking before execution via 'dry-running', but no explicit when-to-use or alternatives. Siblings provide related yet different functions, but no guidance on selecting this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_estimate_functions_costAInspect
Estimate the cost of a Chainlink Functions request. Calculates the approximate LINK cost based on callback gas limit, gas price, and the Functions premium. Returns the estimated total cost in LINK.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | No | Chain to query. Defaults to 'ethereum' | |
| gas_price_wei | No | Gas price in wei for cost estimation | |
| router_address | Yes | Functions Router address (hex with 0x prefix) | |
| subscription_id | Yes | Functions subscription ID (uint64) | |
| callback_gas_limit | Yes | Callback gas limit for the fulfillment |
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 must disclose behavioral traits. It reveals that the tool estimates cost and returns LINK, but fails to mention whether it is read-only, requires permissions, or has side effects. The 'estimate' prefix suggests a query, but this is implicit.
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 front-load the purpose and add necessary detail. Every sentence is essential, with no 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 existence of an output schema (not shown), the description sufficiently covers the return value (LINK cost). All parameters are documented in the schema, and the description provides the overall context needed for selecting and invoking the 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?
All five parameters have schema descriptions, so baseline is 3. The description adds value by explaining the calculation factors (callback gas limit, gas price, Functions premium) and clarifying the output (total cost in LINK), which is 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 action ('estimate'), the resource ('cost of a Chainlink Functions request'), and the output ('total cost in LINK'). It effectively distinguishes the tool from siblings, none of which are about cost estimation.
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 cost estimation before making a Functions request but does not explicitly state when to use it vs. alternatives or provide exclusions. Among siblings, it is distinct, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_get_priceAInspect
Get the latest price from a Chainlink data feed by calling AggregatorV3Interface.latestRoundData(). Returns the price, round ID, timestamps, and decimal precision. Common feeds on Ethereum: ETH/USD = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419, BTC/USD = 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | No | Chain to query: 'ethereum', 'arbitrum', 'base', or a chain ID. Defaults to 'ethereum' | |
| feed_address | Yes | Chainlink data feed contract address (hex with 0x prefix). E.g. 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 for ETH/USD |
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 full burden. It explains the on-chain call and return fields but lacks explicit disclosure of side effects, authentication needs, or error behavior. The read-only nature is implied but not stated.
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 core action and followed by useful examples. 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 the tool's simplicity and the presence of an output schema (not shown but indicated), the description covers the essential aspects: what it does, how it works, and common usage examples. It could mention supported chains or error responses but is largely 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 examples for feed_address (common contract addresses) but does not elaborate on chain_id beyond what the schema provides. This adds marginal value.
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 the latest price from a Chainlink data feed, specifying the method (AggregatorV3Interface.latestRoundData()) and return fields. It distinguishes itself from sibling tools by focusing on price feeds.
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 does not provide guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It assumes the user knows to use it for Chainlink price feeds.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_get_subscriptionAInspect
Get Chainlink Functions subscription details including balance, owner, authorized consumers, and request counts. Queries the Functions Router contract on-chain.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | No | Chain to query. Defaults to 'ethereum' | |
| router_address | Yes | Functions Router address (hex with 0x prefix) | |
| subscription_id | Yes | Subscription ID (uint64) |
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 burden. It states the tool queries an on-chain contract, implying read-only behavior. However, it does not disclose potential latencies, authentication requirements, or error conditions. For a blockchain query, more behavioral context would be 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?
Two sentences, front-loaded with verb and resource. No wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose, included details, and on-chain source. Given that an output schema exists (not shown), return value documentation is presumably handled elsewhere. Minor gap: no mention of error handling or invalid subscription scenarios. Overall adequate.
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 the schema already documents all three parameters. The description adds the context that the tool queries the Functions Router, but does not elaborate on parameter syntax or usage beyond what the schema provides. Baseline 3 is appropriate.
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 verb 'Get' and the resource 'Chainlink Functions subscription details', listing specific fields (balance, owner, consumers, request counts). It distinguishes from siblings like vrf_get_subscription by specifying 'Chainlink Functions'.
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 when to use (when needing subscription details from Functions Router) but provides no explicit guidance on alternatives or when not to use. It is functional but lacks comparative context with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_get_upkeep_infoBInspect
Get information about a Chainlink Automation upkeep from the registry. Returns the upkeep target, balance, gas limit, and execution status.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | No | Chain to query: 'ethereum', 'arbitrum', 'base', or chain ID. Defaults to 'ethereum' | |
| upkeep_id | Yes | Upkeep ID (uint256 as decimal string) | |
| registry_address | Yes | Automation Registry address (hex with 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 provided, so description carries full burden. It correctly indicates a read operation and lists specific returned fields, but does not disclose potential side effects, authentication needs, 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?
Two sentences, front-loaded with purpose, no wasted words. Efficient and to the point.
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 the input schema fully documents parameters and an output schema exists, the description covers purpose and return values adequately. Lacks context on prerequisites or use cases, but sufficient for a straightforward read 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 baseline 3. Description does not add meaning beyond schema; it mentions output fields but not parameters. No additional context for params like 'upkeep_id' or 'registry_address'.
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 gets information about a Chainlink Automation upkeep from the registry, specifying returned fields. Distinguishes from sibling 'chainlink_check_upkeep' by verb 'get' vs 'check', but no explicit differentiation.
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 on when to use this tool versus alternatives like 'chainlink_check_upkeep' or other chainlink tools. The description implies it's for reading upkeep info but doesn't provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_list_feedsAInspect
List popular Chainlink data feed addresses for a given chain. Returns feed pairs, addresses, and decimal precision.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Optional chain to list feeds for: 'ethereum', 'arbitrum', 'base'. Defaults to 'ethereum' |
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 output (feed pairs, addresses, decimal precision) but does not disclose any behavioral traits beyond the static description. No annotations provided, so the burden is on the description; it adequately communicates a read-like operation without side effects.
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?
Extremely concise single sentence that conveys the tool's purpose and output without any unnecessary words or repetition.
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 one simple parameter and an output schema (implied), the description covers the essential information. No gaps for a list 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?
The single parameter 'chain' is fully described in the input schema with allowed values and default. The description adds minimal value beyond what the schema already provides (schema coverage 100%).
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 verb 'List' and the resource 'popular Chainlink data feed addresses for a given chain'. Differentiates from sibling tools like ds_list_feeds and por_list_feeds by specifying Chainlink and 'popular' feeds.
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 on when to use this tool versus alternatives such as chainlink_get_price or ds_list_feeds. Does not mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ds_get_reportAInspect
Get a Data Streams report for a specific feed ID. Data Streams provide sub-second, low-latency market data for crypto, forex, equities, and commodities. Returns benchmarkPrice, bid, ask, timestamps, and fee info. Common feed IDs: ETH/USD = 0x000359843a543ee2fe414dc14c7e7920ef10f4372990b79d6361cdc0dd1ba782, BTC/USD = 0x00037da06d56d083fe599397a4769a042d63aa73dc4ef57709d31e9971a5b439.
| Name | Required | Description | Default |
|---|---|---|---|
| feed_id | Yes | Data Streams feed ID (hex string, e.g. '0x000359843a543ee2fe414dc14c7e7920ef10f4372990b79d6361cdc0dd1ba782' for ETH/USD) | |
| timestamp | No | Unix timestamp to query (optional — latest 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. The description implies a read-only data retrieval operation but does not explicitly state safety aspects, side effects, or authentication needs. For a simple read tool, the lack of contradiction is acceptable but doesn't add extra transparency.
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 sentences: purpose, context, and return data + examples. Efficient and front-loaded, though the second sentence on Data Streams is slightly extraneous but not wasteful.
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 simple tool (2 params) and presence of an output schema, the description covers the need: what it does, what it returns, and example feed IDs. It lacks error handling guidance but is otherwise 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 description coverage is 100%, so baseline is 3. The description adds value by providing common feed ID examples, but does not elaborate on the timestamp parameter beyond what the schema already states.
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 'Get a Data Streams report for a specific feed ID', which is a specific verb+resource combination. It distinguishes itself from sibling tools like ds_list_feeds by focusing on a single feed 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 does not explicitly state when to use this tool over alternatives (e.g., ds_list_feeds). Usage is implied by the purpose, but no direct guidance on context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ds_list_feedsAInspect
List available Chainlink Data Streams feeds. Returns feed IDs, pairs, and asset classes (crypto, forex, equities, commodities). Data Streams provide sub-second latency market data — distinct from the slower on-chain Data Feeds.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_class | No | Filter by asset class: 'crypto', 'forex', 'equities', 'commodities' (optional) |
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 implies a read-only, non-destructive operation ('List'), mentions sub-second latency, and describes return contents. It does not detail authentication or rate limits, but for a simple list tool, the behavioral insight is adequate and does not contradict any 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?
Two concise sentences with the main action upfront. The first sentence states the purpose, and the second adds useful context (distinction from Data Feeds, latency). 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 simplicity (one optional parameter, output schema exists), the description sufficiently covers what the tool does, what it returns, and how it differs from a key sibling. No critical gaps identified.
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's mention of asset classes (crypto, forex, equities, commodities) echoes the schema's parameter description without adding new meaning. Thus, it meets the baseline but does not significantly enhance parameter understanding 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 uses the specific verb 'List' and resource 'Chainlink Data Streams feeds', clearly states what is returned (feed IDs, pairs, asset classes), and distinguishes from 'slower on-chain Data Feeds', which differentiates it from the sibling tool 'chainlink_list_feeds'.
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 contrasts Data Streams with slower on-chain Data Feeds, guiding the agent to choose this tool over chainlink_list_feeds for sub-second latency data. However, it does not provide explicit when-not-to-use scenarios or alternatives for other related tools like ds_get_report.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
por_get_reserveAInspect
Read a Chainlink Proof of Reserve feed to verify asset reserves onchain. Uses the same AggregatorV3Interface as price feeds but returns reserve amounts instead of prices. Well-known PoR feeds on Ethereum: WBTC = 0xa81FE04086865e63E12dD3776978E49DEEa2ea4e, USDC = 0x9a177Bb065A0636C7972C6D27Abcd4B1e5EDb65c, TUSD = 0x478f4c42b877c697C4b19E396865D5437Ef4E08B.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain: 'ethereum'. Defaults to 'ethereum' | |
| feed_address | Yes | Proof of Reserve feed contract address (hex). Well-known: WBTC=0xa81FE04086865e63E12dD3776978E49DEEa2ea4e, USDC=0x9a177Bb065A0636C7972C6D27Abcd4B1e5EDb65c |
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 cover behavior. It describes a read-only operation using AggregatorV3Interface without side effects. The behavior is straightforward; however, it could mention potential reverts or output format.
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 consists of three efficient sentences: purpose, differentiation, and examples. No redundant information, and the most important info is first.
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 read-only tool with two parameters, the description covers what it does, how it differs from similar tools, and provides concrete input examples. The presence of an output schema further reduces the need to describe return values.
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 schema already describes both parameters (chain, feed_address) with 100% coverage. The description adds value by listing well-known addresses for feed_address, going 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?
The description clearly states the tool reads a Chainlink Proof of Reserve feed to verify asset reserves onchain, and distinguishes itself from price feeds by noting it returns reserve amounts. The examples of well-known feeds add specificity.
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 when to use the tool (to get reserve amounts) vs. using price feeds (e.g., chainlink_get_price) for prices. It provides concrete examples but does not explicitly state when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
por_list_feedsAInspect
List well-known Chainlink Proof of Reserve feeds. Returns feed addresses, asset names, and descriptions for verifying reserve backing of wrapped/synthetic assets.
| 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, so the description carries full burden. It discloses that the tool returns feed metadata but does not mention idempotency, side effects, rate limits, or authentication requirements. The description is adequate but lacks extra behavioral context.
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 sentence that is front-loaded with the verb and resource, containing no fluff or redundant information. Every word 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?
For a simple listing tool with no parameters and an output schema, the description is nearly complete. It explains the purpose and return values. Minor gap: does not mention any limitations like pagination or number of feeds, but this is 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?
There are 0 parameters, and schema coverage is 100%. Per the rule, baseline is 4. The description adds no parameter information, which is acceptable given no parameters exist.
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 verb 'List', the resource 'well-known Chainlink Proof of Reserve feeds', and specifies the returned data (addresses, names, descriptions). It distinguishes from sibling tools like 'chainlink_list_feeds' by focusing on Proof of Reserve feeds.
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 verifying reserve backing but does not explicitly state when to use or not use this tool versus alternatives such as 'por_get_reserve' or 'chainlink_list_feeds'. No exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vrf_get_subscriptionAInspect
Get VRF v2.5 subscription details from the VRFCoordinatorV2_5 contract. Returns balance, owner, authorized consumers, and pending requests. Supports Ethereum, Arbitrum, and Base.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain: 'ethereum', 'arbitrum', 'base'. Defaults to 'ethereum' | |
| subscription_id | Yes | VRF subscription ID (uint256 as decimal string) |
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 mentions the contract and returned fields but does not explicitly state it is read-only or disclose potential side effects, authentication needs, or rate limits. Adequate but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first delivers the core purpose and output, second specifies supported chains. No filler, efficient, and 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 that an output schema exists and parameters are fully described in the schema, the description covers the essential use case. It omits error conditions or prerequisites but is sufficient for a straightforward getter.
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 both parameters described. The description adds the list of supported chains (though schema also lists them in the 'chain' param description) and highlights the output content, providing added 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 retrieves VRF v2.5 subscription details from the VRFCoordinatorV2_5 contract, specifying the returned data (balance, owner, consumers, pending requests). It effectively distinguishes from siblings like chainlink_get_subscription by focusing on VRF v2.5.
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 lists supported chains (Ethereum, Arbitrum, Base), providing context for when to use. However, it lacks explicit guidance on when not to use or comparisons to similar tools, though the name and VRF v2.5 specificity imply its niche.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vrf_request_randomAInspect
Build transaction calldata for a VRF v2.5 random words request. Returns the hex-encoded calldata for VRFCoordinatorV2_5.requestRandomWords(). The caller must sign and submit the transaction from a consumer contract. VRF v2.5 supports payment in LINK or native token.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain: 'ethereum', 'arbitrum', 'base'. Defaults to 'ethereum' | |
| key_hash | Yes | VRF key hash for the gas lane (hex, 32 bytes) | |
| num_words | No | Number of random words to request (default: 1, max: 500) | |
| native_payment | No | Pay in native token instead of LINK (default: false) | |
| subscription_id | Yes | VRF subscription ID (uint256 as decimal string) | |
| callback_gas_limit | No | Callback gas limit (default: 100000) | |
| request_confirmations | No | Number of block confirmations before fulfillment (default: 3) |
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 fully compensates by disclosing the tool's behavior: it builds calldata (no state mutation), returns hex-encoded data, and requires manual signing/submission. 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?
Three brief sentences front-load the purpose, return value, and key context. No filler 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 the parameter count and existence of an output schema, the description covers all necessary aspects: what the tool does, what it returns, the underlying contract, and payment flexibility. No 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?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining VRF version and the native_payment option context beyond 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 uses a specific verb 'Build transaction calldata' and identifies the resource 'VRF v2.5 random words request'. It further specifies the underlying function and distinguishes this tool from siblings like vrf_get_subscription, which queries subscription info.
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 states the required caller action ('must sign and submit the transaction from a consumer contract') and mentions payment options. It implicitly guides usage for requesting randomness, but does not explicitly list when not to use or provide alternatives.
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!