Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

YieldSignal

REMOTE · YIELDSIGNAL.VERCEL.APP · SCANNED SEP 24

Yield & risk for agents: signal, decision, durability, capacity, sensitivity, exposure, persistence

0 this week 79 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1669 tokens (~238/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the YieldSignal MCP server?

YieldSignal is a hosted endpoint at https://yieldsignal.vercel.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · yieldsignal.vercel.app

# add to Claude Code
claude mcp add --transport http stakemate369-yieldsignal 'https://yieldsignal.vercel.app/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "stakemate369-yieldsignal": {
      "url": "https://yieldsignal.vercel.app/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "stakemate369-yieldsignal": {
      "type": "http",
      "url": "https://yieldsignal.vercel.app/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.stakemate369-yieldsignal]
url = "https://yieldsignal.vercel.app/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "stakemate369-yieldsignal": {
      "type": "remote",
      "url": "https://yieldsignal.vercel.app/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add stakemate369-yieldsignal --url 'https://yieldsignal.vercel.app/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  stakemate369-yieldsignal:
    url: "https://yieldsignal.vercel.app/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "stakemate369-yieldsignal": {
      "Transport": "http",
      "Url": "https://yieldsignal.vercel.app/mcp"
    }
  }
}
# add to Vellum
assistant mcp add stakemate369-yieldsignal -t streamable-http -u 'https://yieldsignal.vercel.app/mcp'
// mcp.json
{
  "mcpServers": {
    "stakemate369-yieldsignal": {
      "type": "http",
      "url": "https://yieldsignal.vercel.app/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 26 Aug 26 79
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Aug 26 0
    • Stability: 0.97 → pass security
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 10 Aug 26 0
    • Endpoint reachability: reachable → not serving MCP security
    • Stability: 0.47 → unverified security
    • Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the tool list to see what that exposes. security
    • Schema quality: 1389 → 1669 functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Endpoint reachability: not serving MCP → reachable functional
    • First check of Schema quality: unverified functional
    • Schema quality: excellent → good functional
    • New tool “get_leadership_persistence” functional
  • 7 Aug 26 0
    • Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 6 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
    • Schema quality: unverified → fail functional
    • Schema quality: unverified → fail functional
    • Schema quality: unverified → excellent functional
    • Tool coverage: unverified → 100 functional
    • Stability: fail → 0.40 functional
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 6 Aug 26 0
    • Stability: 0.33 → fail security
    • A breaking change shipped without a version bump: still 1.0.0 security
    • Tool “get_yield_decision” was removed security
    • Tool “get_yield_signal” was removed security
    • Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the tool list to see what that exposes. security
    • Schema quality: fail → unverified functional
    • Schema quality: good → unverified functional
    • Schema quality: fail → unverified functional
    • Tool coverage: 100 → unverified functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Sept 2026 · Probed https://yieldsignal.vercel.app/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.vercel.app CN=WR1,O=Google Trust Services,C=US 29 Aug 2026 27 Nov 2026 RSA 2048 SHA256-RSA f7911168ffa7d0f4135e24792e7a52a8
SANs: *.vercel.app
CN=WR1,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7fd9e2c2d2048a0474b627a26d0868a7
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of yieldsignal.vercel.app. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
app. present 23684 8 Verified
vercel.app. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://yieldsignal.vercel.app/mcp Verified 200
http (plaintext) http://yieldsignal.vercel.app/mcp HTTPS enforced 308 https://yieldsignal.vercel.app/mcp
MCP tools · 7 exposed · ~1,669 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_exit_capacity ~196

Exit capacity for a Base lending market: per-protocol utilization and withdrawable liquidity read from the protocol's own books (Aave, Compound), plus — if you pass amountUsd — whether that size can be withdrawn right now and what share of the market it would be. High APY at high utilization means the market pays well and will not let you out; this tool separates the two. Protocols that do not expose borrowed-vs-supplied are marked unmeasured and are never recommended as executable. USDC only for USD figures; WETH returns utilization without USD (no price oracle in the paid path).

NameTypeReqDescription
amountUsdnumberPosition size in USD to test for exit. Omit to get utilization and free liquidity without an exit verdict.
assetstringWhich Base lending market to measure: USDC (full USD figures) or WETH (utilization only). Defaults to USDC.

No output schema declared.

No examples provided.

get_leadership_persistence ~280

How long this service's own leadership calls actually hold, measured from its hourly on-chain attestations (EAS on Base). Returns the median duration a protocol stayed the best pick, survival rates at 6/24/72h, how much of the rotation is the same two protocols trading places, and what chasing the leader is worth per $10k before gas. Measured over 24 days: the WETH leader never changed once, the ETH staking leader changed every ~26h, the USDC leader every ~2h with half the switches being a round trip between the same pair — three assets sold at one price with wildly different reliability. Also answers, empirically, whether a wider lead lasts longer: it does not (Spearman -0.04 over 177 completed spells), so gap size is not a usable proxy for confidence. Every input is a public attestation UID: recompute it yourself from base.easscan.org and get the same number. Observed history with sample sizes attached, never a forecast — assets whose lead has not changed in the window are reported as a floor with a censoring flag, never as a median.

NameTypeReqDescription
assetstringWhich market's leadership durability to measure: USDC/WETH lending on Base, or ETH_STAKING liquid staking. Defaults to USDC.

No output schema declared.

No examples provided.

get_rate_sensitivity ~192

How close a Base lending market is to the kink where borrow rates explode. Returns, per protocol, the current utilization, the kink read from the protocol's own interest rate curve, the headroom in bps, and the borrow APY at points around the kink — plus how many times the borrow cost multiplies just past it. Measured on a live reading: Compound USDC sat 0.17 points below its kink, where borrow cost goes from ~4% to ~16%. Aave and Compound only: Morpho's adaptive IRM has no static curve to read and DefiLlama-sourced protocols expose none, so they are marked unmeasured and never assumed stable. Describes the current state of the curve, not a prediction that utilization will move.

NameTypeReqDescription
assetstringWhich Base lending market to stress-test: USDC or WETH. Defaults to USDC.

No output schema declared.

No examples provided.

get_shared_exposure ~302

Shared risk exposure across a declared portfolio. Give it your positions (protocol:usd pairs) and it returns, per factor, how much of your capital sits behind the same collateral, price oracle or vault curator — and through which venues it gets there. This is the question the market does not answer: depeg and hack alerts tell you an event happened, not whether you are two hops from it. In the Stream Finance collapse only 1 of ~320 MetaMorpho vaults held the broken asset directly, yet $93M of loss became $285M of contagion. Measured live: a Morpho USDC vault sits 93.7% behind cbBTC while Compound's USDC market is 43.1% — holding both is one risk in two wrappers. Morpho is attributed per isolated market and Compound by its real posted-collateral basket; Aave is reported unattributed, because a v3 supplier is exposed to the entire pool and splitting that across assets would imply diversification that does not exist. Structural shared exposure, not a correlation estimate.

NameTypeReqDescription
assetstringWhich Base lending market the positions are in: USDC or WETH. Defaults to USDC.
positionsstringyesYour positions as comma-separated protocol:usd pairs, e.g. "aave:200000,morpho:150000". Known protocols: aave, morpho, compound, moonwell, euler, fluid.

No output schema declared.

No examples provided.

get_yield_decision ~306

Buyer-side MOVE/HOLD decision (Layer 1 premium — sells the decision, not the raw datapoint). Given your current position, size, move cost and horizon, returns whether moving your capital to the best risk-adjusted protocol pays for itself now — with expected net gain, break-even days and a confidence tier. Deterministic from the underlying signal, which is EIP-712 signed and returned in a sibling content block (re-run the decision locally to reproduce it). Priced above the plain signal tool.

NameTypeReqDescription
amountUsdnumberPosition size in USD. Scales the absolute gain and break-even. Defaults to 1000.
assetstringWhich market the decision is for: USDC/WETH lending on Base, or ETH_STAKING liquid staking on Ethereum mainnet. Defaults to USDC.
horizonDaysnumberHow many days you expect to hold before re-evaluating. Gain only counts up to here. Defaults to 30.
moveCostUsdnumberYour estimated cost to move (gas + slippage) in USD. Defaults to 0.5.
positionstringProtocol where your capital sits now (aave/morpho/compound/moonwell/euler/fluid/lido/rocket-pool/coinbase-wrapped-staked-eth/frax-ether/binance-staked-eth). Omit or use 'idle' if uninvested.

No output schema declared.

No examples provided.

get_yield_durability ~156

How much of the current APY survives if incentives stop. Splits each protocol's yield into base interest vs reward/incentive, reports the post-incentive floor, and says whether the leader changes without incentives. Only protocols whose source itemizes the reward component are decomposed — the rest are listed as undecomposable and NEVER assumed incentive-free, and no ranking claim is made when the current leader is one of them. Also returns bestVerifiableFloor: the highest yield provably independent of incentives. A stress test of readings taken now, not a forecast of when a campaign ends.

NameTypeReqDescription
assetstringWhich Base lending market to stress-test: USDC or WETH. Defaults to USDC.

No output schema declared.

No examples provided.

get_yield_signal ~237

Real-time risk-weighted yield signal. USDC/WETH: lending APY on Base (Aave/Compound/Morpho read onchain, Moonwell/Euler/Fluid via DefiLlama). ETH_STAKING: liquid staking APY on Ethereum mainnet (Lido/Rocket Pool/Coinbase Wrapped Staked ETH/Frax Ether/Binance Staked ETH, all via DefiLlama) — a different chain and category from the lending signals, not a Base lending market. Source tagged per reading (never estimated). Result is signed (EIP-712 typed data) by the payment-receiving address, returned as a sibling content block for offline verification. That same address is registered on-chain as an ERC-8004 agent identity (agent-card.json) and periodically publishes EAS attestations of past readings (Base mainnet) — a public track record independent of this server's uptime.

NameTypeReqDescription
assetstringWhich yield signal to fetch: USDC/WETH lending APY on Base, or ETH_STAKING liquid staking APY on Ethereum mainnet. Defaults to USDC.

No output schema declared.

No examples provided.

Common questions

What is the YieldSignal MCP server?

YieldSignal is an MCP server listed in the public MCP registry as io.github.Stakemate369/yieldsignal. Yield & risk for agents: signal, decision, durability, capacity, sensitivity, exposure, persistence. This page covers its hosted endpoint (https://yieldsignal.vercel.app/mcp).

Is the YieldSignal MCP server safe to use?

YieldSignal scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the YieldSignal MCP server expose?

YieldSignal exposes 7 tools: get_yield_signal, get_yield_decision, get_yield_durability, get_exit_capacity, get_rate_sensitivity, and 2 more. Their descriptions and schemas cost roughly 1,669 tokens of context every time the server is loaded.

Does the YieldSignal MCP server require authentication?

No. We connected to YieldSignal without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the YieldSignal MCP server still maintained?

YieldSignal is still listed as active in the MCP registry. We last reached this channel on 24 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.