FabTally Chain
Server Details
On-chain monitoring reads: ENS/Basename expiry, gas, token unlocks & Chainlink oracle health.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- zvmzaretsky/fabtally-chain-mcp
- GitHub Stars
- 0
- Server Listing
- fabtally-chain-mcp
TDQS
Scored across 4 tools
Each tool targets a distinct on-chain data category: ENS expiry, gas fees, oracle health, and token unlocks. There is no overlap in purpose or arguments, making selection unambiguous.
All tool names follow a consistent snake_case format with descriptive nouns (ens_expiry, gas, oracle_health, token_unlocks). No mixed conventions or vague verbs are present.
Four tools is a well-scoped size for a focused read-only blockchain data server. Each tool provides a distinct service without redundancy or unnecessary bloat.
The set covers common on-chain data needs (ENS, gas, oracles, token emissions), but could be more comprehensive by including e.g. block/transaction info or token balances. However, within its apparent niche it is reasonably complete.
Available Tools
4 toolsens_expiryENS / Basename expiry lookup (paid $0.001)AInspect
PAID $0.001 (x402, USDC on Base). Resolve an ENS .eth or Basename .base.eth name's registration expiry ON-CHAIN (public RPC). Returns expiry date, days-left, whether it's in the 90-day grace period, the release date it becomes registrable again, and the current owner. Read-only, descriptive. Args: name. Without payment returns the x402 challenge; pass x_payment to settle.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full ENS name ending in .eth (e.g. vitalik.eth) or .base.eth (e.g. jesse.base.eth). | |
| x_payment | No | x402 payment payload (base64) for this PAID read. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the paid nature, the on-chain read via public RPC, the read-only characteristic, and the exact return fields (expiry date, days-left, grace period, release date, owner). It also explains the 402 challenge behavior. However, it does not mention error scenarios (e.g., invalid name) or rate limits, leaving some behavioral gaps.
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, immediately stating the paid nature and the tool's function. Each sentence serves a purpose: payment info, what it resolves, what it returns, read-only status, and the argument/payment flow. 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?
Even without an output schema, the description lists the key returned data (expiry date, days-left, grace period, release date, owner) and explains the payment/challenge mechanism. It is reasonably complete for a lookup tool of moderate complexity, though it omits potential error conditions or formatting details. Siblings being unrelated means differentiation is not urgent.
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 already provides 100% coverage with detailed descriptions for both parameters (name and x_payment). The description adds minimal extra meaning beyond restating the argument names and the payment flow, which the schema also explains. Thus, the schema carries the heavy lifting, so a 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 tool resolves ENS .eth or Basename .base.eth registration expiry on-chain. It uses specific verbs ('Resolve', 'lookup') and names the resource ('registration expiry'), distinguishing it from sibling tools like gas, token_unlocks, and oracle_health, which address different domains.
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 clear context for usage: it is a paid read ($0.001 via x402), and explains the two-step flow (omit x_payment to get a challenge, supply it to settle and get the result). It does not explicitly discuss when not to use it or name alternative tools, but the context is sufficient given the unrelated siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gasCurrent gas for a chain (paid $0.001)AInspect
PAID $0.001 (x402, USDC on Base). Current gas for a chain via public RPC: base fee + suggested priority + suggested max fee (gwei) at the latest block. If below_gwei is set, also returns whether the base fee is at/below your threshold right now. Read-only. Args: chain (ethereum|base|arbitrum|polygon|bsc|optimism), below_gwei (optional). Without payment returns the x402 challenge; pass x_payment to settle.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain to read gas for. | |
| x_payment | No | x402 payment payload (base64) for this PAID read. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first. | |
| below_gwei | No | Optional threshold: return a boolean of whether base fee is at/below this many gwei now. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does an excellent job. It discloses the paid nature, the read-only trait, and the key behavior of returning a challenge without payment. It also specifies what data is returned (base fee, suggested priority, suggested max fee) and the conditional boolean when below_gwei is set. There is no mention of rate limits or error cases, but the critical behaviors are transparent enough for an agent to know what to expect.
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 compact and front-loaded with the crucial paid indicator. However, it includes a redundant 'Args: chain (...), below_gwei (optional)' line that repeats the schema, and it omits x_payment from that enumeration (though it is mentioned later). This slight redundancy and minor inconsistency prevent a perfect score, but the overall length and structure are efficient.
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 there is no output schema, the description adequately explains the return values: gas fee components and the optional threshold boolean. It also clarifies the payment challenge behavior. It does not specify the exact output format (e.g., JSON structure), but the core outputs are described. The tool is relatively simple, and the description is sufficiently complete for an agent to invoke it correctly.
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 schema description coverage is 100%, so the baseline is 3. The description adds some value by explaining the x_payment flow and the challenge/settle mechanism, but it does not add much beyond the schema: chain enum values are already listed, below_gwei's threshold behavior is already in the schema, and the 'Args' line is redundant. The parameter semantics are fully captured by the schema, so no upgrade beyond baseline.
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 what the tool does: 'Current gas for a chain via public RPC: base fee + suggested priority + suggested max fee (gwei) at the latest block.' This is a specific verb+resource combination that also differentiates from siblings like ens_expiry, token_unlocks, and oracle_health, which serve entirely different purposes. The tool's name 'gas' is fully explained.
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 clear context: it explains the payment requirement ('PAID $0.001 (x402, USDC on Base)') and how to settle with x_payment, plus the fallback behavior ('Without payment returns the x402 challenge; pass x_payment to settle'). It does not name explicit alternative tools, but the sibling list makes the absence of competition clear, and the usage context is well-defined by the payment flow and read-only nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle_healthChainlink price-feed health (paid $0.003)AInspect
PAID $0.003 (x402, USDC on Base). Chainlink price-feed health via public RPC: last-update age, latest answer (scaled by decimals), round monotonicity (is the answer current?), a stale flag vs the heartbeat, optional deviation vs a reference price, and per-factor flags. Read-only, descriptive. Args: feed_address, chain, heartbeat_seconds (optional), reference (optional). Without payment returns the x402 challenge; pass x_payment.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain the feed is deployed on. | |
| reference | No | A reference price to compute deviation % against (optional). | |
| x_payment | No | x402 payment payload (base64) for this PAID read. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first. | |
| feed_address | Yes | Chainlink aggregator/proxy address (0x…40-hex), e.g. ETH/USD 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419. | |
| heartbeat_seconds | No | The feed's heartbeat in seconds for a precise stale check (optional). |
TDQS
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 the read-only nature, the payment requirement via x402 (including a challenge flow), and the key behavioral aspects such as using public RPC and computing a stale flag. It does not mention error handling, rate limits, or exact return structure, but it covers the most important behaviors.
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 detailed but well-organized, front-loading the cost and immediately enumerating the checks. It is somewhat long but information-dense. The listing of arguments repeats schema information, which could be trimmed, but the overall structure is readable and efficient.
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 read-only health check with no output schema, the description covers core behaviors, payment flow, and optional parameters. However, it does not specify the output format (e.g., JSON shape) or behavior on invalid inputs (e.g., bad feed address or chain), which an agent might need for robust invocation. Given the tool's complexity, the description is fairly complete but leaves some 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 schema already documents all five parameters in detail. The description adds limited extra semantics, primarily explaining the x_payment flow (omitting vs passing it) and noting optional parameters. This supplements the schema slightly but does not significantly enhance meaning beyond it.
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: assessing Chainlink price-feed health via public RPC, with a specific list of checks performed (last-update age, latest answer, round monotonicity, stale flag, deviation). It distinguishes from sibling tools by focusing on price feed health, and the read-only nature is explicit.
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 (checking price feed health) and explains the payment flow (omit x_payment for challenge, pass it for result), but it does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. It lacks comparative context for sibling tools like gas or token_unlocks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_unlocksNext token vesting/unlock event(s) (paid $0.003)AInspect
PAID $0.003 (x402, USDC on Base). Next token vesting/unlock event(s) from DefiLlama's PUBLIC emissions dataset: upcoming unlock date(s), token amount, and % of max supply, with a human description. Cleanly says so when a token has no public unlock schedule. Read-only, descriptive — NOT a price signal. Args: token (symbol, protocol name, or contract address), chain (optional, for address lookup). Without payment returns the x402 challenge; pass x_payment to settle.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain of the contract address (only used when token is an address). | |
| token | Yes | Token symbol (e.g. ARB), protocol name (e.g. arbitrum), or contract address. | |
| x_payment | No | x402 payment payload (base64) for this PAID read. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure. It specifies the payment requirement ($0.003, x402, USDC on Base), the read-only nature, the data source (DefiLlama public emissions), the 402 challenge flow, and the behavior for tokens without a public schedule. This is comprehensive and goes well beyond the schema.
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 (about 100 words), front-loaded with the critical payment flag, then states the core function, data content, disclaimers, and argument details. Every sentence carries useful information without redundancy, making it easy to parse and act on.
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 no output schema, but the description enumerates the returned information (dates, amount, % supply, human description) and the no-public-schedule edge case. It also explains the payment protocol and argument behavior. This is complete for a read-only descriptive 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 description coverage is 100%, so the baseline is 3. The description restates what the schema already documents (token symbol/protocol/address, chain for address lookup, x_payment purpose). It adds no meaningful semantic information beyond the schema, so a 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 tool's function: 'Next token vesting/unlock event(s)' with specifics about unlocking date, token amount, and % of max supply. It also distinguishes itself from siblings (ens_expiry, gas, oracle_health) by focusing on token unlocks and explicitly notes it is 'NOT a price signal.'
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 gives clear context on when to use it (when you need upcoming unlock events) and when not to (it is not a price signal). It also explains the argument formats and the payment flow, though it does not explicitly name alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
ens_expiry - First observed
gas - First observed
oracle_health - First observed
token_unlocks
Related MCP Connectors
EVM gas, Chainlink prices, token-safety, swap quotes, ENS, OFAC & NFT via x402.
Independent uptime oracle for the x402 agent economy. Free probes, paid history via USDC on Base.
Ethereum MCP: Chainlink feeds, gas, ERC-20, ENS, ABI, contract calls, ERC-8004, EAS.
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables auditing cross-chain bridge token reserve invariants and monitoring outflow spikes for LayerZero and Wormhole bridges, helping detect reserve anomalies and potential vulnerabilities.8-
- AlicenseAqualityBmaintenanceOn-chain crypto indicators (EMA, RSI, VWAP, Bollinger) via Chainlink oracles.181MIT
- AlicenseNot gradedqualityCmaintenanceAI DeFi risk monitor for Base L2 that exposes MCP tools for real-time protocol health checks, anomaly detection, risk reporting, and threshold alerts.MIT
- AlicenseNot gradedqualityBmaintenanceRead-only on-chain intelligence for AI agents on Base, providing tools to read balances, token metadata, gas, and transaction status live from chain without API keys.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.