MCP-ODOS
The MCP-ODOS server enables interaction with decentralized exchanges (DEXs), providing two primary functions:
Fetch Quotes for Swaps: Use the
ODOS_GET_QUOTEtool to get swap quotes by specifying parameters likechainId,sellToken,buyToken, andsellAmount.Execute Swaps: Use the
ODOS_EXECUTE_SWAPtool to execute token swaps with parameters includingchainId,sellToken,buyToken,sellAmount,quote, andwalletProvider.
The server is designed to work seamlessly with MCP-compatible clients such as AI assistants or IDE extensions, and can be configured using environment variables like WALLET_PRIVATE_KEY.
Requires Node.js runtime (v18 or newer) to execute the MCP server for decentralized exchange operations.
Implements the MCP server functionality using TypeScript, providing type-safe interaction with decentralized exchanges.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-ODOSget a quote for swapping 1 ETH to USDC on Ethereum"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🔄 Odos MCP Server
📖 Overview
The Odos MCP Server enables AI agents to interact with Odos, a leading DEX aggregator that finds optimal swap routes across multiple decentralized exchanges. This server provides comprehensive access to quote retrieval and swap execution functionality.
By implementing the Model Context Protocol (MCP), this server allows Large Language Models (LLMs) to fetch swap quotes, compare prices, and execute token swaps directly through their context window, bridging the gap between AI and decentralized finance.
Related MCP server: CCXT MCP Server
✨ Features
Quote Retrieval: Get optimal swap quotes with best routes across multiple DEXs.
Multi-Chain Support: Execute swaps on various blockchain networks including Fraxtal, Ethereum, and more.
Swap Execution: Execute token swaps with automatic allowance handling.
Chain ID Lookup: Retrieve chain IDs for supported blockchain networks.
📦 Installation
🚀 Using npx (Recommended)
To use this server without installing it globally:
npx @iqai/mcp-odos🔧 Build from Source
git clone https://github.com/IQAIcom/mcp-odos.git
cd mcp-odos
pnpm install
pnpm run build⚡ Running with an MCP Client
Add the following configuration to your MCP client settings (e.g., claude_desktop_config.json).
📋 Minimal Configuration
{
"mcpServers": {
"odos": {
"command": "npx",
"args": ["-y", "@iqai/mcp-odos"],
"env": {
"WALLET_PRIVATE_KEY": "your_wallet_private_key_here"
}
}
}
}⚙️ Advanced Configuration (Local Build)
{
"mcpServers": {
"odos": {
"command": "node",
"args": ["/absolute/path/to/mcp-odos/dist/index.js"],
"env": {
"WALLET_PRIVATE_KEY": "your_wallet_private_key_here"
}
}
}
}🔐 Configuration (Environment Variables)
Variable | Required | Description | Default |
| Yes | Your wallet private key for executing swaps | - |
💡 Usage Examples
🔍 Getting Quotes
"Get a quote to swap 1000 USDC for FRAX on Fraxtal."
"What's the best rate to swap ETH for USDC?"
"How much FRAX will I get for 100 USDC on Fraxtal?"
💱 Executing Swaps
"Swap 100 USDC for FRAX on Fraxtal."
"Execute a trade: sell 1000 USDC for ETH."
"Trade my USDC for the maximum amount of FRAX."
🔗 Chain Information
"What is the chain ID for Fraxtal?"
"Get the chain ID for Ethereum mainnet."
🛠️ MCP Tools
ODOS_GET_CHAIN_ID
Get the chain ID for a given chain name
Parameter | Type | Required | Description |
| string | ✅ | The chain name to get the ID for |
ODOS_GET_QUOTE
Get a quote for a swap or exchange operation
Parameter | Type | Required | Default | Description |
| string | "fraxtal" | The blockchain network to execute the transaction on. uses fraxtal as default | |
| string | ✅ | The token to swap from (address). | |
| string | ✅ | The token to swap to (address). | |
| string | ✅ | The amount of tokens to swap, in wei. | |
| boolean | true | Whether to pretty format the quote. |
ODOS_SWAP
Execute a swap transaction
Parameter | Type | Required | Default | Description |
| string | "fraxtal" | The blockchain network to execute the transaction on. uses fraxtal as default | |
| string | ✅ | The token to swap from (address). | |
| string | ✅ | The token to swap to (address). | |
| string | ✅ | The amount of tokens to swap, in wei. | |
| boolean | true | Whether to pretty format the quote. |
👨💻 Development
🏗️ Build Project
pnpm run build👁️ Development Mode (Watch)
pnpm run watch✅ Linting & Formatting
pnpm run lint
pnpm run format📁 Project Structure
src/tools/: Individual tool definitionssrc/services/: API client and business logicsrc/utils/: Shared utilitiessrc/index.ts: Server entry point
📚 Resources
⚠️ Disclaimer
This project is an unofficial tool and is not directly affiliated with Odos. It interacts with financial data and decentralized exchanges. Users should exercise caution and verify all data independently. Trading on decentralized exchanges involves risk.
📄 License
Available Tools
3 toolsODOS_GET_CHAIN_IDA
Get the chain ID for a given chain name
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | The chain name to get the ID for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as idempotency, side effects, or rate limits. While the tool name suggests a read-only operation, the description does not explicitly confirm safety or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It is front-loaded with the verb and clearly states the purpose, earning full marks for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, no output schema), the description is adequate but could be improved by explaining what the chain ID is or the format of the return value. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'chain' already described. The description adds minimal additional meaning beyond the schema, so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'chain ID', and the condition 'for a given chain name'. It effectively distinguishes itself from sibling tools like ODOS_GET_QUOTE and ODOS_SWAP, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or limitations. It is straightforward but lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ODOS_GET_QUOTEB
Get a quote for a swap or exchange operation
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | The blockchain network to execute the transaction on. uses fraxtal as default | fraxtal |
| fromToken | Yes | The token to swap from (address). | |
| toToken | Yes | The token to swap to (address). | |
| amount | Yes | The amount of tokens to swap, in wei. | |
| prettyFormat | No | Whether to pretty format the quote. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description gives no behavioral details beyond stating it gets a quote. There is no mention of side effects, authentication, rate limits, or whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. However, it could still include more useful information without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain what the tool returns (e.g., a quote object). It does not mention the return format, pagination, or error cases, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning or context for the parameters, such as token address format or amount precision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a quote for a swap or exchange operation' clearly states the verb (Get), resource (quote), and context (swap/exchange). It distinguishes from sibling tools like ODOS_SWAP (which performs the swap) and ODOS_GET_CHAIN_ID (which retrieves chain ID).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings or alternatives. It does not mention that getting a quote is a prerequisite for swapping, nor does it advise against using it in certain contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ODOS_SWAPC
Execute a swap transaction
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | The blockchain network to execute the transaction on. uses fraxtal as default | fraxtal |
| fromToken | Yes | The token to swap from (address). | |
| toToken | Yes | The token to swap to (address). | |
| amount | Yes | The amount of tokens to swap, in wei. | |
| prettyFormat | No | Whether to pretty format the quote. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. 'Execute a swap transaction' implies a write operation but does not disclose side effects, authorization needs (e.g., token approval), or error conditions, making it insufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. It earns its place but could benefit from additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (swap transaction with 5 parameters, no output schema), the description is incomplete. It omits critical details like expected output (transaction hash?), slippage parameters, or prerequisite approvals, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions (e.g., each token address, amount in wei). The description adds no new meaning, so baseline score of 3 is appropriate per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Execute a swap transaction' clearly states the verb and resource, distinguishing it from sibling tools like ODOS_GET_QUOTE which provides quotes. However, it lacks additional context about what a swap entails, slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not specify when to use this tool (e.g., after obtaining a quote) or when not to use it, leaving the agent without important context for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
ODOS_GET_CHAIN_ID - First observed
ODOS_GET_QUOTE - First observed
ODOS_SWAP
TDQS
Each tool targets a distinct step in the swap process: chain ID lookup, quote retrieval, and execution. No ambiguity or overlap exists.
All tools use a consistent ODOS_ prefix followed by clear verb_noun patterns (GET_CHAIN_ID, GET_QUOTE, SWAP), making them predictable.
With 3 tools, the server is well-scoped for the core swap workflow without unnecessary bloat or deficiency.
The tools cover the essential swap steps but lack a token approval tool, which is commonly required for many swaps, creating a potential gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Multi-aggregator swap router for AI agents on Base. 10 bps fee. MCP-native, non-custodial.
A Model Context Protocol server for Wix AI tools
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server enabling AI agents to interact with the Solana blockchain for DeFi operations like checking balances, transferring tokens, executing swaps, and fetching price data.2922MIT
- AlicenseBqualityDmaintenanceA server that allows AI models to interact with cryptocurrency exchange APIs through the Model Context Protocol, providing access to over 100 exchanges and their trading capabilities.2025993MIT
- FlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI agents to autonomously execute cross-chain trading operations on Paloma DEX across seven EVM chains including Ethereum, Arbitrum, and Polygon.21-
- AlicenseNot gradedqualityNot gradedmaintenanceA comprehensive Model Context Protocol server that enables AI agents to interact with BNB Chain, opBNB, and other EVM networks through natural language. It provides tools for DeFi trading, DEX swaps, smart contract deployment, token operations, security analysis, and market data across multiple blockchain networks.49-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BrainDAO/mcp-odos'
If you have feedback or need assistance with the MCP directory API, please join our Discord server