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?
No annotations provided, so description carries full burden. It mentions eth_call (implying read-only) and returns native fee, but does not disclose error behavior, gas costs, or idempotency. Additional details would improve 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?
Two front-loaded sentences with zero waste. Key information is presented immediately and efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description need not detail return values. It covers purpose, supported chains, and method. Lacks mention of prerequisites or failure modes, but overall adequate for this complexity.
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 schema already documents all parameters. Description adds 'Supports Ethereum, Base, and Arbitrum' which duplicates schema's src_chain_id description. No significant extra meaning 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 states 'Estimate CCIP cross-chain messaging fee via Router.getFee() eth_call' – specific verb+resource. It clearly distinguishes from sibling tools like ccip_send_message or ccip_get_lanes by focusing on fee 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?
No explicit guidance on when to use this vs alternatives. While it implies usage before sending a message, it does not direct users to ccip_send_message or mention when not to use it. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_get_lanesAInspect
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 provided, so description must disclose behavioral traits. It states the tool retrieves data from a REST API, implying a read operation, but does not explicitly confirm no side effects, permissions needed, or rate limits. Adequate but not thorough.
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 concise sentence that immediately states the primary function and then optional filtering. No unnecessary words; front-loaded with key purpose.
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 full parameter coverage, the description is fairly complete for a simple list tool. It could mention pagination or return format, but overall sufficient.
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%, meaning the input schema already documents each parameter's purpose and default. The description adds no additional semantics beyond what the schema provides, so 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?
Description clearly states verb 'Get' and resource 'available CCIP lanes (source-destination chain pairs)' and mentions source via 'Chainlink REST API'. It distinguishes from sibling tools like ccip_get_fee or ccip_get_supported_chains by focusing on 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?
Description implies usage for retrieving lanes with optional filters but does not provide when-to-use or when-not-to-use guidance. No explicit alternatives are mentioned despite siblings like ccip_get_supported_chains being related.
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 the burden. It discloses return type (inbound/outbound rate limits with tokens per second and capacity) and that it's for a specific remote chain. However, it doesn't state it's a read-only operation, potential failure modes, or prerequisites like valid pool address.
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?
Description is three sentences, front-loaded with the main action, and contains no redundant words. Efficient and 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 the tool's simplicity and the presence of an output schema, the description adequately covers purpose, returned data, and its role in the security model. Could mention the optional chain parameter, but that is in the schema.
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 all three parameters documented. The description adds context that the tool queries rate limits for a specific remote chain, but does not add additional meaning beyond the schema. Baseline 3 applies since schema is complete.
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 CCIP Token Pool rate limiter configuration, specifying verb 'Get', resource 'Token Pool rate limiter configuration', and scope for a specific remote chain. It differentiates from siblings like ccip_get_fee by focusing on rate limits and mentions it's part of CCIP v1.6+ security model.
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 or when not to use it. The description only mentions it's part of the security model, but does not clarify scenarios where other tools 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_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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the data source (REST API) and that it returns certain fields, but does not disclose whether authentication is required, rate limits, or if the operation is purely read-only (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 a single, well-structured sentence that conveys the action, source, and output. It is front-loaded and contains no extraneous 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 the tool's simplicity (one optional parameter, output schema present), the description covers the essential aspects: what the tool does, its input, and its output. The presence of an output schema reduces the need to detail return values, so the description is adequately 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 for its single parameter, including its type, default, and allowed values. The tool description adds no additional meaning beyond the schema, so a baseline score 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 it retrieves supported chains for Chainlink CCIP, specifying the data source (REST API) and the returned fields (chain names, selectors, network details). This verb-resource pair is distinct from sibling tools like ccip_get_fee or ccip_get_supported_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 does not explicitly indicate when to use this tool versus alternatives. While the purpose is clear, there is no guidance on prerequisites, context, or situations 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_get_supported_tokensAInspect
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, so the description must cover behavioral traits. It mentions 'from the Chainlink REST API' but does not disclose whether the call is read-only, rate limits, side effects, authentication requirements, or response size. Basic safety profile is missing.
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 no wasted words. Front-loads the core purpose and immediately states return values.
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 existing output schema, the description covers the essential behavior. However, the lack of behavioral transparency slightly reduces 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 input schema has 1 optional parameter with 100% description coverage, so the schema already provides the meaning. The description does not add additional context about the parameter beyond what the schema 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 the verb 'Get' and resource 'supported tokens for Chainlink CCIP', distinguishing it from sibling tools like ccip_get_fee or ccip_get_lanes. It also specifies return values (addresses, symbols, 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 implies usage context (getting CCIP-supported tokens) but offers no guidance on when to use this tool versus alternatives, nor any when-not or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_get_token_poolAInspect
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 discloses the return fields and mentions CCIP v1.6+ standard, but does not mention side effects, prerequisites, error conditions, or data freshness. For a read-only getter, this is adequate but not exemplary.
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 and output summary, no fluff. 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 the existence of an output schema and complete parameter schema, the description adds useful context about the CCT standard and version. All necessary information is covered without redundancy.
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 does not add extra meaning beyond the schema; it only repeats that the pool address is needed. The schema already documents both parameters clearly, so no additional value from 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 verb 'Get' and the resource 'CCIP Token Pool contract', and lists the specific information returned (pool type, token address, supported chains, rate limiter). It distinguishes from sibling CCIP tools like ccip_get_fee or ccip_send_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?
The description implies use when token pool info is needed, but no explicit guidance on when to use vs alternatives or when not to use. Sibling tools exist for other CCIP operations, but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ccip_send_messageAInspect
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?
No annotations are provided, so the description bears full responsibility. It discloses that a signed transaction is submitted and a hash is returned, indicating on-chain activity. However, it omits details about fees, reverts, permissions, or side effects like token transfers.
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 long, front-loaded with the primary action, and contains no unnecessary words. It efficiently conveys the essential 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 the complexity (8 parameters, nested objects) and the presence of a detailed input schema with 100% coverage, the description is sufficient to understand the tool's purpose and output. It is not overly detailed but covers the key behavioral aspects.
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 baseline is 3. The description does not add parameter-specific information; it relies entirely on the schema's property 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 action ('send a CCIP cross-chain message'), the method ('via Router.ccipSend()'), and the return value ('Returns the transaction hash'). It distinguishes from sibling tools like ccip_get_fee and ccip_get_lanes which are read-only or informational.
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 any guidance on when to use this tool versus alternatives, nor does it mention conditions for use (e.g., prerequisites, when not to use). While the purpose is clear, there is no explicit usage context.
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?
With no annotations, the description carries full burden. It mentions the underlying call (OffRamp.getExecutionState()) and lists possible states, providing useful insight but not covering error conditions or 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?
Two sentences plus a concise list of states; front-loaded with verb and resource, minimal 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?
Given the tool's simplicity and an existing output schema (not shown), the description covers execution states adequately, though it omits prerequisites or error explanations.
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 each parameter described; the description adds context on the tool's purpose but no additional parameter details 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?
Clearly states the tool tracks execution status of a CCIP cross-chain message on the destination chain, distinguishing it from sibling tools 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?
Implicitly suggests use after sending a message to check status, but lacks explicit guidance on when to use vs. alternatives 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?
With no annotations, the description correctly identifies the tool as a broadcast (mutation) and states it returns a transaction hash. It discloses the network interaction but could mention potential failure modes or idempotency.
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-load the key action and output, with no wasted words. Information is well-structured and easy to parse.
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 params, clear output), the description covers purpose, method, and prerequisites. Minor missing details about error handling or chain matching, but overall sufficient.
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% with detailed parameter descriptions. The description adds no new parameter information, only repeats context already in the schema. 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 broadcasts a pre-signed Ethereum transaction via eth_sendRawTransaction, listing specific use cases (CCIP, VRF, Functions). This distinguishes it from sibling tools like ccip_send_message and vrf_request_random that build but do not 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 explains that the transaction must be pre-signed externally and typically built via ccip_send_message or vrf_request_random. This gives clear usage context, though it lacks explicit when-not-to-use or alternatives.
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 are provided, so the description carries full burden. It explains the tool dry-runs checkUpkeep, implying no state change, but does not explicitly state side effects, gas costs, or potential reverts. It 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 two sentences, front-loaded with the core purpose. It is concise, though could be slightly more structured (e.g., listing return values explicitly).
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, 100% schema coverage, and presence of an output schema, the description is mostly complete. It mentions the key return elements (whether upkeep is needed and perform data). No major 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?
The input schema covers all three parameters with descriptions, and the description does not add meaning beyond what the schema provides. Baseline score 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 checks if a Chainlink Automation upkeep needs to be performed by dry-running checkUpkeep. The verb 'check' and resource 'Chainlink Automation upkeep' are specific, and it distinguishes from sibling tools which handle other Chainlink services (CCIP, VRF, 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 provides no guidance on when to use this tool over alternatives or any prerequisites. It only explains the operation, leaving the agent without context for selection.
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, the description carries full burden. It mentions the calculation basis (callback gas limit, gas price, premium) and that it returns an estimate. However, it does not clarify if the tool is read-only or if it modifies state, nor does it detail the estimation formula or potential errors.
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 states purpose, second adds details. No redundant information, well-structured 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 an output schema exists, the description appropriately mentions the return format (LINK cost). It covers all key inputs at a high level. Could add more detail on output structure or edge cases, but is sufficient for this simple estimation 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 baseline is 3. The description adds value by mentioning 'Functions premium' as an input, but it does not elaborate on router_address or subscription_id meaning beyond the schema's minimal 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 estimates the cost of a Chainlink Functions request using specific inputs (callback gas limit, gas price) and returns the estimated LINK cost. It is distinct from sibling tools like ccip_* or chainlink_get_price.
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 what the tool does but does not explicitly state when to use it or what alternatives exist (e.g., for other cost models). The context of use is implied but not directed.
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?
With no annotations, the description must disclose behavior. It names the contract method called and returned fields, but does not mention read-only nature, error conditions, or network dependencies. Provides partial 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 concise sentences, front-loaded with purpose, no wasted words. Examples efficiently add 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 an output schema exists (not shown), the description sufficiently covers purpose, parameters, and basic behavior. Missing usage guidelines, but overall complete 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 covers 100% of parameters. The description enriches them by noting the default chain_id ('ethereum') and providing example feed addresses, adding practical 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 clearly states it gets the latest price from a Chainlink data feed by calling AggregatorV3Interface.latestRoundData(), with details on returned data and examples of common feeds. This precisely distinguishes it from sibling tools like ccip_*, ds_*, por_*, vrf_*.
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 when needing a Chainlink price, but does not explicitly state when to use vs alternatives or mention exclusions. Given no sibling tools compete directly for price retrieval, this is adequate but not explicit.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates a read-only operation by stating 'Queries the Functions Router contract on-chain.' There is no contradiction, and the description adds value beyond the structured fields by listing the returned details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences conveying purpose, content, and mechanism. Every sentence adds value with no redundancy or 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 and the presence of an output schema, the description is sufficiently complete. It covers purpose, returned data, and on-chain source. Minor omission: no mention of error conditions, but that is likely covered by the output schema or implicit.
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 provides full descriptions for all three parameters, achieving 100% coverage. The tool description does not add additional parameter semantics beyond stating the returned data. Baseline score 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 uses a specific verb 'Get' with a clear resource 'Chainlink Functions subscription details' and lists the returned data (balance, owner, authorized consumers, request counts). This unambiguously identifies the tool's purpose and distinguishes it from sibling tools like vrf_get_subscription.
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 or how it compares to alternatives. It simply states what it does, leaving the agent without contextual direction for tool selection.
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 are provided, so the description must convey behavioral traits. It indicates the tool returns information, implying a read-only operation. However, it does not explicitly state that it's non-mutating, nor does it mention any side effects, authentication requirements, or potential costs (e.g., gas fees). The description is minimally adequate but lacks depth.
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 efficiently states the action and key return information. It is front-loaded with the main purpose and contains no redundant or extraneous words, earning full marks for conciseness.
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 low complexity (3 parameters, simple read operation) and the existence of an output schema, the description covers the essential purpose and return fields. However, it could be more complete by explicitly stating that the tool does not modify state and by mentioning the default behavior of the 'chain_id' parameter. Overall, it is mostly complete for a tool of this simplicity.
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?
Input schema coverage is 100% with clear descriptions for all three parameters (chain_id, upkeep_id, registry_address). The description does not add any additional meaning beyond what the schema already provides, so it earns the baseline score of 3.
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 ('Get information') and the resource ('Chainlink Automation upkeep from the registry'). It lists the returned fields (target, balance, gas limit, execution status), making the purpose specific. However, it does not explicitly differentiate from the sibling tool 'chainlink_check_upkeep', which also involves upkeeps, limiting clarity slightly.
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. For example, there is no mention that this is a read-only tool for viewing upkeep state, while 'chainlink_check_upkeep' might be for evaluating whether to perform upkeep. The description omits any conditional or comparative usage advice.
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?
Without annotations, the description adequately conveys that this is a read-only operation by using 'list' and explicitly stating the return values. It does not disclose potential side effects, but none are expected. The transparency is high enough for safe usage.
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 front-loads the purpose and then specifies the return values. Every word is useful and there is 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 the tool's simplicity and the presence of an output schema (which details return structure), the description sufficiently covers the purpose, input, and output. No further context is needed for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description. The tool description does not add further meaning to the single parameter beyond what the schema provides, which meets the baseline for high 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 action ('List'), the resource ('popular Chainlink data feed addresses'), and the scope ('for a given chain'). It also specifies what the tool returns, making its purpose unambiguous and distinct from sibling tools that deal with different domains like ds or por.
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. Among sibling tools, there are other list feeds tools (ds_list_feeds, por_list_feeds) that are not differentiated. The description does not mention when not to use or suggest alternatives.
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?
With no annotations, the description discloses return fields (benchmarkPrice, bid, ask, timestamps, fee info) and mentions low-latency. However, it omits behavioral traits like error handling, rate limits, or authorization requirements. Additional context on data freshness and valid timestamps would improve 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?
The description is concise (two sentences plus examples), front-loads the key action, and avoids redundancy. Every sentence contributes meaningful information without 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 that an output schema exists, the description's summary of returned fields is complementary. However, it lacks details on optional parameters' interaction (e.g., timestamp vs latest) and does not mention potential errors. Still, it is largely complete for a simple data retrieval 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 input schema provides full descriptions for both parameters, meeting the 100% coverage baseline. The description adds value by listing concrete example feed IDs, which helps the agent construct valid queries. 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?
The description clearly states the verb 'Get', the resource 'Data Streams report', and the required parameter 'feed ID'. It distinguishes itself from siblings like ds_list_feeds by focusing on report retrieval. Examples of feed IDs add specificity and prevent 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?
The description provides context about Data Streams but does not explicitly guide when to use this tool versus alternatives like ds_list_feeds or chainlink_get_price. It implies that a feed ID is needed but offers no direction on how to obtain it, leaving room for confusion.
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?
No annotations are provided, so the description bears the full burden. It discloses the tool is a read-only list operation (implied by 'List available'), mentions the return fields, and adds behavioral context about sub-second latency. It does not cover auth needs or rate limits, but these are less critical for a list tool.
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 and output, followed by a sentence adding context and differentiation. No redundant or unnecessary 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?
For a simple list tool with one optional parameter and an available output schema, the description covers what it does, what it returns, and how it differs from a related tool. No critical gaps remain.
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 a single optional parameter. The description restates the parameter's allowed values and purpose but adds no extra meaning beyond the schema. 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 lists Chainlink Data Streams feeds, specifying it returns feed IDs, pairs, and asset classes. It explicitly distinguishes from the on-chain Data Feeds sibling tool by mentioning sub-second latency, making the purpose specific and differentiated.
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 context for when to use this tool by distinguishing it from on-chain Data Feeds, but it does not explicitly state when not to use it or provide alternative tool names beyond the implicit differentiation.
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?
With no annotations provided, the description carries the full burden. It accurately describes the read-only nature via AggregatorV3Interface and the return of reserve amounts, which is sufficient for a simple read tool. It could mention error handling or network dependencies but is still 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 concise with three front-loaded sentences: purpose, technical comparison, and examples. 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 presence of an output schema (covering return values) and the simple read operation, the description is complete. It explains what the tool does, how it differs from related tools, and provides helpful examples.
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 baseline is 3. The description adds value by listing well-known feed addresses and noting the default chain, providing context beyond the schema definitions.
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 'Read' and the resource 'Chainlink Proof of Reserve feed', explicitly distinguishes it from price feeds by noting it returns reserve amounts instead of prices, and provides specific examples of well-known 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 explains the tool's purpose for verifying asset reserves onchain and contrasts it with price feeds, giving clear usage context. However, it does not explicitly state when not to use it or suggest alternatives like por_list_feeds.
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 provided, so description carries full burden. It accurately describes the operation (list) and return values (addresses, asset names, descriptions). For a read-only tool with zero parameters, this is sufficient for an agent to understand safe invocation.
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. First states the action, second details returns. No filler; every word earns its place.
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?
Tool is simple with no parameters and has an output schema. Description fully covers purpose and return content. No missing information 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?
Zero parameters and 100% schema coverage. Description does not need to add parameter info. Baseline of 4 applies; no room for improvement.
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 lists Chainlink Proof of Reserve feeds with specific return fields (addresses, asset names, descriptions). Distinguishes from siblings like chainlink_list_feeds (generic) and ds_list_feeds (data streams).
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 clear from name and description that this tool is for PoR feed listing. Siblings like por_get_reserve and chainlink_list_feeds provide context, but no explicit when-to-use vs alternatives is stated. Still, purpose is self-evident.
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 bears full burden. It clearly indicates a read operation ('Get') and lists returned data. It does not mention side effects or permissions, but for a read-only query this is mostly sufficient. Could add 'no state changes' for completeness.
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. Every sentence contributes: first sentence states action and purpose, second details returns and supported networks. 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?
With only 2 parameters and an output schema present, the description covers purpose, return values, chain support, and implied safety (read-only). It is 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%, so parameters have descriptions. The description adds value by summarizing return fields and listing supported chains (matching chain parameter). It goes beyond schema by providing context on what the tool returns.
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 gets VRF v2.5 subscription details from the VRFCoordinatorV2_5 contract, lists returned fields (balance, owner, etc.), and specifies supported chains. This is specific and distinguishes from siblings like chainlink_get_subscription (likely 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 does not explicitly state when to use this tool vs alternatives. Siblings include chainlink_get_subscription and vrf_request_random, but no guidance is provided for choosing. Usage is implied but not clarified.
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 carries full burden. It discloses that the tool builds calldata (not sending it), requires the caller to sign and submit, and supports two payment methods. It does not mention potential side effects or prerequisites beyond the subscription ID, but for a calldata builder, this 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?
Three sentences, front-loaded with the main purpose, no superfluous information. Every sentence contributes to understanding the tool's function and requirements.
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 mentioned), the description need not detail return values. It covers the tool's purpose, caller action, and payment support. With 7 parameters, the description is comprehensive enough for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the return format (hex-encoded calldata) and payment options, but does not provide additional semantics beyond what is already in the schema for the parameters.
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 ('Build transaction calldata') and the resource ('VRF v2.5 random words request'). It differentiates from sibling tools by focusing on VRF random words, as opposed to other CCIP or 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 explains that the caller must sign and submit the transaction from a consumer contract, providing clear context for when to use this tool. It does not explicitly state when not to use it or list alternatives, but it is sufficient given the tool's specificity.
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!
Related MCP Servers
- FlicenseAquality-maintenanceMCP server for Chainlink ecosystem monitoring with 6 tools: price feed tracking, VRF monitoring, automation status, CCIP tracking, and staking analytics. MIT licensed.Last updated61
- Flicense-qualityDmaintenanceEnables interaction with Chainlink's decentralized oracle network, providing access to real-time price feeds, serverless functions, smart contract automation, verifiable randomness, cross-chain messaging, and proof of reserve across multiple blockchain networks.Last updated
- Flicense-qualityDmaintenanceMCP server providing agent-ready access to Chainlink's API for DeFi and crypto tools.Last updated
- AlicenseBqualityDmaintenanceAn MCP server that provides real-time access to Chainlink's decentralized on-chain price feeds, optimized for seamless integration into AI agents and autonomous systems.Last updated5347MIT