# xyz.tenzro/tenzro-chainlink (remote · chainlink-mcp.tenzro.xyz)

Chainlink tools over MCP: CCIP cross-chain, data feeds, data streams, VRF, proof of reserve.

- Trust score: 65/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `chainlink-mcp.tenzro.xyz`: 65/100 (this document), [markdown](https://verifymcp.io/servers/xyz-tenzro-tenzro-chainlink/chainlink-mcp.md), [page](https://verifymcp.io/servers/xyz-tenzro-tenzro-chainlink/chainlink-mcp)

## Channel facts

- Endpoint: `https://chainlink-mcp.tenzro.xyz/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 21 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3266 tokens (~155/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http xyz-tenzro-tenzro-chainlink https://chainlink-mcp.tenzro.xyz/mcp
```

### Codex

```toml
[mcp_servers.xyz-tenzro-tenzro-chainlink]
url = "https://chainlink-mcp.tenzro.xyz/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "xyz-tenzro-tenzro-chainlink": {
      "type": "remote",
      "url": "https://chainlink-mcp.tenzro.xyz/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add xyz-tenzro-tenzro-chainlink --url https://chainlink-mcp.tenzro.xyz/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  xyz-tenzro-tenzro-chainlink:
    url: "https://chainlink-mcp.tenzro.xyz/mcp"
```

### Other

```json
{
  "mcpServers": {
    "xyz-tenzro-tenzro-chainlink": {
      "type": "http",
      "url": "https://chainlink-mcp.tenzro.xyz/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 64, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 64, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 62, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 61)

First indexed and scored.

## MCP tools (21)

### `ccip_get_fee` (~238 tokens)

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.

Input parameters:

- `data_hex` (string|null): Hex-encoded data payload to send (with or without 0x prefix). Use '0x' or '' for empty
- `dst_chain_selector` (string, required): Destination CCIP chain selector (uint64). E.g. 4949039107694359620 for Arbitrum
- `fee_token` (string|null): Fee token address. Use zero address (0x0000...0000) for native gas token payment
- `receiver` (string, required): Hex-encoded receiver address on the destination chain (with or without 0x prefix)
- `src_chain_id` (string, required): Source chain identifier: 'ethereum', 'base', 'arbitrum', or a chain ID number
- `token_amounts` (array|null): Token amounts to transfer as JSON array of {token, amount} objects. Empty array for message-only

Output parameters:

- `result`: Underlying response payload verbatim.

### `ccip_get_lanes` (~98 tokens)

Get available CCIP lanes (source-destination chain pairs) from the Chainlink REST API. Optionally filter by source or destination chain selector.

Input parameters:

- `dest_chain_selector` (string|null): Optional destination chain selector to filter lanes
- `environment` (string|null): Environment: 'mainnet' or 'testnet'. Defaults to 'mainnet'
- `source_chain_selector` (string|null): Optional source chain selector to filter lanes

Output parameters:

- `result`: Underlying response payload verbatim.

### `ccip_get_rate_limits` (~129 tokens)

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.

Input parameters:

- `chain` (string|null): Chain the pool is deployed on: 'ethereum', 'base', 'arbitrum'. Defaults to 'ethereum'
- `pool_address` (string, required): Token pool contract address (hex with 0x prefix)
- `remote_chain_selector` (string, required): Remote chain selector (uint64) to query rate limits for

Output parameters:

- `result`: Underlying response payload verbatim.

### `ccip_get_supported_chains` (~61 tokens)

Get supported chains for Chainlink CCIP from the Chainlink REST API. Returns chain names, selectors, and network details.

Input parameters:

- `environment` (string|null): Environment: 'mainnet' or 'testnet'. Defaults to 'mainnet'

Output parameters:

- `result`: Underlying response payload verbatim.

### `ccip_get_supported_tokens` (~60 tokens)

Get supported tokens for Chainlink CCIP from the Chainlink REST API. Returns token addresses, symbols, and supported lanes.

Input parameters:

- `environment` (string|null): Environment: 'mainnet' or 'testnet'. Defaults to 'mainnet'

Output parameters:

- `result`: Underlying response payload verbatim.

### `ccip_get_token_pool` (~115 tokens)

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

Input parameters:

- `chain` (string|null): Chain: 'ethereum', 'base', 'arbitrum'. Defaults to 'ethereum'
- `pool_address` (string, required): Token pool contract address (hex with 0x prefix)

Output parameters:

- `result`: Underlying response payload verbatim.

### `ccip_send_message` (~211 tokens)

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.

Input parameters:

- `data_hex` (string|null): Hex-encoded data payload
- `dst_chain_selector` (string, required): Destination CCIP chain selector (uint64)
- `fee_token` (string|null): Fee token address (zero address for native). Defaults to native
- `gas_limit` (integer|null): Gas limit for execution on destination chain (default: 200000)
- `receiver` (string, required): Hex-encoded receiver address on the destination chain
- `sender_key` (string, required): Hex-encoded sender private key for signing the transaction
- `src_chain_id` (string, required): Source chain: 'ethereum', 'base', 'arbitrum', or chain ID
- `token_amounts` (array|null): Token amounts to transfer as JSON array of {token, amount} objects

Output parameters:

- `result`: Underlying response payload verbatim.

### `ccip_track_message` (~153 tokens)

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

Input parameters:

- `dst_chain_id` (string, required): Destination chain: 'ethereum', 'base', 'arbitrum', or chain ID
- `message_id` (string, required): CCIP message ID (64-byte hex, with or without 0x prefix)
- `offramp_address` (string, required): OffRamp contract address on the destination chain (hex with 0x prefix)

Output parameters:

- `result`: Underlying response payload verbatim.

### `chainlink_broadcast_signed_tx` (~147 tokens)

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.

Input parameters:

- `chain` (string, required): Source chain to broadcast on: 'ethereum', 'base', 'arbitrum'
- `signed_tx_hex` (string, required): Pre-signed RLP-encoded transaction as hex (0x-prefixed). Build via ccip_send_message → external signer, or vrf_request_random → external signer.

Output parameters:

- `result`: Underlying response payload verbatim.

### `chainlink_check_upkeep` (~130 tokens)

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.

Input parameters:

- `chain_id` (string|null): Chain to query: 'ethereum', 'arbitrum', 'base', or chain ID. Defaults to 'ethereum'
- `check_data` (string|null): Hex-encoded check data to pass to checkUpkeep (with or without 0x prefix). Defaults to empty
- `contract_address` (string, required): Address of the Automation-compatible contract (hex with 0x prefix)

Output parameters:

- `result`: Underlying response payload verbatim.

### `chainlink_estimate_functions_cost` (~132 tokens)

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.

Input parameters:

- `callback_gas_limit` (integer, required): Callback gas limit for the fulfillment
- `chain_id` (string|null): Chain to query. Defaults to 'ethereum'
- `gas_price_wei` (string|null): Gas price in wei for cost estimation
- `router_address` (string, required): Functions Router address (hex with 0x prefix)
- `subscription_id` (string, required): Functions subscription ID (uint64)

Output parameters:

- `result`: Underlying response payload verbatim.

### `chainlink_get_price` (~205 tokens)

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.

Input parameters:

- `chain_id` (string|null): Chain to query: 'ethereum', 'arbitrum', 'base', or a chain ID. Defaults to 'ethereum'
- `feed_address` (string, required): Chainlink data feed contract address (hex with 0x prefix). E.g. 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 for ETH/USD

Output parameters:

- `result`: Underlying response payload verbatim.

### `chainlink_get_subscription` (~84 tokens)

Get Chainlink Functions subscription details including balance, owner, authorized consumers, and request counts. Queries the Functions Router contract on-chain.

Input parameters:

- `chain_id` (string|null): Chain to query. Defaults to 'ethereum'
- `router_address` (string, required): Functions Router address (hex with 0x prefix)
- `subscription_id` (string, required): Subscription ID (uint64)

Output parameters:

- `result`: Underlying response payload verbatim.

### `chainlink_get_upkeep_info` (~105 tokens)

Get information about a Chainlink Automation upkeep from the registry. Returns the upkeep target, balance, gas limit, and execution status.

Input parameters:

- `chain_id` (string|null): Chain to query: 'ethereum', 'arbitrum', 'base', or chain ID. Defaults to 'ethereum'
- `registry_address` (string, required): Automation Registry address (hex with 0x prefix)
- `upkeep_id` (string, required): Upkeep ID (uint256 as decimal string)

Output parameters:

- `result`: Underlying response payload verbatim.

### `chainlink_list_feeds` (~63 tokens)

List popular Chainlink data feed addresses for a given chain. Returns feed pairs, addresses, and decimal precision.

Input parameters:

- `chain` (string|null): Optional chain to list feeds for: 'ethereum', 'arbitrum', 'base'. Defaults to 'ethereum'

Output parameters:

- `result`: Underlying response payload verbatim.

### `ds_get_report` (~218 tokens)

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.

Input parameters:

- `feed_id` (string, required): Data Streams feed ID (hex string, e.g. '0x000359843a543ee2fe414dc14c7e7920ef10f4372990b79d6361cdc0dd1ba782' for ETH/USD)
- `timestamp` (integer|null): Unix timestamp to query (optional — latest if omitted)

Output parameters:

- `result`: Underlying response payload verbatim.

### `ds_list_feeds` (~86 tokens)

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.

Input parameters:

- `asset_class` (string|null): Filter by asset class: 'crypto', 'forex', 'equities', 'commodities' (optional)

Output parameters:

- `result`: Underlying response payload verbatim.

### `por_get_reserve` (~241 tokens)

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.

Input parameters:

- `chain` (string|null): Chain: 'ethereum'. Defaults to 'ethereum'
- `feed_address` (string, required): Proof of Reserve feed contract address (hex). Well-known: WBTC=0xa81FE04086865e63E12dD3776978E49DEEa2ea4e, USDC=0x9a177Bb065A0636C7972C6D27Abcd4B1e5EDb65c

Output parameters:

- `result`: Underlying response payload verbatim.

### `por_list_feeds` (~39 tokens)

List well-known Chainlink Proof of Reserve feeds. Returns feed addresses, asset names, and descriptions for verifying reserve backing of wrapped/synthetic assets.

Output parameters:

- `result`: Underlying response payload verbatim.

### `vrf_get_subscription` (~95 tokens)

Get VRF v2.5 subscription details from the VRFCoordinatorV2_5 contract. Returns balance, owner, authorized consumers, and pending requests. Supports Ethereum, Arbitrum, and Base.

Input parameters:

- `chain` (string|null): Chain: 'ethereum', 'arbitrum', 'base'. Defaults to 'ethereum'
- `subscription_id` (string, required): VRF subscription ID (uint256 as decimal string)

Output parameters:

- `result`: Underlying response payload verbatim.

### `vrf_request_random` (~221 tokens)

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.

Input parameters:

- `callback_gas_limit` (integer|null): Callback gas limit (default: 100000)
- `chain` (string|null): Chain: 'ethereum', 'arbitrum', 'base'. Defaults to 'ethereum'
- `key_hash` (string, required): VRF key hash for the gas lane (hex, 32 bytes)
- `native_payment` (boolean|null): Pay in native token instead of LINK (default: false)
- `num_words` (integer|null): Number of random words to request (default: 1, max: 500)
- `request_confirmations` (integer|null): Number of block confirmations before fulfillment (default: 3)
- `subscription_id` (string, required): VRF subscription ID (uint256 as decimal string)

Output parameters:

- `result`: Underlying response payload verbatim.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/xyz-tenzro-tenzro-chainlink/chainlink-mcp#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 65
- 2026-08-01: 64
- 2026-07-31: 64
- 2026-07-30: 64
- 2026-07-29: 63
- 2026-07-28: 63
- 2026-07-27: 62
- 2026-07-26: 61

## Links

- Remote endpoint: https://chainlink-mcp.tenzro.xyz/mcp
- Changelog RSS feed: https://verifymcp.io/servers/xyz-tenzro-tenzro-chainlink/chainlink-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/xyz-tenzro-tenzro-chainlink/chainlink-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/xyz-tenzro-tenzro-chainlink/chainlink-mcp
