sentinel_scan
Monitor Chainlink oracle performance across multiple EVM chains by scanning price feeds, detecting anomalies, and checking data staleness.
Instructions
Run a full cross-chain Chainlink oracle scan across 6+ EVM chains. Returns all feed prices, staleness, and detected anomalies.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/mcp/server.ts:31-68 (handler)The handler for "sentinel_scan" tool. It calls `crossChainScan` and `detectAnomalies` to aggregate data and format it into a text response for the MCP client.
server.tool( "sentinel_scan", "Run a full cross-chain Chainlink oracle scan across 6+ EVM chains. Returns all feed prices, staleness, and detected anomalies.", {}, async () => { const feeds = await crossChainScan(); const anomalies = detectAnomalies(feeds); const feedLines = feeds.map( (f) => `${f.chain.padEnd(10)} ${f.pair.padEnd(10)} $${f.price.toFixed(4).padStart(12)} updated ${Math.floor(f.staleness / 60)}m ago` ); const anomalyLines = anomalies.length > 0 ? anomalies.map((a) => `[${a.severity.toUpperCase()}] ${a.type}: ${a.details}`) : ["No anomalies detected."]; return { content: [ { type: "text", text: [ `**Chainlink Sentinel — Cross-Chain Scan**`, `Feeds: ${feeds.length} | Chains: ${[...new Set(feeds.map((f) => f.chain))].length} | Anomalies: ${anomalies.length}`, "", "```", ...feedLines, "```", "", "**Anomalies:**", ...anomalyLines, ].join("\n"), }, ], }; } );