Tenzro Chainlink MCP
Server Details
Chainlink MCP: CCIP, CCT pools, Data Feeds, Data Streams, VRF v2.5, PoR, Automation, Functions.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- tenzro/tenzro-network
- GitHub Stars
- 0
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.8/5 across 21 of 21 tools scored. Lowest: 3.2/5.
Each tool has a distinct purpose, clearly grouped by prefix (ccip_, chainlink_, ds_, por_, vrf_). Within each group, tools like ccip_get_fee, ccip_send_message, and ccip_track_message are unambiguous. No overlapping functionality.
All tools follow a consistent prefix_action_noun pattern in snake_case (e.g., ccip_get_fee, chainlink_list_feeds, ds_get_report). No mixing of conventions like camelCase or inconsistent verb forms.
21 tools cover multiple Chainlink products (CCIP, Data Feeds, Data Streams, Proof of Reserve, VRF, Automation, Functions) appropriately. Each product has 2-8 dedicated tools, making the set well-scoped without being overwhelming or thin.
Read operations are comprehensive for all products. The generic chainlink_broadcast_signed_tx covers writes. Minor gaps exist like missing subscription management for VRF/Functions, but core workflows are covered.
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, the description indicates the tool is an eth_call (read-only) via 'via Router.getFee() eth_call', implying no state mutation. It does not elaborate on authentication, rate limits, or error conditions, but the read-only nature is clear.
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 core purpose and add key detail (supported chains). Every sentence is essential and avoids verbosity.
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 (6 params, CCIP cross-chain) and presence of an output schema, the description covers the essential purpose and key constraints. Missing details like fee dependency on message data are minor, with schema covering specification.
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 detailed parameter descriptions. The tool description adds overall context but does not elaborate on individual parameters beyond what the schema already provides, so it meets the baseline 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?
The description clearly states the tool estimates CCIP cross-chain messaging fees via Router.getFee() eth_call, specifying the supported source chains (Ethereum, Base, Arbitrum). It distinguishes from siblings 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?
The description implies usage for estimating fees before sending a CCIP message, but lacks explicit guidance on when to use versus alternatives (e.g., chainlink_get_price) or prerequisites. No exclusions are mentioned.
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 are provided, so the description carries full burden. It indicates a read operation ('Get') and data source, but does not disclose any other behavioral traits such as authentication, rate limits, or side effects. The description is minimal but not contradictory.
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 short sentences. It is front-loaded with the primary purpose and provides necessary detail without any 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?
Given the tool's simplicity (no required parameters, output schema exists), the description adequately covers what the tool does and the optional filtering. It does not mention pagination or order, but these are not critical for a basic list retrieval. The presence of an output schema reduces the burden on the description.
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, with each parameter already explained. The tool description adds the context that filtering is optional, which replicates the schema. Baseline score of 3 is appropriate as the description adds limited value 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 available CCIP lanes as source-destination chain pairs from the Chainlink REST API, with optional filtering. It is specific about the resource and distinguishes it from sibling tools like `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?
The description implies usage for retrieving lane information but provides no explicit guidance on when to use this tool versus alternatives, nor any when-not conditions. It does not mention prerequisites or exclusions.
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 exist, so the description carries the burden. It discloses that it returns inbound/outbound rate limits and ties to the security model, but does not explicitly state that it is read-only or describe any side effects or authentication needs.
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 the primary purpose, followed by return details and context. No 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?
Given that an output schema exists, the description does not need to detail return structure, but it provides adequate context about what the tool returns (rate limits) and its role in the CCIP security model. Missing error or prerequisite info, 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 coverage is 100% with descriptive parameter names and descriptions. The description adds no extra parameter meaning beyond mentioning 'remote chain' context, so baseline 3 applies.
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 CCIP Token Pool rate limiter configuration for a specific remote chain' with a specific verb and resource. It differentiates from sibling tools like ccip_get_fee or ccip_get_supported_tokens by focusing on 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?
The description provides context ('Part of CCIP v1.6+ security model'), implying usage when checking rate limits, but does not explicitly state when to use vs alternatives or provide exclusions.
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, the description must disclose behavioral traits. It only states it's a read operation returning data, but lacks details on caching, rate limits, authentication, or data freshness. This is insufficient for an informed agent.
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?
A single sentence that is concise and front-loaded with the action and outcome. It avoids waste, but could slightly expand on context without harming brevity.
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 tool with one optional parameter and an output schema, the description covers purpose and return content. However, it lacks usage context relative to sibling tools, which keeps it from a top score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add any parameter-specific information beyond the schema's own description for 'environment', so no extra value is provided.
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 from the REST API, specifying returned data includes chain names, selectors, and network details. This distinguishes it from sibling 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?
No explicit guidance on when to use this tool versus alternatives, nor any prerequisites or limitations. The purpose is clear, but an agent would benefit from knowing, for example, to call this before interacting with specific chains.
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?
With no annotations, the description carries the full burden but only states what is returned, lacking disclosure of behavioral traits such as idempotency, rate limits, or authentication requirements.
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 a single sentence and a clarifying fragment, but it is slightly informal and could benefit from better structuring.
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 and presence of an output schema, the description sufficiently covers the core functionality, though it omits error scenarios or usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no extra meaning beyond the schema's parameter description for 'environment'; baseline score applies.
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 data (addresses, symbols, supported lanes), making its purpose unambiguous and distinct from sibling 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?
The description does not provide explicit guidance on when to use this tool versus alternatives like ccip_get_fee or ccip_get_lanes, though the context of CCIP and the API source is implied.
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 description carries full burden. It discloses return fields but omits behavioral traits like read-only nature, permissions, or side effects. Adequate but not deep.
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 superfluous words. Highly concise and structured effectively.
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 has 2 params, full schema coverage, and an output schema, the description completely covers what the tool does and returns. 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% with clear parameter descriptions. The description adds no additional meaning beyond the schema; 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 verb 'Get' and the resource 'CCIP Token Pool contract', listing specific return fields. It distinguishes from sibling tools like ccip_get_fee or ccip_get_supported_tokens by focusing uniquely on token pool details.
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 vs alternatives (e.g., ccip_get_supported_tokens). It lacks explicit context for scenario selection or exclusions.
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 provided, so description carries full burden. It discloses that it 'submits a signed transaction' (write behavior) and returns 'transaction hash', but omits details like failure modes, idempotency, or fee side effects. The description adds some value beyond the tool name 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 two sentences: first explains the action and mechanism, second states the return value. It is front-loaded with the core purpose and contains no unnecessary information. Every sentence serves a 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?
The tool has an output schema, so explaining return values is not needed. The description covers the main action and result. However, it could provide more context about prerequisites (e.g., chain IDs, key requirements) but given the complexity and the presence of a rich schema, this is 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%, so all parameters are well-documented in the input schema. The description does not add any additional context for parameters beyond what the schema provides, hence 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 the verb 'send', the resource 'CCIP cross-chain message', and the specific method 'Router.ccipSend()'. It distinguishes from sibling tools like ccip_get_fee and ccip_get_lanes, which are read-only or query tools, making its purpose unambiguous.
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 implies its use for sending cross-chain messages, there is no mention of when not to use it or prerequisite conditions, leaving the agent to infer usage context from the tool name and siblings.
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?
No annotations provided, so description carries full burden. It reveals the specific on-chain call (OffRamp.getExecutionState()) and lists possible states (0=UNTOUCHED, etc.), providing good insight into behavior. Does not mention permissions or side effects, but those are minimal for a read-like operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no superfluous words. 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 presence of output schema, description covers purpose, mechanism, and output states. Minor gap: no explicit mention of read-only nature, but inferred. 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 description coverage is 100%, so schema already documents all three parameters. Description adds context about states and internal call but does not add parameter-specific 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?
Description clearly states the tool tracks execution status of a CCIP cross-chain message on the destination chain. Verb 'track' and resource 'execution status' are specific. Distinguishes from sibling tools like 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?
Description implies usage for checking message delivery status but does not explicitly state when to use this tool versus alternatives or provide when-not conditions.
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 provided, the description carries the full burden. It discloses behavioral details (broadcast via eth_sendRawTransaction, returns plain text hash) and that the tx must be pre-signed. However, it lacks information on error handling, potential failures (e.g., nonce issues), or network specifics.
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 and output, second provides usage guidance. No redundant information; every sentence 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?
Given the tool's simplicity (2 params, no nested objects) and the presence of an output schema (though described as plain text), the description covers purpose, required inputs, how to obtain inputs, and output. It misses some potential context like error scenarios or prerequisites (e.g., valid chain RPC), 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%, but the description adds value by explaining how to obtain the signed tx hex (via ccip_send_message or vrf_request_random with external signing). This provides practical guidance 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 verb 'broadcast' and the resource 'pre-signed Ethereum transaction', and specifies that it returns a transaction hash. It distinguishes from siblings by mentioning how the signed transaction is typically built (via ccip_send_message or vrf_request_random), which are listed as sibling 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?
Description provides clear context: the transaction must be pre-signed externally and built via specific sibling tools. However, it does not explicitly state when not to use this tool or mention alternatives, though the sibling list provides some implicit guidance.
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?
With no annotations provided, the description carries the full burden. It clearly indicates the tool performs a dry-run simulation ('dry-running checkUpkeep(bytes)'), implying it is non-destructive and read-only. It does not mention side effects, permissions, or rate limits, but the behavior is reasonably 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, each carrying essential information. No fluff or extraneous details. The description is front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, output schema exists), the description is sufficient. It explains the purpose, method, and return values. The output schema covers the details of the return structure, so the description does not need to elaborate further.
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 minimal new meaning beyond the schema—it explains that the contract_address is the target and check_data is passed to the function, but this is already clear from the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and resource ('Chainlink Automation upkeep'), and clearly distinguishes from sibling tools like chainlink_get_upkeep_info or chainlink_broadcast_signed_tx. It also explains the method (dry-running checkUpkeep(bytes)) and the return values.
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 when you need to determine if an upkeep is needed, but lacks explicit guidance on when to use this tool versus alternatives (e.g., when to use check_upkeep vs get_upkeep_info). No exclusions or context cues are provided.
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?
No annotations are provided, so the description carries the full burden. It discloses that the tool calculates an estimated cost based on callback gas limit, gas price, and premium, which is transparent about the read-only, non-destructive nature of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, no extraneous information. 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?
For a tool with 5 parameters (3 required), a fully described schema, and an output schema (not shown but present), the description is complete. It covers what the tool does and the key inputs without leaving 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 the baseline is 3. The description mentions callback gas limit and gas price but adds no additional semantics beyond what the schema already provides for each parameter.
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 'Estimate' and resource 'cost of a Chainlink Functions request'. It clearly distinguishes from sibling tools which deal with CCIP, VRF, or price feeds, as none of those estimate Functions costs.
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 estimating LINK costs but does not explicitly state when to use this tool versus alternatives (e.g., chainlink_get_price for token prices). No when-not or exclusion criteria are provided.
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 bears full responsibility for behavioral disclosure. It explicitly mentions the contract call (AggregatorV3Interface.latestRoundData()) and the returned fields (price, round ID, timestamps, decimal precision), implying a read-only operation. However, it does not explicitly state that the operation is non-destructive or discuss any side effects, which would justify a 5.
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 and front-loaded with the primary action. It includes a list of common feed examples which adds utility without excessive length. A minor improvement would be to move the example addresses to a separate note, but overall it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality, return values, and common use cases. Given the presence of an output schema, it need not detail return structure. It could mention that users should obtain a feed address via chainlink_list_feeds first, but the examples mitigate this gap. Overall, it is sufficiently complete for an experienced agent.
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 providing example feed addresses and noting the default chain, but it does not enhance the parameter understanding beyond what the schema already provides. The schema already describes chain_id and feed_address clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the latest price from a Chainlink data feed'. It specifies the resource (Chainlink data feed), the action (get price), and provides concrete examples of common feeds, making it highly distinguishable from sibling tools like 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 lacks any guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing to retrieve a feed address via chainlink_list_feeds) or exclusions. No context is provided for proper selection among 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_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, the description carries full burden. It discloses it is an on-chain query (read-only), but lacks details on authentication needs, rate limits, or potential failure modes. 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?
Two sentences, front-loaded with purpose, no extraneous information. 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 an output schema exists, the description need not explain return values. It lists specific fields returned and mentions on-chain interaction. Could mention chain_id default or that it queries the specified router, but still fairly 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 the schema already describes all parameters. The description adds context that it queries the Functions Router contract, which implicitly explains the router_address parameter, but does not add significant new semantic meaning 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 verb 'Get' and the resource 'Chainlink Functions subscription details', listing specific fields (balance, owner, authorized consumers, request counts). It is specific enough to differentiate from siblings 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 guidance on when to use this tool versus alternatives such as chainlink_get_upkeep_info or vrf_get_subscription. No context for prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_get_upkeep_infoAInspect
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?
The description does not explicitly confirm read-only behavior, auth requirements, or error handling; while 'get' implies read-only, no annotations provide safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, directly states purpose and key return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered; description mentions key fields. Could add note on error conditions but sufficient for a simple info retrieval.
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 parameter descriptions, so the description adds little beyond listing returned fields; no new meaning for 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 'get' and the resource 'information about a Chainlink Automation upkeep', differentiating it from sibling tools like chainlink_check_upkeep which checks conditions.
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 vs alternatives like chainlink_check_upkeep or chainlink_get_subscription; the context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chainlink_list_feedsBInspect
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?
With no annotations provided, the description carries the full burden. It correctly indicates a read-only listing operation and mentions return fields. However, it omits details like what 'popular' means, whether results are paginated, or any authentication requirements. This is acceptable for a simple list tool 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?
The description is a single, front-loaded sentence with no wasted words. It is concise and to the point, though it could be more structured or include additional context without becoming verbose.
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 has one optional parameter and no complex output, the description is moderately complete. It explains what the tool returns but does not clarify the meaning of 'popular' or mention the output schema. For a low-complexity tool, this is adequate but not exceptional.
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 the single parameter 'chain', which already explains its role. The description adds the word 'popular' but does not enhance parameter semantics 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 'List' and the resource 'popular Chainlink data feed addresses for a given chain'. It specifies the return content: feed pairs, addresses, and decimal precision. However, it does not explicitly differentiate from sibling tools like chainlink_get_price or ds_list_feeds, though the mention of 'popular' provides some distinction.
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 versus alternatives. There is no mention of context, exclusions, or prerequisites, leaving the agent to infer usage without any help.
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, so description bears full burden. It mentions returned fields and low-latency but lacks disclosure of error behavior, rate limits, idempotency, or authentication requirements.
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?
Efficient two-sentence description followed by illustrative examples. Front-loaded with verb and resource, 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 output schema exists, description adequately covers inputs, output fields, and context. Lacks details on error handling or pagination, but sufficient for a straightforward 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?
Schema coverage is 100%, so baseline is 3. Description reinforces feed_id with an example and notes timestamp is optional (defaults to latest), adding minimal value 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 tool retrieves a Data Streams report for a specific feed ID, explains what Data Streams are, and lists returned fields. Provides example feed IDs, distinguishing it from sibling tools like ds_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?
Description implies usage for low-latency market data but does not explicitly state when to use or avoid this tool, nor compare it to siblings like ccip_get_fee or ds_list_feeds.
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 provided, so description bears full burden. It discloses that this is a read-only list operation returning specific fields. It does not mention auth requirements or rate limits, but for a list tool, this is adequate. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states purpose and return data; second sentence adds distinguishing context. No wasted words. Front-loaded with action verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter, presence of an output schema (not shown), and clear sibling differentiation, the description covers essentials. It could mention output schema details but is sufficient 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 only parameter 'asset_class' is fully described in the input schema with values and optional status. The description mentions the same asset classes as return values, adding slight context but not improving on schema. Baseline 3 due to 100% 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 verb 'List', the resource 'available Chainlink Data Streams feeds', and specifies returned data (feed IDs, pairs, asset classes). It also explicitly distinguishes this tool from the sibling 'chainlink_list_feeds', which lists slower on-chain Data 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 when to use this tool (for sub-second latency market data) versus alternatives (slower on-chain Data Feeds). It does not explicitly state 'when not to use' but provides enough context for an agent to differentiate.
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 full burden. It states it is a read operation returning reserve amounts, but does not disclose potential failure modes, data freshness, or whether the feed must be active. Adequate but not exhaustive.
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 covering purpose, interface comparison, and examples. Every sentence is relevant, but the examples could be more structured (e.g., bullet points). 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?
Output schema exists (not shown) and description explains the tool's role among Chainlink siblings. No critical missing information given the tool's straightforward nature.
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 listing well-known feed addresses and explaining the interface similarity to price feeds, which goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' and resource 'Chainlink Proof of Reserve feed' with a clear purpose 'verify asset reserves onchain'. It distinguishes itself from sibling tools like 'chainlink_get_price' by explicitly contrasting with 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 explains that it uses the same interface as price feeds but returns reserve amounts, and provides well-known feed addresses. However, it lacks explicit guidance on when not to use it (e.g., for price queries) or mention of 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?
Without annotations, description fully discloses return fields (addresses, names, descriptions) and is clearly a read-only list operation. No side effects mentioned, but none expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action and resource. 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 parameter-less tool with output schema, description adequately covers purpose and return fields. No mention of pagination or result limits, but simple list operation makes it 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?
No parameters exist, schema coverage is 100%. Description adds value by specifying 'well-known' feeds, qualifying the scope 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 'List well-known Chainlink Proof of Reserve feeds' and specifies exact outputs (addresses, names, descriptions). Distinguishes from siblings like 'chainlink_list_feeds' by focusing on PoR 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?
Implies usage for verifying reserve backing, but lacks explicit when-to-use, when-not-to-use, or alternative guidance among sibling tools.
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 must fully convey behavioral traits. It states it's a read operation ('Get') but does not disclose potential rate limits, authentication needs, or whether it queries a view function. The lack of any additional behavioral context beyond the basic return data is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence states the main purpose, the second lists return fields and supported chains. 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?
The description covers the tool's purpose, parameters, and return fields adequately. With an output schema (though not shown), the description complements it well. However, it does not mention error cases or the format of pending requests, leaving minor gaps. Still, it's largely complete for a 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?
Both parameters (chain, subscription_id) have descriptions in the schema, achieving 100% coverage. The description adds value by explaining the chain default and mentioning supported chains, plus outlining what the tool returns, which helps interpret the subscription_id context. However, it doesn't add syntax 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?
The description clearly states the tool retrieves VRF v2.5 subscription details, specifies the contract (VRFCoordinatorV2_5), and lists returned data (balance, owner, consumers, pending requests). It also names supported chains, distinguishing it from sibling tools like chainlink_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 implies when to use (to get subscription details) and mentions supported chains, but lacks explicit guidance on when not to use it or alternatives (e.g., chainlink_get_subscription for v2). No context about prerequisites or conditions.
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?
No annotations are provided, so the description carries the full burden. It discloses that the tool builds calldata (not executes), and supports LINK or native payment. It does not discuss permissions, reversibility, or side effects beyond calldata generation.
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 purpose. Every sentence adds value: what it does, how it works (calldata for requestRandomWords), and payment support. 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?
Has output schema, so return values need not be explained. Given 7 parameters and 2 required, the description covers key aspects (chain options, payment) but is brief. It doesn't mention prerequisites like having a consumer contract deployed, which is acceptable.
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 general context about payment options and overall purpose but does not elaborate on individual parameter semantics beyond what the schema 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 builds transaction calldata for a VRF v2.5 random words request, with specific verb 'build' and resource 'calldata'. It distinguishes from sibling tools like vrf_get_subscription by focusing on calldata generation.
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 mentions the caller must sign and submit the transaction from a consumer contract, and notes payment options. However, it does not explicitly state when to use this tool over other VRF tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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!