# Chainlink > On-chain contract: Chainlink. 30 functions, 5 events. MCP endpoint: https://chainlink.mcp.junct.dev/mcp Domain: oracle Auth: none ## Tools ## Write ### acceptOwnership Calls acceptOwnership(). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Completes a two-step ownership transfer. Must be called by the pending owner address set via transferOwnership(). No return value. _No parameters required._ ### confirmFeed Calls confirmFeed(base: string, quote: string, aggregator: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `aggregator` (string, required): address (Ethereum address, 0x-prefixed). ### proposeFeed Calls proposeFeed(base: string, quote: string, aggregator: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `aggregator` (string, required): address (Ethereum address, 0x-prefixed). ### setAccessController Calls setAccessController(_accessController: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value. **Parameters:** - `_accessController` (string, required): address (Ethereum address, 0x-prefixed). ### transferOwnership Calls transferOwnership(to: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Transfers ownership to a new address. The new owner must call acceptOwnership() to complete the transfer (two-step pattern). No return value. **Parameters:** - `to` (string, required): address (Ethereum address, 0x-prefixed). ## Read ### decimals Calls decimals(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint8. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### description Calls description(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns string. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### getAccessController Calls getAccessController(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### getAnswer Calls getAnswer(base: string, quote: string, roundId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns answer (int256). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `roundId` (string, required): uint256 (uint256, pass as decimal string). ### getCurrentPhaseId Calls getCurrentPhaseId(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns currentPhaseId (uint16). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### getFeed Calls getFeed(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns aggregator (address). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### getNextRoundId Calls getNextRoundId(base: string, quote: string, roundId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns nextRoundId (uint80). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `roundId` (string, required): uint80 (uint80, pass as decimal string). ### getPhase Calls getPhase(base: string, quote: string, phaseId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns phase (tuple). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `phaseId` (string, required): uint16 (uint16, pass as decimal string). ### getPhaseFeed Calls getPhaseFeed(base: string, quote: string, phaseId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns aggregator (address). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `phaseId` (string, required): uint16 (uint16, pass as decimal string). ### getPhaseRange Calls getPhaseRange(base: string, quote: string, phaseId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { startingRoundId: string, endingRoundId: string }. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `phaseId` (string, required): uint16 (uint16, pass as decimal string). ### getPreviousRoundId Calls getPreviousRoundId(base: string, quote: string, roundId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns previousRoundId (uint80). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `roundId` (string, required): uint80 (uint80, pass as decimal string). ### getProposedFeed Calls getProposedFeed(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns proposedAggregator (address). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### getRoundData Calls getRoundData(base: string, quote: string, _roundId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { roundId: string, answer: string, startedAt: string, updatedAt: string, answeredInRound: string }. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `_roundId` (string, required): uint80 (uint80, pass as decimal string). ### getRoundFeed Calls getRoundFeed(base: string, quote: string, roundId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns aggregator (address). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `roundId` (string, required): uint80 (uint80, pass as decimal string). ### getTimestamp Calls getTimestamp(base: string, quote: string, roundId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns timestamp (uint256). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `roundId` (string, required): uint256 (uint256, pass as decimal string). ### isFeedEnabled Calls isFeedEnabled(aggregator: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool. **Parameters:** - `aggregator` (string, required): address (Ethereum address, 0x-prefixed). ### latestAnswer Calls latestAnswer(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns answer (int256). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### latestRound Calls latestRound(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns roundId (uint256). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### latestRoundData Calls latestRoundData(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { roundId: string, answer: string, startedAt: string, updatedAt: string, answeredInRound: string }. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### latestTimestamp Calls latestTimestamp(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns timestamp (uint256). **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### owner Calls owner(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address. _No parameters required._ ### proposedGetRoundData Calls proposedGetRoundData(base: string, quote: string, roundId: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { id: string, answer: string, startedAt: string, updatedAt: string, answeredInRound: string }. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). - `roundId` (string, required): uint80 (uint80, pass as decimal string). ### proposedLatestRoundData Calls proposedLatestRoundData(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { id: string, answer: string, startedAt: string, updatedAt: string, answeredInRound: string }. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ### typeAndVersion Calls typeAndVersion(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns string. _No parameters required._ ### version Calls version(base: string, quote: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256. **Parameters:** - `base` (string, required): address (Ethereum address, 0x-prefixed). - `quote` (string, required): address (Ethereum address, 0x-prefixed). ## Event ### AccessControllerSet Event emitted by the contract. Indexed fields (filterable): accessController, sender. Subscribe via log filters. **Parameters:** - `accessController` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `sender` (string, required): address (Ethereum address, 0x-prefixed) (indexed). ### FeedConfirmed Event emitted by the contract. Indexed fields (filterable): asset, denomination, latestAggregator. Subscribe via log filters. **Parameters:** - `asset` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `denomination` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `latestAggregator` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `previousAggregator` (string, required): address (Ethereum address, 0x-prefixed). - `nextPhaseId` (string, required): uint16 (uint16, pass as decimal string). - `sender` (string, required): address (Ethereum address, 0x-prefixed). ### FeedProposed Event emitted by the contract. Indexed fields (filterable): asset, denomination, proposedAggregator. Subscribe via log filters. **Parameters:** - `asset` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `denomination` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `proposedAggregator` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `currentAggregator` (string, required): address (Ethereum address, 0x-prefixed). - `sender` (string, required): address (Ethereum address, 0x-prefixed). ### OwnershipTransferRequested Event emitted by the contract. Indexed fields (filterable): from, to. Subscribe via log filters. **Parameters:** - `from` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `to` (string, required): address (Ethereum address, 0x-prefixed) (indexed). ### OwnershipTransferred Event emitted by the contract. Indexed fields (filterable): from, to. Subscribe via log filters. **Parameters:** - `from` (string, required): address (Ethereum address, 0x-prefixed) (indexed). - `to` (string, required): address (Ethereum address, 0x-prefixed) (indexed). ## Usage Connect to this MCP server at `https://chainlink.mcp.junct.dev/mcp`. All tools are callable via the MCP protocol. Call `decimals` first to query current state before any write operations. Write operations like `acceptOwnership` return data or calldata for agent use.