Ophis MCP
What this MCP does
Quotes, builds, validates, and relays gasless MEV-protected token swaps on supported EVM chains, while providing wallet and market data.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId', 'owner', 'sellToken', 'buyToken', 'sellAmount', 'buyAmount', 'kind'], 'properties': {'kind': {'enum': ['sell', 'buy'], 'type': 'string', 'description': "'sell' = sellAmount is exact and buyAmount is your minimum out; 'buy' = buyAmount is exact and sellAmount is your maximum in."}, 'owner': {'type': 'string', 'description': 'The signer/owner address (receiver defaults to this).'}, 'chainId': {'type': 'integer', 'description': 'EVM chain id (use a chainId from list_chains `tradeable`).'}, 'buyToken': {'type': 'string', 'description': 'Buy token address (0x...).'}, '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."}, '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).'}, 'sellToken': {'type': 'string', 'description': 'Sell token address (0x...).'}, '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)."}, 'isStablePair': {'type': 'boolean', 'description': 'Optional assertion checked against the server-owned stablecoin registry; omit to auto-classify.'}, 'referrerCode': {'type': 'string', 'description': "Affiliate referral code to embed in appData (credits that code's owner for eligible settled trades, including Arc). Defaults to the server's OPHIS_DEFAULT_REFERRER_CODE. An empty string opts out. Grammar: 3-64 chars [a-z0-9_-]; an invalid code errors."}, '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.'}, '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.'}, 'partiallyFillable': {'type': 'boolean', 'description': 'Allow partial fills (default false = fill-or-kill).'}, 'referenceBuyAmount': {}, 'referenceSellAmount': {}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId', 'sellToken', 'buyToken', 'sellAmount', 'from'], 'properties': {'from': {'type': 'string', 'description': 'The trading account address (quotes are account-aware).'}, 'chainId': {'type': 'integer', 'description': 'EVM chain id (use a chainId from list_chains `tradeable`).'}, 'buyToken': {'type': 'string', 'description': 'Buy token address (0x...).'}, 'sellToken': {'type': 'string', 'description': 'Sell token address (0x...).'}, 'sellAmount': {'type': 'string', 'description': 'Exact sell amount in atoms (uint256 decimal string).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId', 'owner'], 'properties': {'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.'}, 'chainId': {'type': 'integer', 'description': 'EVM chain id (use list_chains for Ophis chains).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId'], 'properties': {'chainId': {'type': 'integer', 'description': 'EVM chain id.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['appCode'], 'properties': {'appCode': {'type': 'string', 'maxLength': 64, 'minLength': 3, 'description': 'Your integrator appCode / referral code (3-64 chars of [a-z0-9_-]).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['owner'], 'properties': {'owner': {'type': 'string', 'description': 'Wallet address to read (0x...).'}, 'chainIds': {'type': 'array', 'items': {'type': 'integer'}, 'maxItems': 13, 'description': 'Chains to read (max 13). Omit to scan all chains with a public RPC.'}, 'tokensByChain': {'type': 'object', 'description': 'Map of chainId -> ERC-20 token addresses to read on that chain (native is always included).', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId', 'sellToken', 'buyToken', 'kind', 'amount', 'from'], 'properties': {'from': {'type': 'string', 'description': 'The trading account address (quotes are account-aware).'}, 'kind': {'enum': ['sell', 'buy'], 'type': 'string', 'description': "'sell' = you specify the sell amount; 'buy' = you specify the buy amount."}, 'amount': {'type': 'string', 'description': 'Amount in atoms (uint256 decimal string).'}, 'chainId': {'type': 'integer', 'description': 'EVM chain id (use list_chains for supported chains).'}, 'buyToken': {'type': 'string', 'description': 'Buy token address (0x...).'}, 'sellToken': {'type': 'string', 'description': 'Sell token address (0x...).'}, 'isStablePair': {'type': 'boolean', 'description': 'Optional assertion checked against the server-owned stablecoin registry; omit to auto-classify.'}, 'validForSeconds': {'type': 'integer', 'description': 'Quote validity window in seconds (default 1200 = 20 min).', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId', 'token'], 'properties': {'limit': {'type': 'integer', 'maximum': 300, 'description': 'Number of candles (default 30, max 300).', 'exclusiveMinimum': 0}, 'token': {'type': 'string', 'description': 'Token address (0x...).'}, 'chainId': {'type': 'integer', 'description': 'EVM chain id (GeckoTerminal-mapped: eth/optimism/base/arbitrum/polygon/bsc/avax/linea/gnosis/ink).'}, 'aggregate': {'type': 'integer', 'description': 'Bucket multiple base units into one candle, e.g. timeframe=hour aggregate=4 = 4h candles (default 1).', 'exclusiveMinimum': 0}, 'timeframe': {'enum': ['day', 'hour', 'minute'], 'type': 'string', 'description': "Candle timeframe (default 'day')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['wallet'], 'properties': {'wallet': {'type': 'string', 'description': 'Wallet address (0x...).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 280, 'minLength': 1, 'description': 'The natural-language swap request.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId', 'symbol'], 'properties': {'symbol': {'type': 'string', 'maxLength': 20, 'minLength': 1, 'description': 'Token symbol to resolve, e.g. "USDC" or "WETH".'}, 'chainId': {'type': 'integer', 'description': 'EVM chain id (use a chainId from list_chains `tradeable`).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId', 'order', 'signature', 'from', 'fullAppData'], 'properties': {'from': {'type': 'string', 'description': 'The owner address that signed.'}, 'order': {'type': 'object', 'required': ['sellToken', 'buyToken', 'receiver', 'sellAmount', 'buyAmount', 'validTo', 'appData', 'feeAmount', 'kind', 'partiallyFillable', 'sellTokenBalance', 'buyTokenBalance'], 'properties': {'kind': {'enum': ['sell', 'buy'], 'type': 'string'}, 'appData': {'type': 'string'}, 'validTo': {'type': 'integer'}, 'buyToken': {'type': 'string'}, 'receiver': {'type': 'string'}, 'buyAmount': {'type': 'string'}, 'feeAmount': {'type': 'string'}, 'sellToken': {'type': 'string'}, 'sellAmount': {'type': 'string'}, 'buyTokenBalance': {'type': 'string', 'const': 'erc20'}, 'sellTokenBalance': {'type': 'string', 'const': 'erc20'}, 'partiallyFillable': {'type': 'boolean'}}, 'description': 'The order object returned by build_order.', 'additionalProperties': False}, 'chainId': {'type': 'integer', 'description': 'EVM chain id the order was built for.'}, 'signature': {'type': 'string', 'description': '0x EIP-712 signature over the order by the owner.'}, 'fullAppData': {'type': 'string', 'description': 'The fullAppData string returned by build_order.'}, 'signingScheme': {'enum': ['eip712', 'ethsign'], 'type': 'string', 'description': "Signature scheme over the order (default 'eip712')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['chainId'], 'properties': {'order': {'type': 'object', 'properties': {'kind': {'type': 'string'}, 'appData': {'type': 'string', 'description': 'The signed bytes32 appData hash.'}, 'validTo': {'type': 'integer'}, 'buyToken': {'type': 'string'}, 'receiver': {'type': 'string'}, 'buyAmount': {'type': 'string'}, 'feeAmount': {'type': 'string'}, 'sellToken': {'type': 'string'}, 'sellAmount': {'type': 'string'}}, 'description': 'The (partial) order about to be signed.', 'additionalProperties': False}, 'owner': {'type': 'string', 'description': 'The signing account address; enables the receiver drain-guard check.'}, 'chainId': {'type': 'integer', 'description': 'EVM chain id the order is for (use list_chains `tradeable`).'}, 'fullAppData': {'type': 'string', 'description': 'The exact appData JSON string that will be submitted with the order.'}, 'orderbookUrl': {'type': 'string', 'description': 'The orderbook base URL the order will be submitted to.'}, 'signingDomain': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'chainId': {'type': 'integer'}, 'version': {'type': 'string'}, 'verifyingContract': {'type': 'string'}}, 'description': 'The EIP-712 domain the order will be signed against.', 'additionalProperties': False}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
SAP MCP Server
Provides an MCP gateway connecting SAP-related tools with Solana, DeFi, decentralized identity, and x402 payments.
FortFi Treasury MCP
Provides policy-controlled crypto treasury operations across chains, including wallets, payments, token discovery, swaps, bridges…
DPX — Institutional Cross-Border Settlement
Provides compliance-gated cross-border crypto settlement, agent registration and spending mandates, stablecoin routing, ESG and s…
Peer
Reads Peer protocol, checkout, deposit, wallet, Peer Cash, cross-chain routing, payout, and IntentGuardian data on Base and relat…
Robyn — Gasless Cross-Chain for AI Agents
Supports gasless cross-chain transfers, wallet and transaction checks, spending mandates, privacy-preserving messaging, and signe…
MERX - TRON Resource Exchange
Manages TRON energy and bandwidth purchasing, resource monitoring, transaction cost estimation, wallet operations, token transfer…
Wisely x402 Agent-Payment Infrastructure
Provides agent payment workflows for x402 endpoints, wallet handoffs, receipts, creator catalogs, local commerce bridges, endpoin…
AgentTools Hub
Offers calculators, unit and data converters, reference lookups, live crypto data, wallet utilities, and paid x402 access.