sentinel_feed
Read real-time Chainlink price feed data for cryptocurrency pairs across multiple blockchain networks to monitor market prices.
Instructions
Read a single Chainlink price feed (e.g., BTC/USD on ethereum)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain name | |
| pair | Yes | Price pair (e.g., BTC/USD, ETH/USD, LINK/USD) |
Implementation Reference
- src/mcp/server.ts:110-145 (handler)The handler implementation for the `sentinel_feed` tool, which uses `readFeed` to retrieve price data and formats it as Markdown.
server.tool( "sentinel_feed", "Read a single Chainlink price feed (e.g., BTC/USD on ethereum)", { chain: z.enum(chains as [string, ...string[]]).describe("Chain name"), pair: z.string().describe("Price pair (e.g., BTC/USD, ETH/USD, LINK/USD)"), }, async ({ chain, pair }) => { const feed = await readFeed(chain, pair); if (!feed) { const available = Object.keys(FEED_REGISTRY[chain] || {}).join(", "); return { content: [ { type: "text", text: `Feed ${pair} not found on ${chain}. Available: ${available || "none"}`, }, ], }; } return { content: [ { type: "text", text: [ `**${feed.description}** (${feed.chain})`, `Price: $${feed.price.toFixed(4)}`, `Decimals: ${feed.decimals}`, `Round ID: ${feed.roundId}`, `Updated: ${feed.updatedAt.toISOString()} (${Math.floor(feed.staleness / 60)}m ago)`, ].join("\n"), }, ], }; } );