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

io.github.Finanzgoblin/spectra-mcp-server

NPM · SPECTRA-MCP-SERVER · SCANNED AUG 3

Spectra Finance MCP server: yield discovery, PT/YT, looping, Morpho, 10 chains

Available components

−8 this week 56 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability37
  • 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Fail
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6956 tokens (~316/item across 22 items; 20 tools + 2 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 Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · spectra-mcp-server

# add to Claude Code
claude mcp add finanzgoblin-spectra-mcp-server -- npx -y spectra-mcp-server
# add to Codex CLI
codex mcp add finanzgoblin-spectra-mcp-server -- npx -y spectra-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "finanzgoblin-spectra-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "spectra-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add finanzgoblin-spectra-mcp-server --command npx --arg -y --arg spectra-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  finanzgoblin-spectra-mcp-server:
    command: "npx"
    args: ["-y", "spectra-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "finanzgoblin-spectra-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "spectra-mcp-server"
      ]
    }
  }
}
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.

  • 2 Aug 26 +34
    • Provenance: unverified → fail security
    • Known CVEs: unverified → partial security
    • Install scripts: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Security disclosure: fail → unverified functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 0 → unverified functional
    • Dependency health: unverified → partial functional
    • License: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Stability: unverified → 0.23 functional
    • Licence: MIT functional
  • 1 Aug 26 +22
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 functional
    • Schema quality: unverified → 0 functional
    • MCP protocol: unverified → pass functional
  • 31 Jul 26 −24
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −40
    • Install scripts: pass → unverified security
    • Provenance: fail → unverified security
    • Known CVEs: partial → unverified security
    • Malware scan: pass → unverified security
    • Maintenance: pass → unverified functional
    • Dependency health: partial → unverified functional
    • License: pass → unverified functional
    • Licence: MIT functional
  • 27 Jul 26 +31
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 33

    First indexed and scored.

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 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 95 packages

95 packages in the resolved dependency tree · 95 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 20 exposed · ~6,943 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.

Tool Tokens
compare_yield ~300

Compare Spectra's fixed yield (via PT) against the variable yield of the underlying interest-bearing token. Helps users decide if locking in a fixed rate is worthwhile versus staying in the variable-rate position. Protocol context: - The fixed rate comes from buying PT at a discount. Entry cost (price impact from the AMM trade) is amortized over days to maturity — shorter maturity means higher annualized entry cost, longer maturity spreads the cost thin. - Variable rate (IBT APR) fluctuates continuously. The fixed rate locks in at purchase. - LP alternative: providing liquidity to the Curve pool earns trading fees + SPECTRA gauge emissions. This is a third option alongside fixed (PT) and variable (IBT). Use get_looping_strategy to lever up the fixed yield via Morpho. Use get_portfolio to check your current positions. Use scan_opportunities for multi-chain comparison.

NameTypeReqDescription
capital_usdnumberYour deposit size in USD (default $10,000). Used with ve_spectra_balance to compute per-pool boost.
chainstringyesThe blockchain network
pt_addressstringyesThe PT contract address to compare
ve_spectra_balancenumberYour veSPECTRA token balance. Computes real boost using B = min(2.5, 1.5*(v/V)*(D/d)+1).

No output schema declared.

No examples provided.

get_address_activity ~228

Scan all pools on a chain (or all chains) for a given address's activity. Returns per-pool breakdown and cross-pool aggregates. Useful for discovering multi-pool strategies without making N manual get_pool_activity calls. When investigating a wallet that operates across multiple pools (e.g., a curator or yield farmer diversifying across maturities), this tool reveals the full scope of their on-chain activity in one call. Each pool's activity is summarized with type breakdown and total volume. Cross-pool totals show the address's aggregate engagement with Spectra. For deep per-pool analysis (cycle detection, flow accounting, contract detection), use get_pool_activity with the address parameter on the specific pool of interest. Use get_portfolio to see current holdings across all pools.

