{"schema_version":"verify.compare.v1","generated_at":"2026-09-24T05:52:17.944264+00:00","count":1,"missing_servers":[],"results":[{"server_id":"awesome-ophis-fi/ophis","display_name":"ophis-fi/ophis","profile_url":"https://verify.sentinelsignal.io/servers/awesome-ophis-fi/ophis","compare_url":"https://verify.sentinelsignal.io/compare?server=awesome-ophis-fi%2Fophis","trust_summary_url":"https://verify.sentinelsignal.io/v1/servers/awesome-ophis-fi/ophis/trust-summary","claimed":false,"verified_publisher":false,"claim_status":"unclaimed","badge_url":"https://verify.sentinelsignal.io/badge/awesome-ophis-fi/ophis.svg","report_url":"https://verify.sentinelsignal.io/v1/servers/awesome-ophis-fi/ophis/report","policy_url":"https://verify.sentinelsignal.io/v1/servers/awesome-ophis-fi/ophis/policy","evidence_url":"https://verify.sentinelsignal.io/api/v1/servers/awesome-ophis-fi/ophis/evidence","commerce_signal":null,"payment_capable":null,"delegation_level":null,"risk_flags":[],"strengths":["report_available","policy_available","badge_available"],"limitations":["unclaimed_profile","publisher_not_verified"],"last_seen":null,"last_scored":"2026-09-24T03:10:22.905008+00:00","recommended_agent_action":"allow_with_policy_review","observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"}}],"servers":[{"namespace":"awesome-ophis-fi","name":"ophis","title":"ophis-fi/ophis","description":"ophis-fi/ophis ophis-fi/ophis](https://glama.ai/mcp/servers/ophis-fi/ophis) 🎖️ 📇 ☁️ - Agent-first intent-based DEX aggregator (self-hosted CoW Protocol). Remote Streamable HTTP at https://mcp.ophis.fi/mcp, no auth, holds no keys. 12 tools: parse_intent (natural-language swap to structured intent), resolve_token (symbol to canonical address, fails closed), list_chains, get_quote, expected_surplus, build_order (bounded, ready-to-sign EIP-712 CoW order with the receiver pinned to the owner), submit_order, lookup_tier (fee-rebate tier), get_balances, get_portfolio, get_gas, get_token_chart. Live across 11 EVM chains: Ethereum, Optimism, BNB Chain, Gnosis, Polygon, Base, Arbitrum, Avalanche, Plasma, Ink, Linea.","homepage_url":"https://github.com/ophis-fi/ophis","docs_url":"https://github.com/ophis-fi/ophis","icon_url":null,"support_url":"https://github.com/ophis-fi/ophis","remote_url":"https://mcp.ophis.fi/mcp","server_card_url":null,"latest_version":null,"current_status":"healthy","current_score":52.08,"transport_type":"streamable-http","has_oauth":false,"has_dcr":false,"has_prompts":false,"tool_count":14,"current_validation_schema_version":"8058defc70ca932c","last_validated_at":"2026-09-24T03:10:22.905008+00:00","registry_source":"awesome_mcp_servers","registry_identifier":"awesome_mcp_servers:ophis-fi/ophis","canonical_identifier":null,"current_score_components":{"auth_operability_score":2.0,"error_contract_score":1.0,"rate_limit_semantics_score":2.0,"schema_completeness_score":3.0,"backward_compatibility_score":4.0,"slo_health_score":2.0,"security_hygiene_score":3.0,"task_success_score":4.0,"trust_confidence_score":1.0,"abuse_noise_ratio_score":4.0,"prompt_contract_score":0.0,"resource_contract_score":0.0,"discovery_metadata_score":2.0,"registry_consistency_score":2.0,"installability_score":3.0,"session_semantics_score":4.0,"tool_surface_design_score":3.0,"result_shape_stability_score":3.0,"oauth_interop_score":0.0,"recovery_semantics_score":0.0,"maintenance_signal_score":2.0,"adoption_signal_score":2.0,"freshness_confidence_score":4.0,"transport_fidelity_score":4.0,"spec_recency_score":2.0,"session_resume_score":3.0,"step_up_auth_score":0.0,"transport_compliance_score":2.0,"utility_coverage_score":0.0,"advanced_capability_coverage_score":0.0,"connector_publishability_score":1.0,"tool_snapshot_churn_score":4.0,"connector_replay_score":4.0,"request_association_score":0.0,"interactive_flow_safety_score":0.0,"action_safety_score":1.0,"official_registry_presence_score":2.0,"safety_transparency_score":2.0,"tool_capability_clarity_score":4.0,"destructive_operation_safety_score":2.0,"egress_ssrf_resilience_score":1.0,"execution_sandbox_safety_score":4.0,"data_exfiltration_resilience_score":3.0,"least_privilege_scope_score":1.0,"secret_handling_hygiene_score":2.0,"dependency_supply_chain_signal_score":0.0,"input_sanitization_safety_score":3.0,"tool_namespace_clarity_score":4.0},"capability_taxonomy":[],"machine_summary":{},"taxonomy_tags":[],"score_decomposition":[],"validation_diff":null,"tool_snapshot_diff":null,"connector_replay":{},"request_association":{},"production_readiness":{"code":"needs_remediation","label":"Needs remediation","reason":"Current validation evidence shows operational or discovery gaps that should be fixed first.","badge":"score-low","critical_alerts":0,"high_or_critical_alerts":0,"degraded_by_active_alerts":false},"recommended_for":[],"history_summary":{},"validation_timeline":[],"evidence_confidence":{"score":91.25,"label":"high","reason":"Based on 13 recent validations, 11 captured checks, and validation age of 2.7 hours.","live_check_count":11,"validation_age_hours":2.7,"basis":{"evidence_bearing_validations":13,"affirmative_live_check_count":11,"validation_age_hours":2.7,"freshness_threshold_hours":24}},"incident_feed":[],"disputes":[],"remediations":[],"client_remediation_modes":[],"client_profiles":[],"client_readiness_verdicts":[],"publishability_policy_profiles":[],"compatibility_fixtures":[],"install_snippets":{},"aliases":[],"raw_evidence":{"checks":{"probe_noise_resilience":{"status":"ok","latency_ms":320.08,"details":{"url":"https://mcp.ophis.fi/robots.txt","http_status":200,"headers":{"content-type":"text/plain; charset=utf-8","strict-transport-security":"max-age=63072000; includeSubDomains; preload"},"validation_disallowed":false,"consent_error":null}},"server_card":{"status":"error","latency_ms":27.72,"details":{"url":"https://mcp.ophis.fi/.well-known/mcp/server-card.json","error":"Client error '404 Not Found' for url 'https://mcp.ophis.fi/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_protected_resource":{"status":"error","latency_ms":202.69,"details":{"url":"https://mcp.ophis.fi/.well-known/oauth-protected-resource","error":"Client error '404 Not Found' for url 'https://mcp.ophis.fi/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404"}},"oauth_authorization_server":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"openid_configuration":{"status":"missing","latency_ms":null,"details":{"reason":"no_authorization_server"}},"initialize":{"status":"ok","latency_ms":151.57,"details":{"url":"https://mcp.ophis.fi/mcp","payload":{"result":{"protocolVersion":"2025-03-26","capabilities":{"tools":{"listChanged":true}},"serverInfo":{"name":"ophis","version":"0.1.1"}},"jsonrpc":"2.0","id":1},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains; preload"}}},"protocol_version_probe":{"status":"warning","latency_ms":null,"details":{"claimed_version":"2025-03-26","validator_protocol_version":"2025-03-26","latest_known_version":"2025-11-25","releases_behind":2,"lag_days":244}},"tools_list":{"status":"ok","latency_ms":26.84,"details":{"url":"https://mcp.ophis.fi/mcp","payload":{"result":{"tools":[{"name":"parse_intent","description":"Parse a plain-English swap request (e.g. \"swap 100 USDC for ETH on Optimism\") into a structured intent: { intent: \"swap\"|\"unknown\", entities: [{type: sellToken|buyToken|amount|chain, value, raw}] }. Backed by the live Ophis parser.","inputSchema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":280,"description":"The natural-language swap request."}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Parse swap intent","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"get_quote","description":"Fetch a best-execution quote from the chain's Ophis orderbook (use a chainId from list_chains' `tradeable`). Amounts are in atoms (smallest unit, uint256 decimal string). For kind='sell' the amount is the sell amount before fee; for kind='buy' it is the desired buy amount. Returns the orderbook quote (sellAmount/buyAmount/feeAmount/validTo). Before build_order, apply slippage to the limit side by kind: kind='sell' -> lower buyAmount (min out); kind='buy' -> raise sellAmount (max in).","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id (use list_chains for supported chains)."},"sellToken":{"type":"string","description":"Sell token address (0x...)."},"buyToken":{"type":"string","description":"Buy token address (0x...)."},"isStablePair":{"type":"boolean","description":"Optional assertion checked against the server-owned stablecoin registry; omit to auto-classify."},"kind":{"type":"string","enum":["sell","buy"],"description":"'sell' = you specify the sell amount; 'buy' = you specify the buy amount."},"amount":{"type":"string","description":"Amount in atoms (uint256 decimal string)."},"from":{"type":"string","description":"The trading account address (quotes are account-aware)."},"validForSeconds":{"type":"integer","exclusiveMinimum":0,"description":"Quote validity window in seconds (default 1200 = 20 min)."}},"required":["chainId","sellToken","buyToken","kind","amount","from"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Get swap quote","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"build_order","description":"Build a bounded, ready-to-sign CoW order on Ophis. Returns { order, signing:{domain,types,primaryType}, fullAppData, appDataHash, partnerFee, next }. The receiver is ALWAYS PINNED to the owner (proceeds cannot leave the account); this public endpoint exposes no custom-receiver option. Uses the correct per-chain settlement contract (Optimism, Unichain, and Robinhood Chain are non-canonical) and applies the canonical Ophis fee policy. Apply slippage to the LIMIT side by kind: for kind 'sell' lower buyAmount (your minimum out); for kind 'buy' raise sellAmount (your maximum in). slippageBips is capped at 5000 (50%); when omitted, the enforced backstop defaults to 100 bps (1%). ENFORCED: build_order fetches a live quote and REJECTS the call if the limit is worse than slippageBips vs that quote (or if a quote cannot be fetched; retry). Sign `order` as EIP-712 with `signing`, then call submit_order.","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id (use a chainId from list_chains `tradeable`)."},"owner":{"type":"string","description":"The signer/owner address (receiver defaults to this)."},"sellToken":{"type":"string","description":"Sell token address (0x...)."},"buyToken":{"type":"string","description":"Buy token address (0x...)."},"isStablePair":{"type":"boolean","description":"Optional assertion checked against the server-owned stablecoin registry; omit to auto-classify."},"sellAmount":{"type":"string","description":"In atoms. kind 'sell': the EXACT amount you sell. kind 'buy': the MAXIMUM you'll spend (slippage-adjusted UP from the quote)."},"buyAmount":{"type":"string","description":"In atoms. kind 'sell': the MINIMUM you accept (slippage-adjusted DOWN from the quote). kind 'buy': the EXACT amount you want to receive."},"kind":{"type":"string","enum":["sell","buy"],"description":"'sell' = sellAmount is exact and buyAmount is your minimum out; 'buy' = buyAmount is exact and sellAmount is your maximum in."},"validForSeconds":{"type":"integer","minimum":60,"description":"Order lifetime in seconds (default 1200 = 20 min; minimum 60). The enforced live-quote fetch can consume several seconds, so very short lifetimes would return a near-expired order the orderbook rejects."},"feeAmount":{"type":"string","description":"Signed feeAmount in atoms. Must be omitted or \"0\" on this tool (the fee is taken from surplus + the appData partner fee)."},"partiallyFillable":{"type":"boolean","description":"Allow partial fills (default false = fill-or-kill)."},"slippageBips":{"type":"integer","minimum":0,"description":"Max accepted slippage in bips; capped at 5000 (50%); when omitted, the enforced backstop defaults to 100 bps (1%). Recorded in appData. ENFORCED: build_order fetches a live quote and rejects a limit worse than this vs the quote. Fund safety: the receiver is always pinned to the owner."},"referenceBuyAmount":{},"referenceSellAmount":{},"referrerCode":{"type":"string","description":"Affiliate referral code to embed in appData (credits that code's owner for this trade). Defaults to the server's OPHIS_DEFAULT_REFERRER_CODE if set. Grammar: 3-64 chars [a-z0-9_-]; an invalid code errors."}},"required":["chainId","owner","sellToken","buyToken","sellAmount","buyAmount","kind"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Build signable order","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"submit_order","description":"Relay a PRE-SIGNED order to the chain's Ophis orderbook. Pass the exact `order` object and `fullAppData` from build_order, plus your EIP-712 `signature` and `from` (owner). The MCP holds no keys — it only forwards. Returns the order UID on success.","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id the order was built for."},"order":{"type":"object","properties":{"sellToken":{"type":"string"},"buyToken":{"type":"string"},"receiver":{"type":"string"},"sellAmount":{"type":"string"},"buyAmount":{"type":"string"},"validTo":{"type":"integer"},"appData":{"type":"string"},"feeAmount":{"type":"string"},"kind":{"type":"string","enum":["sell","buy"]},"partiallyFillable":{"type":"boolean"},"sellTokenBalance":{"type":"string","const":"erc20"},"buyTokenBalance":{"type":"string","const":"erc20"}},"required":["sellToken","buyToken","receiver","sellAmount","buyAmount","validTo","appData","feeAmount","kind","partiallyFillable","sellTokenBalance","buyTokenBalance"],"additionalProperties":false,"description":"The order object returned by build_order."},"signature":{"type":"string","description":"0x EIP-712 signature over the order by the owner."},"signingScheme":{"type":"string","enum":["eip712","ethsign"],"description":"Signature scheme over the order (default 'eip712')."},"from":{"type":"string","description":"The owner address that signed."},"fullAppData":{"type":"string","description":"The fullAppData string returned by build_order."}},"required":["chainId","order","signature","from","fullAppData"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Submit signed order","readOnlyHint":false,"destructiveHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"lookup_tier","description":"Look up a wallet's Ophis fee-rebate tier and live status (30-day volume → bronze/silver/gold/platinum, rebate %). Returns the indexer status plus the static tier ladder.","inputSchema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet address (0x...)."}},"required":["wallet"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Look up fee-rebate tier","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"get_integrator_earnings","description":"Look up what an integrator's own-fee routing earned, by appCode (the identifier you tag into appData: your widget appCode or your SDK ophisReferrer code). Returns routed volume (USD, split by chain and by sovereign-vs-hosted), the Ophis base fee charged on your flow, your OWN stacked fee, and your referral rebate paid-to-date with payout tx links. Guaranteed/paid figures are scoped to the Ophis-operated chains (Optimism, Unichain); CoW-hosted figures are accrued at settlement and disbursed by CoW under CoW terms (see the response `disclaimer`). Read-only, keyless, cumulative (no current-cycle or next-payout data).","inputSchema":{"type":"object","properties":{"appCode":{"type":"string","minLength":3,"maxLength":64,"description":"Your integrator appCode / referral code (3-64 chars of [a-z0-9_-])."}},"required":["appCode"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Get integrator earnings","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"list_chains","description":"List Ophis chains, split into `tradeable` (orderbook host is live, only route get_quote/build_order to these) and `paused` (settlement deployed but no live orderbook yet, so these throw). Each tradeable chain includes its orderbook host, GPv2Settlement contract (Optimism, Unichain, and Robinhood Chain are non-canonical), and canonical Ophis fee config. No input.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{}},"annotations":{"title":"List Ophis chains","readOnlyHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}},{"name":"get_balances","description":"Read a wallet's native-token balance plus ERC-20 balances for the given token addresses on one chain, via a public RPC (one multicall). Returns each token's symbol, decimals, raw atoms, and human-readable amount. A token address that is not an ERC-20 is reported with an `error` and does not fail the batch. Read-only; holds no keys. Supported chains are those with a public RPC (most Ophis chains).","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id (use list_chains for Ophis chains)."},"owner":{"type":"string","description":"Wallet address to read balances for (0x...)."},"tokens":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"ERC-20 token addresses to read (0x...); max 50. Native balance is always returned."}},"required":["chainId","owner"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Get wallet balances","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"get_portfolio","description":"Read a wallet's native and (optionally) ERC-20 balances across multiple chains at once. Pass `tokensByChain` (chainId -> token addresses) to include token balances; omit `chainIds` to scan every chain with a public RPC (max 12 chains, and at most 100 token reads total across all chains). Per-chain RPC failures are returned inline so one dead endpoint does not sink the result. Read-only; holds no keys.","inputSchema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet address to read (0x...)."},"chainIds":{"type":"array","items":{"type":"integer"},"maxItems":12,"description":"Chains to read (max 12). Omit to scan all chains with a public RPC."},"tokensByChain":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"},"maxItems":50},"description":"Map of chainId -> ERC-20 token addresses to read on that chain (native is always included)."}},"required":["owner"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Get cross-chain balances","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"get_gas","description":"Read a chain's current gas price (EIP-1559 maxFee/maxPriority suggestion when supported, plus an effective gasPrice in wei and gwei). Ophis trades are gasless for the trader, so this mainly bounds the cost of a one-time ERC-20 approval to the VaultRelayer. Read-only.","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id."}},"required":["chainId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Get chain gas price","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"get_token_chart","description":"Fetch OHLCV price history for a token from the keyless GeckoTerminal market API (resolves the token's deepest pool, then returns candles). Use for an agent to reason about recent price action before quoting. Prices come from a single pool that may be thin or manipulated, so treat them as advisory, not a sole execution signal. The keyless tier is a shared ~30 req/min quota, so cache and do not poll tightly. Read-only.","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id (GeckoTerminal-mapped: eth/optimism/base/arbitrum/polygon/bsc/avax/linea/gnosis/ink)."},"token":{"type":"string","description":"Token address (0x...)."},"timeframe":{"type":"string","enum":["day","hour","minute"],"description":"Candle timeframe (default 'day')."},"aggregate":{"type":"integer","exclusiveMinimum":0,"description":"Bucket multiple base units into one candle, e.g. timeframe=hour aggregate=4 = 4h candles (default 1)."},"limit":{"type":"integer","exclusiveMinimum":0,"maximum":300,"description":"Number of candles (default 30, max 300)."}},"required":["chainId","token"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Get token OHLCV chart","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"expected_surplus","description":"Estimate how much better Ophis quotes than the open market for a sell: fetches the Ophis orderbook sell-quote and a public all-DEX aggregator (KyberSwap) quote for the same input, and returns `beatBps` (+ = Ophis returns more of the buy token). Use before build_order to show the expected edge. The reference can reflect thin or manipulated liquidity, so treat beatBps as advisory, not a sole execution signal. Sell-side (exact-in) only. Read-only.","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id (use a chainId from list_chains `tradeable`)."},"sellToken":{"type":"string","description":"Sell token address (0x...)."},"buyToken":{"type":"string","description":"Buy token address (0x...)."},"sellAmount":{"type":"string","description":"Exact sell amount in atoms (uint256 decimal string)."},"from":{"type":"string","description":"The trading account address (quotes are account-aware)."}},"required":["chainId","sellToken","buyToken","sellAmount","from"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Estimate beat-the-market surplus","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"resolve_token","description":"Resolve an ERC-20 token SYMBOL to its CANONICAL on-chain address from the trusted Ophis token list (the same curated list the swap UI uses). Use this BEFORE quoting or building so you never trade an address taken from chat, the web, or memory: a token can spoof the symbol \"USDC\" at a scam address, and this fails closed. Returns { found, ambiguous, canonical: {address, decimals, name} | null, matches: [...] }. found=false means no trusted match (do NOT guess: confirm any candidate with get_balances and the user). ambiguous=true means several trusted tokens share the symbol (e.g. native vs bridged); confirm which the user means. Native coins are not returned; resolve the wrapped symbol (e.g. WETH). Read-only.","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id (use a chainId from list_chains `tradeable`)."},"symbol":{"type":"string","minLength":1,"maxLength":20,"description":"Token symbol to resolve, e.g. \"USDC\" or \"WETH\"."}},"required":["chainId","symbol"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Resolve token symbol to canonical address","readOnlyHint":true,"openWorldHint":true},"execution":{"taskSupport":"forbidden"}},{"name":"validate_order","description":"Offline preflight for an order you built OUTSIDE build_order (no network call, no keys). Catches the documented silent-failure modes before you sign or submit: wrong appCode (settles but earns zero rebate), wrong orderbook host (api.cow.fi silently bypasses the Ophis stack on Ophis-operated chains), wrong EIP-712 domain (signing against CoW's canonical settlement on an Ophis-operated chain yields a domain the deployed contract rejects), appData hash mismatch (order.appData must equal keccak256 of the exact fullAppData string), an unpinned receiver (proceeds leaving the owner), an expired or non-zero-fee order, and malformed partnerFee entries. Pass whatever you have (chainId is required; owner, order, fullAppData, signingDomain, orderbookUrl are all optional and each is checked if present). Returns { valid, errors, warnings, expected } where `expected` echoes the correct per-chain orderbook host, settlement, EIP-712 domain, appCode, and partnerFee. Prefer build_order to construct orders; use this to verify externally-built ones.","inputSchema":{"type":"object","properties":{"chainId":{"type":"integer","description":"EVM chain id the order is for (use list_chains `tradeable`)."},"owner":{"type":"string","description":"The signing account address; enables the receiver drain-guard check."},"order":{"type":"object","properties":{"receiver":{"type":"string"},"appData":{"type":"string","description":"The signed bytes32 appData hash."},"validTo":{"type":"integer"},"sellAmount":{"type":"string"},"buyAmount":{"type":"string"},"sellToken":{"type":"string"},"buyToken":{"type":"string"},"feeAmount":{"type":"string"},"kind":{"type":"string"}},"additionalProperties":false,"description":"The (partial) order about to be signed."},"fullAppData":{"type":"string","description":"The exact appData JSON string that will be submitted with the order."},"signingDomain":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"chainId":{"type":"integer"},"verifyingContract":{"type":"string"}},"additionalProperties":false,"description":"The EIP-712 domain the order will be signed against."},"orderbookUrl":{"type":"string","description":"The orderbook base URL the order will be submitted to."}},"required":["chainId"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Validate order preflight","readOnlyHint":true,"openWorldHint":false},"execution":{"taskSupport":"forbidden"}}]},"jsonrpc":"2.0","id":2},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains; preload"}}},"prompts_list":{"status":"missing","latency_ms":14.19,"details":{"url":"https://mcp.ophis.fi/mcp","payload":{"jsonrpc":"2.0","id":3,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains; preload"},"reason":"not_supported"}},"prompt_get":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"resources_list":{"status":"missing","latency_ms":11.94,"details":{"url":"https://mcp.ophis.fi/mcp","payload":{"jsonrpc":"2.0","id":5,"error":{"code":-32601,"message":"Method not found"}},"http_status":200,"headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains; preload"},"reason":"not_supported"}},"resource_read":{"status":"missing","latency_ms":null,"details":{"reason":"not_advertised"}},"determinism_probe":{"status":"ok","latency_ms":14.62,"details":{"attempts":2,"successful":2,"matches":2,"stable_ratio":1.0,"baseline_signature":"b8c01d9d607e6917f08916f8ac747c5c7656c086695bfc273e95bf3b40bbe296","errors":[]}},"instruction_tool_reference_probe":{"status":"ok","latency_ms":null,"details":{"referenced_tools":[],"missing_tools":[],"observed_tool_count":14}},"session_resume_probe":{"status":"warning","latency_ms":null,"details":{"reason":"no_session_id","transport":"streamable-http","resume_expected":true,"protocol_version":"2025-03-26"}},"step_up_auth_probe":{"status":"missing","latency_ms":null,"details":{"oauth_present":false,"auth_required_checks":[],"supported_scopes":[],"scope_specificity_ratio":0.0,"broad_scopes":[],"challenge_headers":[],"step_up_signals":[],"minimal_scope_documented":false}},"transport_compliance_probe":{"status":"warning","latency_ms":17.52,"details":{"transport":"streamable-http","session_id_present":false,"protocol_header_present":false,"last_event_id_visible":false,"requested_protocol_version":"2025-03-26","bad_protocol_status_code":400,"bad_protocol_payload":{"jsonrpc":"2.0","error":{"code":-32000,"message":"Bad Request: Unsupported protocol version: 1999-99-99 (supported versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07)"},"id":null},"bad_protocol_headers":{"content-type":"application/json","strict-transport-security":"max-age=63072000; includeSubDomains; preload"},"bad_protocol_error":null,"delete_status_code":null,"delete_error":null,"expired_session_status_code":null,"expired_session_error":null,"issues":["missing_session_id","missing_protocol_header"]}},"utility_coverage_probe":{"status":"missing","latency_ms":10.61,"details":{"completions":{"advertised":false,"sample_target":null,"live_probe":"not_executed"},"pagination":{"supported":false,"next_cursor_methods":[],"metadata_signal":false},"tasks":{"advertised":false,"probe_status":"missing","http_status":200},"initialize_capability_keys":["tools"]}},"advanced_capabilities_probe":{"status":"missing","latency_ms":null,"details":{"capabilities":{"prompts":false,"resources":false,"completions":false,"roots":false,"sampling":false,"elicitation":false,"structured_outputs":false,"resource_links":false},"enabled_count":0,"enabled":[],"initialize_capability_keys":["tools"]}},"tool_snapshot_probe":{"status":"ok","latency_ms":null,"details":{"current_tool_count":14,"previous_tool_count":14,"similarity":1.0,"added":[],"removed":[],"changed_outputs":[]}},"connector_replay_probe":{"status":"ok","latency_ms":null,"details":{"backward_compatible":true,"would_break_after_refresh":false,"added_tools":[],"removed_tools":[],"required_arg_breaks":[],"output_breaks":[],"additive_output_changes":[]}},"request_association_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_request_association_capabilities_advertised"}},"interactive_flow_probe":{"status":"missing","latency_ms":null,"details":{"risk_hits":[],"safe_hits":[],"oauth_supported":false,"prompt_available":false}},"action_safety_probe":{"status":"error","latency_ms":null,"details":{"summary":{"tool_count":14,"high_risk_tools":4,"destructive_tools":1,"exec_tools":0,"egress_tools":13,"secret_tools":4,"bulk_access_tools":0,"declared_non_read_only_tools":1,"annotation_conflict_tools":4,"risk_distribution":{"low":1,"medium":9,"high":4,"critical":0},"capability_distribution":{"read":13,"network":13,"secrets":4,"financial":3,"write":1,"delete":1},"has_mutating_capability":true,"has_non_read_capability":true},"auth_present":false,"safeguard_count":7,"confirmation_signals":["get_gas","resolve_token"],"reason":null}},"official_registry_probe":{"status":"missing","latency_ms":null,"details":{"registry_source":"awesome_mcp_servers","direct_match":false,"official_peer_count":0}},"provenance_divergence_probe":{"status":"not_assessed","latency_ms":null,"details":{"direct_official_match":false,"registry_title":null,"server_card_title":null,"registry_version":null,"server_card_version":null,"registry_homepage":null,"server_card_homepage":null,"registry_repository":null,"server_card_repository":null,"drift_fields":[],"metadata_document_count":1,"compared_fields":["title","version","homepage","repository"],"readable_sources":[],"comparable_field_count":0}},"schema_divergence_probe":{"status":"missing","latency_ms":null,"details":{"reason":"no_server_card_tools","compared_tool_count":0,"compared_dimensions":["server_name","server_version","declared_vs_observed_auth","tool_membership","parameter_names","required_parameters","parameter_types","output_schema_presence"],"server_name_mismatch":false,"card_server_name":null,"live_server_name":"ophis","server_version_mismatch":false,"card_server_version":null,"live_server_version":"0.1.1","auth_scheme_mismatch":false}},"connector_publishability_probe":{"status":"warning","latency_ms":null,"details":{"transport":"streamable-http","tool_count":14,"high_risk_tools":4,"blockers":["protocol_version","session_resume","step_up_auth","transport_compliance","request_association","action_safety","server_card"],"criteria":{"remote_transport":true,"initialize":true,"tools_list":true,"protocol_version":false,"session_resume":false,"step_up_auth":false,"transport_compliance":false,"connector_replay":true,"request_association":false,"action_safety":false,"server_card":false,"tool_surface":true,"auth_flow":true}}}}},"active_alerts":[],"maintainer_analytics":{},"public_server_reputation":{},"maintainer_response_quality":{},"maintainer_annotations":[],"maintainer_rebuttals":[],"security_posture_summary":{},"tool_security_inventory":[],"transport_compliance":{},"utility_coverage":{},"write_action_governance":{},"provenance_divergence":{},"alias_consolidation":{},"alert_routing":{},"authenticated_validation":{},"hosted_runtime":{},"action_controls_diff":null,"benchmark_tasks":[],"latest_capability_counts":{},"point_loss_breakdown":[],"verdict_traces":{},"current_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_e091f75fcfdccaea","generated_at":"2026-09-24T05:52:17.963339+00:00","trust_evaluated_at":"2026-09-24T05:52:17.963339+00:00","evidence_revision":"bc677d5e3d0ebf594592b17e","source":"current_snapshot","server":"awesome-ophis-fi/ophis","last_validated_at":"2026-09-24T03:10:22.905008+00:00","validation_age_hours":2.7,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-24T03:10:22.905008+00:00","age_hours":2.7,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":52.08,"raw_score":52.08,"confidence_score":91.2,"confidence_weighted_score":47.5,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":52.08,"display_score":52.08,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Block for production","why":"write/admin actions need confirmation safeguards + score below evaluation threshold","next_action":"revalidate, add safeguards, export policy","reason_count":2},"production_readiness_class":{"code":"needs_remediation","label":"Needs remediation","reason":"Current validation evidence shows operational or discovery gaps that should be fixed first."},"evidence_confidence":{"score":91.25,"label":"high","validation_age_hours":2.7,"live_check_count":11,"basis":{"evidence_bearing_validations":13,"affirmative_live_check_count":11,"validation_age_hours":2.7,"freshness_threshold_hours":24}},"active_alerts":[],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-24T05:52:17.963339+00:00"}},"trust_snapshot":{"schema_version":"verify.trust_snapshot.v1","snapshot_id":"trustsnap_e091f75fcfdccaea","generated_at":"2026-09-24T05:52:17.963339+00:00","trust_evaluated_at":"2026-09-24T05:52:17.963339+00:00","evidence_revision":"bc677d5e3d0ebf594592b17e","source":"current_snapshot","server":"awesome-ophis-fi/ophis","last_validated_at":"2026-09-24T03:10:22.905008+00:00","validation_age_hours":2.7,"freshness":{"schema_version":"verify.freshness_profile.v1","last_validated_at":"2026-09-24T03:10:22.905008+00:00","age_hours":2.7,"bucket":"verified_last_24h","label":"Verified in last 24h","badges":["verified_last_24h"],"freshness_sla_hours":720.0,"freshness_sla_status":"met","stale_score_suppressed":false,"display_score":52.08,"raw_score":52.08,"confidence_score":91.2,"confidence_weighted_score":47.5,"tier_status":[{"tier":"community","label":"Community","freshness_sla_hours":720,"met":true,"priority_revalidation":false},{"tier":"pro","label":"Pro","freshness_sla_hours":168,"met":true,"priority_revalidation":true},{"tier":"enterprise","label":"Enterprise","freshness_sla_hours":24,"met":true,"priority_revalidation":true}]},"current_status":"healthy","current_score":52.08,"display_score":52.08,"stale_score_suppressed":false,"production_trust_decision":{"schema_version":"verify.executive_verdict.v1","decision":"Block for production","why":"write/admin actions need confirmation safeguards + score below evaluation threshold","next_action":"revalidate, add safeguards, export policy","reason_count":2},"production_readiness_class":{"code":"needs_remediation","label":"Needs remediation","reason":"Current validation evidence shows operational or discovery gaps that should be fixed first."},"evidence_confidence":{"score":91.25,"label":"high","validation_age_hours":2.7,"live_check_count":11,"basis":{"evidence_bearing_validations":13,"affirmative_live_check_count":11,"validation_age_hours":2.7,"freshness_threshold_hours":24}},"active_alerts":[],"active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-24T05:52:17.963339+00:00"}},"agent_commerce":{},"latest_claim":null,"maintainer_profile_slug":null,"watch_summary":{},"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"trust_evaluated_at":"2026-09-24T05:52:17.963339+00:00","evidence_revision":"bc677d5e3d0ebf594592b17e","active_alert_summary":{"critical":0,"high":0,"medium":0,"low":0,"high_or_critical":0,"total":0},"materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-24T05:52:17.963339+00:00"},"owner_opted_out":false,"observed_attention":{"schema":"verify.observed_attention.v1","window_days":30,"level":"none","label":"No observed attention","summary":"No recent machine-readable trust or discovery activity observed for this server.","segments":{"useful_ai_user":{"level":"none","observed":false,"description":"AI-assisted user sessions such as ChatGPT/User or Claude/User."},"machine_trust_evaluator":{"level":"none","observed":false,"description":"Synthetic sessions inspecting multiple trust surfaces such as report, policy, ledger, badge, trust-summary, or compare."},"possible_agent_or_script":{"level":"none","observed":false,"description":"Structured direct sessions with rapid profile, compare, report, policy, badge, or trust-surface fan-out."},"isolated_machine_surface":{"level":"none","observed":false,"description":"Aged-out direct synthetic singleton sessions that touched a machine-readable trust surface without becoming a broader evaluator."},"ai_crawler":{"level":"none","observed":false,"description":"Known AI crawler activity such as ClaudeBot, GPTBot, or similar crawlers."},"search_crawler":{"level":"none","observed":false,"description":"Search and SEO crawler activity."},"browser_like_automation":{"level":"none","observed":false,"description":"Browser-like synthetic sessions with rapid structured endpoint activity."},"confirmed_human":{"level":"none","observed":false,"description":"Confirmed browser-session human activity."}},"surfaces_observed":{"server_profile":false,"compare":false,"compare_json":false,"compare_api":false,"report_json":false,"policy":false,"ledger":false,"badge_metadata":false,"badge_svg":false,"trust_summary":false,"mcp_tool":false},"claim_prompt":{"recommended":false,"reason":"No claim prompt is recommended from observed attention in the current window."},"notes":["Observed attention is based on segmented first-party telemetry.","Crawler and evaluator activity is not treated as confirmed human demand.","Public levels are bucketed to avoid exposing raw traffic counts."]},"owner_activation":{"claim_recommended":false,"reason":"no_observed_attention"},"snapshot_id":"trustsnap_e091f75fcfdccaea"}],"rows":[{"label":"Snapshot ID","values":["trustsnap_e091f75fcfdccaea"]},{"label":"Status","values":["healthy"]},{"label":"Score","values":[52.08]},{"label":"Production readiness","values":["Needs remediation"]},{"label":"Production trust decision","values":["Block for production"]},{"label":"Recommended policy","values":["Block"]},{"label":"Observed Attention","values":["No observed attention"]},{"label":"Evidence confidence","values":[91.25]},{"label":"Freshness","values":["n/a"]},{"label":"Latency","values":["n/a"]},{"label":"Spec recency","values":[2.0]},{"label":"Session resume","values":[3.0]},{"label":"Step-up auth","values":[0.0]},{"label":"Transport compliance","values":[2.0]},{"label":"Utility coverage","values":[0.0]},{"label":"Publishability","values":[1.0]},{"label":"Connector replay","values":[4.0]},{"label":"Request association","values":[0.0]},{"label":"Action safety","values":[1.0]},{"label":"Registry presence","values":[2.0]},{"label":"Provenance divergence","values":[null]},{"label":"Client compatibility: ChatGPT","values":["unknown"]},{"label":"Client compatibility: Claude","values":["unknown"]},{"label":"Write-action publishing","values":["unknown"]},{"label":"Snapshot churn risk","values":["unknown"]},{"label":"Transport","values":["streamable-http"]},{"label":"Auth","values":["Unauthenticated / none"]},{"label":"Tools","values":[14]},{"label":"Prompts","values":[0]},{"label":"Resources","values":[0]},{"label":"OAuth","values":[false]},{"label":"DCR","values":[false]},{"label":"Taxonomy","values":[""]},{"label":"Recommended for","values":["none"]},{"label":"Top alerts","values":["none"]}],"partial":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"cache_note":"Compact compare fallback response; deep compare evidence is deferred to protect web capacity.","trust_evaluated_at":"2026-09-24T05:52:17.963339+00:00","materialization":{"state":"partial","trust_core_complete":true,"fields_unavailable":["tool_security_inventory","security_posture_summary","write_action_governance","capability_taxonomy","remediations"],"materialized_at":"2026-09-24T05:52:17.987530+00:00"}}