Server data from the Official MCP Registry
Create gasless market, limit, TWAP, stop-loss, take-profit, and delayed-start swap orders.
Create gasless market, limit, TWAP, stop-loss, take-profit, and delayed-start swap orders.
Valid MCP server (1 strong, 0 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
7 files analyzed ยท 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-orbs-network-spot": {
"args": [
"-y",
"@orbs-network/spot"
],
"command": "npx"
}
}
}From the project's GitHub README.
Agent-ready decentralized DeFi protocol for non-custodial advanced order types on EVM chains.
Spot provides non-custodial market, limit, TWAP, stop-loss, take-profit, and delayed-start orders on EVM chains, backed by immutable onchain contracts.
๐ Security Audit Report by AstraSec
Spot supports multiple EVM chains. See config.json as the canonical source for supported chains and runtime addresses.
Each Spot order combines timing, sizing, trigger, and settlement rules in a single signed payload.
input.amount is the per-fill chunk size.input.maxAmount is the total budget across fills.output.limit is the minimum acceptable output per chunk.output.triggerLower and output.triggerUpper define stop-loss and take-profit style trigger bands.epoch controls recurrence: 0 for one-shot, > 0 for recurring fills.start and deadline define the execution window.output.limit, triggerLower, and triggerUpper are encoded as per-chunk output-token amounts in the output token's decimals.
A typical order lifecycle is:
Executor.execute() when the order is eligible.OrderReactor validates signatures, checks start, enforces epoch windows, verifies timestamps, and applies slippage protection.Spot's contracts were professionally audited. See the Security Audit Report. Spot is also oracle-protected: execution depends on cosigned trigger and market price data, freshness windows, and slippage checks.
WM uses OpenZeppelin Ownable2Step for secure ownership transfers.exclusivity = 0 locks fills to the designated executor, while values above zero allow third-party fillers that satisfy the higher minimum output requirement.OrderValidationLib.validate() checks all order fields for validity.EpochLib.update() prevents early or duplicate fills within time windows.src/Constants.sol.start and no later than the current timestamp.SafeERC20.forceApprove() avoids allowance accumulation attacks.OrderReactor uses ReentrancyGuard; Executor and Refinery rely on WM gating and internal invariants.OrderReactor can be paused by WM-allowed addresses.Plain-English examples:
Order memory order = Order({
// ... standard fields
epoch: 0, // Single execution
input: Input({
amount: 1000e6, // Exact amount to spend
maxAmount: 1000e6 // Same as amount
}),
output: Output({
limit: 950 ether, // Minimum acceptable output
triggerLower: 0, // No lower trigger gate
triggerUpper: 0 // No upper trigger gate
})
});
Order memory order = Order({
// ... standard fields
epoch: 3600, // Execute every hour
input: Input({
amount: 100e6, // 100 USDC per chunk
maxAmount: 1000e6 // 1000 USDC total budget
}),
output: Output({
limit: 95 ether, // Minimum per chunk
triggerLower: 0,
triggerUpper: 0
})
});
Order memory order = Order({
// ... standard fields
epoch: 0, // Single execution
start: block.timestamp, // Order becomes active immediately
output: Output({
limit: 900 ether, // Minimum per chunk output when executing
triggerLower: 950 ether, // Stop-loss boundary per chunk
triggerUpper: 1200 ether // Take-profit boundary per chunk
})
});
src/OrderReactor.sol): Validates orders, checks epoch constraints, computes minimum output from cosigned prices, settles via inlined implementation with reentrancy protection, and supports emergency pause via the WM allowlist.src/RePermit.sol): Permit2-style EIP-712 signatures with witness data that bind allowances to exact order hashes, preventing signature reuse.src/ops/Cosigner.sol): Attests to trigger-time and current market prices with token validation.src/Executor.sol): Whitelisted fillers that run venue logic via delegatecall to adapters, enforce minimum output, and distribute surplus.src/ops/WM.sol): Two-step ownership allowlist manager for executors and admin functions with event emission.src/ops/Refinery.sol): Operations utility for batching multicalls and sweeping token balances by basis points.Based on src/Structs.sol, each order contains:
struct Order {
address reactor; // OrderReactor contract address
address executor; // Authorized executor for this order
Exchange exchange; // Adapter, referrer, and data
address swapper; // Order creator/signer
uint256 nonce; // Unique identifier
uint256 start; // Earliest execution timestamp
uint256 deadline; // Expiration timestamp
uint256 chainid; // Chain ID for cross-chain validation
uint32 exclusivity; // BPS-bounded exclusive execution
uint32 epoch; // Seconds between fills (0 = single-use)
uint32 slippage; // BPS applied to cosigned price
uint32 freshness; // Cosignature validity window in seconds
Input input; // Token to spend
Output output; // Token to receive
}
struct Input {
address token; // Input token address
uint256 amount; // Per-fill chunk amount
uint256 maxAmount; // Total amount across all fills
}
struct Output {
address token; // Output token address
uint256 limit; // Minimum acceptable output, in output-token decimals, per chunk
uint256 triggerLower; // Lower trigger boundary, in output-token decimals, per chunk
uint256 triggerUpper; // Upper trigger boundary, in output-token decimals, per chunk
address recipient; // Where to send output tokens
}
src/Constants.sol.epoch != 0.0 means single execution; values above 0 mean recurring execution with that interval.1,000,000.The protocol is designed for deployment across EVM-compatible chains with deterministic addresses via CREATE2. Configuration is managed through config.json.
This repository ships these integration surfaces:
@orbs-network/spot for config, build orchestration, contracts, and published metadata inputs.skill/ published as @orbs-network/spot-skill.mcp/ published as @orbs-network/spot-mcp with server name io.github.orbs-network/spot.https://orbs-network.github.io/spot/ for direct bundle consumption.npm install
npm run build
npm test
npm run fmt
Notes:
npm run build runs npm run sync and then forge build --extra-output-files abi.mcp/package.json fields should not be hand-maintained; MCP-owned fields there such as pinned runtime dependencies are maintained in mcp/package.json.forge test for the Foundry suite.skill/, MCP metadata, and any affected published surfaces in sync.npm run build after changes.MIT. See LICENSE.
Be the first to review this server!
by Modelcontextprotocol ยท Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno ยท Developer Tools
Toleno Network MCP Server โ Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace ยท Developer Tools
Create, build, and publish Python MCP servers to PyPI โ conversationally.
by Microsoft ยท Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace ยท Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm โ conversationally
by mcp-marketplace ยท Finance
Free stock data and market news for any MCP-compatible AI assistant.