NameTypeReqDescription
addressstringyesThe wallet address to scan (0x...)
chainstringSpecific chain to scan. Omit to scan all chains (slower).
min_volume_usdnumberMinimum activity volume (USD) per pool to include in results (default 0)

No output schema declared.

No examples provided.

get_best_fixed_yields ~272

Find the best fixed-rate yield opportunities across all Spectra chains. Scans all supported networks and returns the top opportunities ranked by implied APY. Filters by asset type if specified. Important: This ranks by raw implied APY without considering your capital size or pool liquidity. These rankings will often disagree with scan_opportunities (which ranks by effective APY after entry cost). That disagreement is intentional -- raw APY reflects the pool's headline rate while effective APY reflects what you actually capture at your capital size. Neither ranking is "correct" -- they measure different things. Use both to develop conviction about which pools genuinely serve your strategy.

NameTypeReqDescription
asset_filterstringOptional: filter by underlying asset symbol (e.g., 'USDC', 'ETH', 'GHO')
compactbooleanIf true, return one-line-per-opportunity output (much shorter). Use for quick scanning; omit for full details.
min_liquidity_usdnumberMinimum pool liquidity in USD (default $5,000)
min_tvl_usdnumberMinimum pool TVL in USD (default $10,000)
top_nnumberNumber of top results to return (default 10, max 50)

No output schema declared.

No examples provided.

get_looping_strategy ~365

Calculate a leveraged fixed-yield strategy using Spectra PT + Morpho looping. Strategy: Deposit asset -> mint PT on Spectra -> use PT as collateral on Morpho -> borrow underlying -> deposit again -> repeat. Each loop multiplies yield exposure. Returns projected yields at different leverage levels (1x to max safe leverage), effective APY, and risk parameters. Automatically fetches the live Morpho borrow rate and LLTV when a matching market exists. You can still override morpho_ltv and borrow_rate manually if needed. NOTE: Looping requires a Morpho market that accepts the specific PT as collateral. Risk context: - Borrow rates are variable. A 5% spread (7% yield - 2% borrow) can turn negative if borrow rates spike above your fixed yield. Monitor rates in Morpho. - Higher leverage amplifies both returns and liquidation risk. Consider keeping 1-2 loops below maximum for safety buffer. - Entry cost (price impact) compounds across loops — each iteration faces degraded effective pool liquidity. Use get_morpho_markets to find available Morpho markets. Use scan_opportunities to discover the best looping opportunities across all chains with capital-aware sizing.

NameTypeReqDescription
borrow_ratenumberOverride Morpho borrow rate in % APY. If omitted, fetched live from Morpho.
chainstringyesThe blockchain network
max_loopsnumberMaximum number of loop iterations to calculate (default 5)
morpho_ltvnumberOverride Morpho LTV ratio (e.g. 0.86 = 86%). If omitted, auto-detected from Morpho.
pt_addressstringyesThe PT contract address to loop

No output schema declared.

No examples provided.

get_morpho_markets ~341

Find Morpho lending markets that accept Spectra PT tokens as collateral. Returns market details including LLTV, borrow/supply APY, utilization, and liquidity. Essential for looping strategies: borrow against PT to lever up fixed yield. Can search across all chains or filter by a specific chain. Protocol context: - LLTV = Liquidation Loan-to-Value. This is the threshold where liquidation CAN occur, NOT the safe operating level. Loop safely at ~90-95% of LLTV for margin buffer. - High utilization (>90%) means limited borrowing capacity — check available liquidity. - Borrow rates are variable and can spike. Monitor rates when running leveraged positions. - Not all Spectra chains have Morpho markets. Current Morpho PT coverage: mainnet, base, arbitrum, katana. Use get_looping_strategy to calculate leveraged yield for a specific PT + Morpho market. Use get_morpho_rate to fetch live borrow APY for a specific market key. Use scan_opportunities for automated cross-chain looping discovery.

