Web3Juice
Server Details
Evidence-backed DeFi yield data for AI assistants: market summaries by chain or protocol, pool detail with base vs reward-token APY, 90-day history and side-by-side comparisons for ~17,000 pools on 100+ chains. Every number dated; unknowns stay unknown. Read-only: no wallets, signing or transactions. No sign-in needed. Docs: https://web3juice.com/mcp
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool has a distinct scope: search_pools finds pools, get_pool gives current detail for one pool, get_pool_history gives historical trend for one pool, compare_pools compares multiple pools, and summarize_yields aggregates a filtered market. The two metadata tools are also clearly separated from pool data tools. Any overlap between search_pools and summarize_yields is resolved by their different outputs: ranked rows versus grouped market statistics.
All tool names use lowercase snake_case with a consistent verb_noun or action-oriented pattern: compare_pools, get_data_sources, get_methodology, get_pool, get_pool_history, search_pools, summarize_yields. The use of get_*, search_*, compare_*, and summarize_* is predictable and readable. No mixed casing or chaotic naming appears.
Seven tools is well-scoped for a DeFi yield analytics server. Each tool covers a needed operation: discovery, detail, history, comparison, aggregation, and provenance/methodology. There is no obvious redundant or filler tool.
The read-only domain is covered end to end: search_pools for discovery, get_pool for details, get_pool_history for trends, compare_pools for side-by-side analysis, and summarize_yields for market overview. Data-source and methodology tools provide important context for interpreting the experimental assessment and unverified links. No critical read-only lifecycle operation appears missing.
Available Tools
7 toolscompare_poolsCompare pools side by sideARead-onlyIdempotentInspect
Compare 2 to 5 pools by id: current APY, base vs reward split, 30-day median and range, TVL, type, withdrawal evidence, assessment and data age, in one table.
| Name | Required | Description | Default |
|---|---|---|---|
| poolIds | Yes | 2 to 5 exact pool ids, e.g. "pool:<id>" or "vault:<id>". |
Output Schema
| Name | Required | Description |
|---|---|---|
| asOf | Yes | |
| pools | Yes | |
| version | Yes | |
| limitations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed-world scope, so the safety profile is fully covered. The description adds only that the output is consolidated 'in one table' with assessment and data-age columns; it says nothing about behavior on invalid/missing ids, partial results, or freshness limits.
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?
A single front-loaded sentence with the action first and the returned fields enumerated compactly. The colon-list is dense, but no sentence is wasted and nothing important is buried.
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?
With an output schema present, the description need not explain return values, and the rich annotations cover safety. The one-parameter schema is fully documented, so an agent has what it needs; only failure-mode behavior (e.g., unknown ids, fewer than two valid pools) is left unaddressed.
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% and the single parameter already documents the 2-to-5 range and the 'pool:<id>' / 'vault:<id>' id format. The description's '2 to 5 pools by id' simply restates the schema, adding no new syntax or edge-case guidance.
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 gives a specific verb (compare) and resource (pools), plus an explicit cardinality bound (2 to 5) and the exact fields returned. This implicitly separates it from the single-pool get_pool and the query-oriented search_pools, but no sibling is named outright.
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?
Usage is implied by 'compare 2 to 5 pools by id' and the fact that results come back 'in one table', but there is no explicit when-to-use guidance, no stated alternative (e.g., get_pool for a single pool, summarize_yields for aggregate views), and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_data_sourcesCheck data sourcesARead-onlyIdempotentInspect
Which feeds Web3Juice uses, their status, when they last updated and how many pools each lists.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| asOf | Yes | |
| sources | Yes | |
| version | Yes | |
| collectedAt | Yes | |
| limitations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety behavior is covered. The description adds that output includes status, last update time, and pool counts per feed, which is useful context beyond annotations. However, it doesn't mention freshness, caching, or how to interpret 'status' values. With annotations covering safety, a 3 is appropriate.
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?
A single sentence that front-loads the resource and enumerates the returned fields efficiently. No filler words; every clause adds informational value.
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?
An output schema exists, so the description needn't detail return values, but it helpfully summarizes what's returned (status, last update, pool counts). Combined with annotations, this is nearly complete. A minor gap is the lack of guidance on when to consult this before other tools.
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?
Zero parameters, so baseline is 4. The description correctly implies no inputs are needed by describing a pure listing operation. No parameter documentation is required or missing.
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?
States a specific resource (data sources/feeds Web3Juice uses) with a clear read intent. It doesn't explicitly differentiate from siblings like get_methodology, but the resource is distinctive enough that confusion is unlikely. Clear verb-resource pairing.
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?
No when-to-use guidance, no mention of alternatives, and no conditions under which an agent should call this versus other introspection tools like get_methodology. The purpose is implied by the description but usage context is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_methodologyExplain the assessmentARead-onlyIdempotentInspect
How the experimental evidence assessment works: dimensions, weights, caps and why most pools show "not scored". A score is not a safety guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| config | Yes | |
| version | Yes | |
| weights | Yes | |
| limitations | Yes | |
| experimental | Yes | |
| rubricVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description still adds genuine behavioral context: it pre-empts confusion about the widespread "not scored" state and warns that a score is not a safety guarantee — framing an agent cannot get from structured fields.
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?
Two tight sentences: the first enumerates what the explanation covers, the second delivers the key caveat. Front-loaded and every clause earns its place with no filler.
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?
With an output schema present and no parameters, the description need not document return values, and it appropriately limits itself to signaling scope and the caveat. It is essentially complete, with only the missing explicit usage trigger as a minor gap.
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 tool takes zero parameters, so the baseline is 4. The description correctly implies a single static explanation with nothing to configure, consistent with an empty input schema.
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 names the specific content the tool returns — dimensions, weights, caps, and the rationale behind "not scored" pools — which is far more than restating the title. It is clearly a documentation/explanation tool, distinguishable from the pool-data siblings by subject matter, though it never explicitly contrasts itself with them.
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?
Usage is implied: an agent should call this when it needs to interpret the scoring rubric or understand why a pool is unscored. There is no explicit when-to-use trigger, no stated relationship to siblings like get_pool or compare_pools, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poolGet one pool in detailARead-onlyIdempotentInspect
Full detail for one pool id: APY split into base and reward-token yield, TVL, when the source measured it and when Web3Juice retrieved it, contract and token addresses, deposit and source links, withdrawal evidence and the experimental assessment. Links and labels come from the source and are unverified.
| Name | Required | Description | Default |
|---|---|---|---|
| poolId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| asOf | Yes | |
| pool | Yes | |
| version | Yes | |
| assessment | Yes | |
| limitations | Yes | |
| sourceWarnings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavioral context: it separates source measurement time from Web3Juice retrieval time, and warns that links and labels are source-provided and unverified — a meaningful trust caveat not present in the structured data.
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 payload enumeration is front-loaded in the first sentence and the unverified-data caveat is placed last where it acts as a qualifier. Dense but every clause maps to an actual returned field; the single-sentence enumeration is long but not padded.
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?
An output schema exists, so return values need not be documented, yet the description helpfully orients the agent to what the response contains. Combined with annotations covering the safety profile, nothing an agent needs to call this correctly is missing, apart from explicit sibling routing.
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 0%, so the description must carry the single parameter, and it does identify it as a pool id. However it adds no format or constraint detail (non-empty, max length 512) beyond what the schema's type already implies, leaving a modest but real gap.
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?
States a specific verb and resource — retrieve full detail for one pool id — and enumerates the payload (APY split, TVL, timestamps, addresses, withdrawal evidence) so the agent knows exactly what it gets. It doesn't explicitly name a sibling to contrast with, but 'one pool id' distinguishes it from search_pools/get_pool_history by implication.
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?
Usage is only implied: the description frames this as single-pool lookup, which suggests search_pools for discovery and get_pool_history for time series, but it never states when to prefer it or names any alternative. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pool_historyGet a pool's APY historyARead-onlyIdempotentInspect
APY trend for one pool over 7, 30 (default) or 90 days: median, low, high, latest and the dated samples. Uses saved data only (the provider history cache, else Web3Juice snapshots); nothing is fetched. No history means unknown, not zero.
| Name | Required | Description | Default |
|---|---|---|---|
| poolId | Yes | ||
| windowDays | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| asOf | Yes | |
| poolId | Yes | |
| history | Yes | |
| summary | Yes | |
| version | Yes | |
| fetchedAt | Yes | |
| truncated | Yes | |
| limitations | Yes | |
| availability | Yes | |
| returnedRecords | Yes | |
| totalWindowRecords | Yes | |
| summarySamplesTruncated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/no-open-world, and the description adds real value beyond them: the data source chain (provider history cache, else Web3Juice snapshots), that nothing is fetched, and how a missing result should be interpreted. Missing-data semantics are exactly the kind of disclosure annotations cannot carry.
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?
Two dense sentences, front-loaded with what the tool returns, then source behavior, then the edge-case rule. No filler and no repetition of the title.
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?
An output schema exists, so return fields need not be re-explained, yet the description still previews them for selection purposes. Combined with the source and null-history semantics, an agent has everything needed to call and interpret this tool 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?
With 0% schema description coverage the description must compensate, and it does for windowDays by enumerating the three allowed values and the default, matching the schema's const-based anyOf. poolId is left uncharacterized (format, where to obtain it), which keeps this below a 5.
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?
States a specific verb+resource ('APY trend for one pool') and the output shape (median, low, high, latest, dated samples), which cleanly separates it from get_pool's current-state read. It never names a sibling explicitly, so differentiation is implied through 'history/trend' rather than stated.
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?
Explains the selection axis (7/30/90-day window with 30 as default) and adds a critical interpretation rule: 'No history means unknown, not zero.' It does not state when to prefer this over search_pools/compare_pools history-style queries, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_poolsSearch yield poolsARead-onlyIdempotentInspect
Find DeFi yield pools (lending, vaults, liquidity, staking) by token, chain, protocol, APY and TVL. Returns a ranked table with pool ids. Rates are fractions (0.05 = 5%). Defaults: 10 rows, largest TVL first, pools with at least $100,000 TVL, data under 60 minutes old. Stablecoin filters check token labels, not peg safety. Page with the returned cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return, 1-50 (default 10). | |
| query | No | Filters. Omit for the whole catalogue (still limited to pools with TVL of at least $100K). | |
| cursor | No | nextCursor from the previous page. Repeat the same query and limit exactly. |
Output Schema
| Name | Required | Description |
|---|---|---|
| asOf | Yes | |
| rows | Yes | |
| limit | Yes | |
| notes | Yes | |
| version | Yes | |
| nextCursor | Yes | |
| collectedAt | Yes | |
| limitations | Yes | |
| totalMatches | Yes | |
| catalogueRevision | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, but the description adds real behavioral context: the 10-row/100K TVL/60-minute defaults, results sorted by largest TVL, rates expressed as fractions, and the caveat that stablecoin filters check labels rather than peg safety. It stops short of noting rate-limits or upstream feed lag beyond the freshness defaults.
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?
Three dense sentences, front-loaded with purpose and searchable dimensions, followed by defaults and the paging instruction. No filler or restated title.
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?
Output schema exists, so return values need not be explained, and the description covers filters, defaults and cursor paging. What is missing is sibling orientation (which of the six related tools to use instead) and any note about provider scope (pool-feed vs vault-feed) as a top-level concern.
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 repeats defaults that the schema already carries (limit 10, minTvl 100000, maxAgeMinutes 60, fraction-based APYs) rather than adding format or interaction semantics the schema lacks.
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?
Specific verb+resource ('Find DeFi yield pools') with the covered pool categories enumerated (lending, vaults, liquidity, staking) and an explicit statement of the return shape ('ranked table with pool ids'). An agent can distinguish this from get_pool, compare_pools and summarize_yields without opening a schema.
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?
It states when the query object can be omitted ('Omit for the whole catalogue') and how to page ('Page with the returned cursor'), plus the default result set. It never routes the agent to a sibling (e.g. get_pool for a known pool id, compare_pools for comparisons), so it falls short of true when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_yieldsSummarize yields across a marketARead-onlyIdempotentInspect
Market overview for any filter: number of pools, total TVL, median, middle-half and TVL-weighted APY, grouped by chain (default), protocol or strategy, with the largest pool in each group. Rates in filters are fractions (0.05 = 5%).
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Pool filters (token, chain, protocol, strategy, APY, TVL, freshness), e.g. {"search":"usdc","strategies":["lending"]}. Defaults to pools with at least $100K TVL. | |
| groupBy | No | Break the statistics down by chain (default), protocol or strategy, or "none" for one overall row. | chain |
| topGroups | No | How many groups to return, largest TVL first (default 10). |
Output Schema
| Name | Required | Description |
|---|---|---|
| asOf | Yes | |
| notes | Yes | |
| groups | Yes | |
| groupBy | Yes | |
| overall | Yes | |
| version | Yes | |
| limitations | Yes | |
| totalGroups | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the crucial fact that rates in filters are fractions (0.05 = 5%), which is a valuable non-obvious behavioral rule. It does not, however, describe output shape, group ordering beyond what groupBy/topGroups imply, or how empty results behave.
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?
A single sentence, front-loaded with 'Market overview for any filter', followed by the outputs and the fraction convention. No filler and every clause carries information.
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?
Output schema exists, so return values need not be explained, and the description still enumerates the key metrics returned. Combined with annotations and full schema coverage, an agent has enough to call it correctly. The only minor gap is the absence of explicit routing guidance versus sibling aggregate tools.
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 schema itself documents the filter fields, groupBy, and topGroups thoroughly. The description only adds the fraction-vs-percentage convention and the default grouping of 'chain' – useful but marginal against a fully documented schema. Baseline 3 applies.
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 names a specific verb and resource ('summarize yields', 'market overview') and enumerates exactly what statistics are produced (pool count, total TVL, median, middle-half, TVL-weighted APY, largest pool per group). This distinguishes it cleanly from siblings like search_pools (returns pools) and get_pool (single pool).
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 the tool is for aggregate/market views rather than individual pool lookups, but it never explicitly states when to use this instead of search_pools or compare_pools. No exclusions or selection conditions are given.
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.
7 tool updates
- First observed
compare_pools - First observed
get_data_sources - First observed
get_methodology - First observed
get_pool - First observed
get_pool_history - First observed
search_pools - First observed
summarize_yields
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.