NameTypeReqDescription
chainstringFilter by Spectra chain. Omit to search all chains with Morpho PT markets.
min_supply_usdnumberMinimum total supply in USD (default 0)
pt_symbol_filterstringFilter by PT symbol (e.g., 'USDC', 'reUSD', 'sUSDe'). Matches against collateral symbol.
sort_bystringSort results (descending): supply, borrow_apy, or utilization
top_nnumberNumber of results to return (default 10, max 50)

No output schema declared.

No examples provided.

get_morpho_rate ~188

Get the current borrow rate and market state for a specific Morpho market. Provide the market's unique key (hex ID) and chain. Returns live borrow APY, supply APY, utilization, and liquidity — the data needed to calculate looping profitability. Use get_morpho_markets to discover market keys first. Important: Rates are live as-of-query and change continuously based on utilization. When planning a looping strategy, verify rates are still favorable before executing. A profitable spread (fixed yield > borrow rate) can turn negative if borrow rates spike. Use get_looping_strategy with these rates to calculate leveraged yield projections.

NameTypeReqDescription
chainstringyesThe blockchain network where the Morpho market lives
market_keystringyesThe Morpho market unique key (0x + 64 hex chars). Use get_morpho_markets to find it.

No output schema declared.

No examples provided.

get_pool_activity ~1,207

Get recent trade and liquidity activity for a specific Spectra pool. Returns individual transactions: buys, sells, and liquidity adds/removes with USD values, timestamps, and tx hashes. Pool activity shows only the Curve pool's perspective (IBT ↔ PT swaps and LP events). The Spectra Router batches operations atomically, so any single pool event may be one step of a multi-step strategy. There is no BUY_YT or SELL_YT event type — the pool never touches YT directly. Use get_protocol_context for the full mechanics of how Router batching maps to pool activity types. Protocol mechanics that affect how activity appears: - BUY_PT and SELL_PT are Curve pool swaps between IBT and PT. - There is NO "BUY_YT" or "SELL_YT" type. The pool never touches YT directly. - YT selling via the Router's flash-redeem internally buys PT from the pool to pair with YT for redemption — so YT sells show up as BUY_PT in the activity log. - A standalone mint (deposit IBT → PT+YT) does NOT appear in pool activity. However, the Router can batch a mint + LP add in one atomic execute() call. The minted PT + remaining IBT enter the pool as AMM_ADD_LIQUIDITY while the minted YT goes directly to the user's wallet. So AMM_ADD_LIQUIDITY events may ALSO represent YT acquisition — the YT minting is invisible in pool data. - The Router can also flash-mint atomically: flash-borrow IBT → mint PT+YT → sell PT on the pool → user tops up the shortfall → user receives YT. This shows up as SELL_PT but the user's net action is acquiring YT, not selling PT. - AMM_REMOVE_LIQUIDITY returns IBT + PT from the pool. Users often follow up by selling the PT (SELL_PT) to recover capital, completing a mint→LP→remove→sell loop that nets them YT at the cost of the PT discount (~1 - ptPrice). Key principle: any pool event type can be one step of a multi-step Router operation. Do not assume SELL_PT means "user is bearish on PT" or AMM_ADD_LIQUIDITY means "user is providing liquidity for yield." Always cross-r…

NameTypeReqDescription
addressstringFilter to a specific wallet address. Enables chronological sort, sequence analysis, and capital efficiency hints.
chainstringyesThe blockchain network
limitnumberNumber of most recent activities to return (default 20, max 100)
pool_addressstringyesThe Curve pool address (0x...) OR a PT address. If a PT address is given, it will be resolved to the corresponding pool automatically.
type_filterstringFilter by activity type. Default: all.

No output schema declared.

No examples provided.

get_pool_volume ~199

Get historical trading volume for a specific Spectra pool. Returns timestamped buy/sell volume in USD. Use list_pools first to find pool addresses. Useful for assessing pool activity and liquidity depth before entering a position. Context: Volume alone doesn't indicate capital efficiency — $1M volume in a $5M liquidity pool is very different from $1M in a $500K pool. Combine volume data with pool liquidity (from list_pools or get_pt_details) to assess real trading conditions. Output includes volume/liquidity ratio analysis when pool data is available. For individual transaction details and whale activity, use get_pool_activity instead. Use quote_trade to estimate price impact for a specific trade size.

NameTypeReqDescription
chainstringyesThe blockchain network
pool_addressstringyesThe Curve pool address (0x...) OR a PT address. If a PT address is given, it will be resolved to the corresponding pool automatically.

No output schema declared.

No examples provided.

get_portfolio ~340

Get wallet positions on Spectra for a specific address. Returns PT, YT, and LP balances with USD values, claimable yield, and current rates. Queries a single chain or all chains. Use this to understand what a wallet currently holds on Spectra. Protocol context: - Depositing IBT always mints BOTH PT and YT in equal amounts. If a wallet holds YT but no PT, it sold or LPed its PT. If it holds PT but no YT, it sold its YT. - PT + YT = 1 underlying at maturity. This identity is fundamental to all strategies. - Balance ratios are the key signal. Output shows Position Shape (e.g., "YT/PT 4:1") so you can reason about what the holder's position implies given the mechanics above. - When investigating a strategy, ALWAYS cross-reference portfolio with get_pool_activity. Activity shows the HOW (transaction patterns), portfolio shows the WHAT (resulting position). Neither alone tells the full story. - Strategies often span multiple wallets. If get_pool_activity shows concentrated activity from several addresses, check each one to build the full picture. - For activity analysis, use get_pool_activity with the address parameter — it will automatically cross-reference portfolio data and provide flow accounting, contract detection, gas estimates, and pool impact analysis. - Use get_address_activity to scan all pools for an address's activity in one call.

NameTypeReqDescription
addressstringyesThe wallet address (0x...)
chainstringSpecific chain to query. Omit to scan all chains.

No output schema declared.

No examples provided.

get_protocol_context ~155

Get essential Spectra protocol mechanics needed for correct reasoning. Returns concise explanations of how PT/YT work, how Router batching affects pool activity interpretation, how to read wallet strategies from holdings, and how looping works. Covers mechanics that are easy to misinterpret without context — for example, SELL_PT in pool activity could be a flash-mint to acquire YT, not a PT sale. Available topics: pt_yt_mechanics, router_batching, position_analysis, looping, networks Omit the topic parameter to get all topics at once.

NameTypeReqDescription
topicstringSpecific topic to retrieve. Options: pt_yt_mechanics, router_batching, position_analysis, looping, networks. Omit for all.

No output schema declared.

No examples provided.

get_protocol_stats ~181

Get Spectra protocol-wide statistics: SPECTRA token supply, circulating supply, current weekly emissions, rebase formula, and general protocol info. Use this for questions about SPECTRA tokenomics or protocol health. Protocol context: - Rebase distributes additional SPECTRA to veSPECTRA holders. The formula is highly non-linear: (veSPECTRA/totalSPECTRA)^3. At 10% lock rate, rebase captures ~0.1% of emissions. At 50% lock rate, rebase captures ~12.5%. This incentivizes high ve participation. - Weekly emissions decay exponentially and eventually stabilize. - Gauge emissions boost LP APY across all pools (see LP APY breakdown in pool tools). Use get_ve_info for live veSPECTRA data and boost calculations.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_pt_details ~240

Get detailed information about a specific Spectra Principal Token (PT). Returns: maturity date, TVL, implied APY, PT/YT prices, pool liquidity, LP APY breakdown, underlying asset info, IBT protocol, and yield leverage. Use this when you know the specific PT address and chain. Protocol context: - PT trades at a discount to its underlying (the discount IS the fixed yield). At maturity, PT redeems 1:1 for the underlying asset. - PT + YT = 1 underlying at maturity. YT price = 1 - PT price (in underlying terms). - YT leverage shows how much yield exposure 1 unit of YT provides relative to holding the underlying directly. Higher leverage = more amplified yield exposure. Use compare_yield to compare fixed vs. variable rates. Use get_looping_strategy to calculate leveraged fixed yield via Morpho. Use get_portfolio to check wallet holdings. Use get_pool_activity to see trading patterns on this pool.

NameTypeReqDescription
chainstringyesThe blockchain network
pt_addressstringyesThe PT contract address (0x...)

No output schema declared.

No examples provided.

get_supported_chains ~68

List all blockchain networks supported by Spectra Finance. Use this as a starting point to discover what's available. Not all chains have identical feature coverage. Morpho looping markets currently exist on mainnet, base, arbitrum, and katana. veSPECTRA governance lives on Base.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_ve_info ~276

Get live veSPECTRA governance token information and compute boost scenarios. Reads the current veSPECTRA total supply from Base chain on-chain, and given your balance + a specific pool, computes your exact boost multiplier. The Spectra boost formula: B = min(2.5, 1.5 * (v/V) * (D/d) + 1) v = your veSPECTRA balance V = total veSPECTRA supply (read live from Base) D = pool TVL d = your deposit size Full 2.5x boost when: v/V >= d/D (your share of votes >= your share of pool) Useful for understanding how much veSPECTRA you need for max boost in a given pool at a given deposit size.

NameTypeReqDescription
capital_usdnumberYour planned deposit size in USD. Required with ve_spectra_balance to compute boost.
chainstringChain of the pool to check boost for (optional, used with pt_address).
pt_addressstringPT address of the pool to check boost for (optional, used with chain).
ve_spectra_balancenumberYour veSPECTRA token balance. If provided with capital_usd, computes your boost.

No output schema declared.

No examples provided.

list_pools ~240

List all active Spectra pools on a given chain. Returns a summary of each pool including: asset name, maturity, TVL, implied APY, LP APY, and pool liquidity. Useful for discovering available yield opportunities. Each pool is a Curve StableSwap-NG AMM pair of IBT (interest-bearing token) and PT (Principal Token). Implied APY is the fixed rate you lock in by buying PT at discount. LP APY is the yield from providing liquidity to the pool (fees + gauge emissions). For multi-chain discovery, use get_best_fixed_yields (raw APY ranking) or scan_opportunities (capital-aware with price impact and looping analysis). Use get_pool_activity on a specific pool to see recent trading patterns.

NameTypeReqDescription
chainstringyesThe blockchain network to query
compactbooleanIf true, return one-line-per-pool output (much shorter). Use for quick scanning; omit for full details.
min_tvl_usdnumberMinimum TVL in USD to include in results
sort_bystringSort results by this metric (descending)

No output schema declared.

No examples provided.

model_metavault_strategy ~616

Model a MetaVault "double loop" strategy for curators. MetaVaults are ERC-7540 curated vaults that automate LP rollover and compound YT yield back into LP positions. This tool models the economics of leveraging MetaVault shares as collateral on Morpho (or similar lending markets). The "double loop": Layer 1 (inside vault): YT yield → LP tokens (compounding loop, managed by curator) Layer 2 (on top): MV shares → Morpho collateral → borrow → deposit back (leverage loop) Because YT compounding raises the base yield, leverage multiplies a higher base — creating a "double loop premium" over raw PT looping. Dual Morpho Market Strategy: Curators should create TWO Morpho markets for maximum flywheel effect: Market A (PT / underlying): For external users to loop PT. Drives pool volume & LP fees. Market B (MV shares / underlying): For the curator to loop vault shares. Amplifies own capital. These markets reinforce each other — PT demand deepens the pool, deeper pool attracts more loopers, and the curator earns fees on all external deposits flowing through the vault. Curator economics: The curator EARNS the performance fee on external deposits — this is revenue for managing the vault (rolling positions, compounding YT, maintaining allocations). All parameters are curator-configurable. No live API calls — this is a strategy modeling tool for pre-launch planning. When MetaVault API goes live, auto-detection will be added.

NameTypeReqDescription
base_apynumberyesBase LP APY the MetaVault targets (%), e.g. 12 for 12%
borrow_ratenumberMorpho borrow rate in % APY (default 5%)
capital_usdnumberCurator's own capital in USD. Enables curator economics section.
compare_pt_apynumberIf provided, show side-by-side comparison with raw PT looping at this APY (%)
curator_fee_pctnumberPerformance fee the curator EARNS as % of vault yield (default 10%). E.g. 10 means curator collects 10% of gross yield as revenue, depositors receive the remaining 90%.
days_to_maturitynumberAverage pool cycle length in days (default 90). Used for rollover advantage.
external_deposits_usdnumberExternal deposits the curator attracts (USD). The curator earns performance fees on these deposits. Default 0.
max_loopsnumberMaximum leverage loops to model (default 5)
morpho_ltvnumberMorpho LTV for MetaVault share collateral (0-1, default 0.86 = 86%)
yt_compounding_apynumberAdditional yield from YT→LP compounding (%), e.g. 3 for 3%. Default 0.

No output schema declared.

No examples provided.

quote_trade ~399

Estimate expected output, price impact, and minimum output for a PT trade. Automatically uses on-chain Curve get_dy() for exact quotes when a public RPC is available for the chain. Falls back to a conservative constant-product math estimate if on-chain quoting fails. Side: "buy" = spend underlying/IBT to buy PT (e.g. spend USDC-worth to get PT) "sell" = sell PT to receive underlying/IBT This tool only quotes PT trades on the Curve AMM pool. YT does not trade on the pool directly — YT is acquired by minting (deposit IBT to get PT+YT) or sold via flash-redeem. To estimate YT value: YT price = 1 - PT price in underlying terms. Returns: expected output amount, spot & effective rates, price impact, and minOut at the specified slippage tolerance. The output indicates whether the quote came from on-chain (exact) or math estimate (conservative upper bound). On-chain quotes reflect the actual Curve StableSwap-NG amplification parameter and current pool state — significantly more accurate than the math estimate, especially for large trades. Use simulate_portfolio_after_trade to preview your full portfolio state after this trade (BEFORE / TRADE / AFTER with deltas). Use compare_yield to evaluate whether the trade makes sense relative to variable rates.

NameTypeReqDescription
amountnumberyesAmount of input token (in human-readable units, not raw decimals)
chainstringyesThe blockchain network
pt_addressstringyesThe PT contract address (0x...)
sidestringyesTrade direction: 'buy' = acquire PT, 'sell' = dispose PT
slippage_tolerancenumberSlippage tolerance in % (default 0.5%). minOut = expectedOut * (1 - tolerance/100)

No output schema declared.

No examples provided.

scan_opportunities ~462

Scan all Spectra chains for the best risk-adjusted yield opportunities, sized to your capital. Unlike get_best_fixed_yields (which ranks by raw APY), this tool computes: - Entry price impact at YOUR capital size (a 50% APY pool with $10K liquidity is useless at $500K) - Effective APY after amortizing entry cost over days to maturity - Morpho looping availability and optimal leveraged net APY - Pool capacity (max capital before price impact exceeds your threshold) - Risk warnings (low liquidity, short maturity, high impact) Returns opportunities ranked by effective APY (or looping net APY where available). Ranking logic: when a profitable Morpho looping market exists, ranks by looping net APY with cumulative entry cost amortized; otherwise ranks by effective APY (base APY minus annualized entry cost). Use get_looping_strategy to drill into a specific opportunity's leverage details. Use get_pool_activity and get_portfolio to investigate trading patterns and positions.

NameTypeReqDescription
asset_filterstringOptional: filter by underlying asset symbol (e.g., 'USDC', 'ETH')
capital_usdnumberyesHow much capital (in USD) to deploy
compactbooleanIf true, return one-line-per-opportunity output (much shorter). Omit for full details.
include_loopingbooleanWhether to check Morpho looping availability (default true)
max_price_impact_pctnumberFilter out pools where entry impact exceeds this % (default 5)
min_liquidity_usdnumberMinimum pool liquidity in USD (default $5,000)
min_tvl_usdnumberMinimum pool TVL in USD (default $10,000)
top_nnumberNumber of top results to return (default 10, max 50)
ve_spectra_balancenumberYour veSPECTRA token balance. Computes the real per-pool boost using B = min(2.5, 1.5*(v/V)*(D/d)+1). Fetches live totalSupply from Base chain. If omitted, shows min/max APY ranges.

No output schema declared.

No examples provided.

scan_yt_arbitrage ~559

Scan all Spectra chains for YT (Yield Token) arbitrage opportunities. Compares the IBT's actual current variable APR against the rate implied by the YT's market price. When these diverge significantly, an arbitrage opportunity may exist: - Positive spread (IBT APR > YT implied rate): IBT earns more than the YT price implies - Negative spread (IBT APR < YT implied rate): IBT earns less than the YT price implies Returns opportunities sorted by absolute spread, with capital-aware entry sizing and break-even analysis. Execution mechanics: - Buying YT: The Spectra Router can flash-mint (flash-borrow IBT → mint PT+YT → sell PT on pool → user covers shortfall → user receives YT). This appears as SELL_PT in pool activity. Alternatively, minting IBT → PT+YT and selling PT separately. - Selling YT: The Router flash-redeems (borrow IBT → buy PT from pool → burn PT+YT → repay → profit). This appears as BUY_PT in pool activity. The Curve pool does NOT trade YT directly. - Break-even assumes the spread persists. Real variable rates fluctuate — spreads can close quickly. The break-even period is the minimum time needed, not a guarantee. Use compare_yield for a detailed fixed-vs-variable breakdown on a specific pool. Use get_pool_activity to monitor recent trading patterns in the target pool.

NameTypeReqDescription
asset_filterstringOptional: filter by underlying asset symbol (e.g., 'USDC', 'ETH')
capital_usdnumberyesHow much capital (in USD) to deploy
compactbooleanIf true, return one-line-per-opportunity output (much shorter). Omit for full details.
max_price_impact_pctnumberFilter out pools where entry impact exceeds this % (default 5)
min_liquidity_usdnumberMinimum pool liquidity in USD (default $5,000)
min_spread_pctnumberMinimum absolute spread (%) to surface (default 1.0)
min_tvl_usdnumberMinimum pool TVL in USD (default $10,000)
top_nnumberNumber of top results to return (default 10, max 50)
ve_spectra_balancenumberYour veSPECTRA token balance. Computes the real per-pool boost using B = min(2.5, 1.5*(v/V)*(D/d)+1). Fetches live totalSupply from Base chain.

No output schema declared.

No examples provided.

simulate_portfolio_after_trade ~307

Preview what a wallet's Spectra portfolio would look like after a PT trade. Fetches the wallet's current position (if any) and the PT pool data, computes a trade quote, then shows BEFORE / TRADE / AFTER with deltas. Works even if the wallet has no existing position (simulates a new entry). Side: "buy" = acquire PT, "sell" = dispose PT. Note: This simulates PT trades only, not YT. YT is acquired by minting (deposit IBT to get PT+YT) and sold via the Router's flash-redeem mechanism, not through the Curve pool directly. The wallet's YT balance is shown but not modified by this simulation. Use get_portfolio to see current full positions. Use quote_trade for a standalone price quote without portfolio context.

NameTypeReqDescription
addressstringyesThe wallet address to simulate for (0x...)
amountnumberyesAmount of input token (in human-readable units, not raw decimals)
chainstringyesThe blockchain network
pt_addressstringyesThe PT contract address (0x...)
sidestringyesTrade direction: 'buy' = acquire PT (input underlying), 'sell' = dispose PT (input PT)
slippage_tolerancenumberSlippage tolerance in % (default 0.5%). minOut = expectedOut * (1 - tolerance/100)

No output schema declared.

No examples provided.