Skip to main content
Glama

MCP-ODOS:去中心化交易所的模型上下文协议服务器

该项目实现了一个模型上下文协议 (MCP) 服务器,用于与去中心化交易所 (DEX) 进行交互。它允许兼容 MCP 的客户端(例如 AI 助手、IDE 扩展或自定义应用程序)访问诸如获取掉期报价和执行掉期交易等功能。

该服务器是使用 TypeScript 和fastmcp构建的。

功能(MCP 工具)

服务器公开了 MCP 客户端可以利用的以下工具:

  • ODOS_GET_QUOTE :获取掉期报价。

    • 参数: chainId (数字)、 sellToken (字符串)、 buyToken (字符串)、 sellAmount (字符串)

  • ODOS_EXECUTE_SWAP :执行交换。

    • 参数: chainId (数字)、 sellToken (字符串)、 buyToken (字符串)、 sellAmount (字符串)、 quote (字符串)、 walletProvider (字符串)

参数细分

  • chainId :DEX 的链 ID。

  • sellToken :您想要出售的代币。

  • buyToken :您想要购买的代币。

  • sellAmount :您想要出售的代币数量。

  • quote :您从get-quote服务获得的报价。

  • walletProvider :您想要使用的钱包提供商。

Related MCP server: CCXT MCP Server

先决条件

安装

有几种使用mcp-odos方法:

1. 使用pnpm dlx (推荐用于大多数 MCP 客户端设置):

您可以直接使用pnpm dlx运行服务器,无需全局安装。这通常是与 MCP 客户端集成的最简单方法。请参阅“使用 MCP 客户端运行服务器”部分的示例。( pnpm dlx是 pnpm 中与npx等效的版本)

2. 从 npm 进行全局安装(通过 pnpm):

全局安装该软件包以使mcp-odos命令在整个系统范围内可用:

pnpm add -g mcp-odos

3.从源代码构建(用于开发或自定义修改):

  1. 克隆存储库:

    git clone https://github.com/IQAIcom/mcp-odos.git
    cd mcp-odos
  2. 安装依赖项:

    pnpm install
  3. **构建服务器:**这会将dist目录中的 TypeScript 代码编译为 JavaScript。

    pnpm run build

    prepare脚本还运行pnpm run build ,因此如果您克隆并运行pnpm install则会在安装时构建依赖项。

配置(环境变量)

此 MCP 服务器可能需要运行它的 MCP 客户端设置某些环境变量。这些变量通常在客户端的 MCP 服务器定义中配置(例如,Cursor 的mcp.json文件,或其他客户端的类似文件)。

  • 钱包提供商或 API 密钥的任何必要环境变量。

使用 MCP 客户端运行服务器

MCP 客户端(例如 AI 助手、IDE 扩展等)会将此服务器作为后台进程运行。您需要配置客户端以告知它如何启动服务器。

以下是 MCP 客户端可能使用的配置示例代码片段(例如,在mcp_servers.json或类似的配置文件中)。此示例展示了如何通过pnpm dlx使用已发布的 npm 包来运行服务器。

{
  "mcpServers": {
    "iq-odos-mcp-server": {
      "command": "pnpm",
      "args": ["dlx", "mcp-odos"],
      "env": {
        "WALLET_PRIVATE_KEY": "your_wallet_private_key_here"
      }
    }
  }
}

如果全局安装,则替代方案:

如果您已经全局安装了mcp-odos ( pnpm add -g mcp-odos ),您可以简化command和args :

{
  "mcpServers": {
    "iq-odos-mcp-server": {
      "command": "mcp-odos",
      "args": [],
      "env": {
        "WALLET_PRIVATE_KEY": "your_wallet_private_key_here"
      }
    }
  }
}
  • command :要运行的可执行文件。

    • 对于pnpm dlx : "pnpm" (以"dlx"作为第一个参数)

    • 全局安装: "mcp-odos"

  • args :传递给命令的参数数组。

    • 对于pnpm dlx : ["dlx", "mcp-odos"]

    • 对于全局安装: []

  • env :一个包含服务器进程启动时要设置的环境变量的对象。您可以在此处提供任何必要的环境变量。

  • workingDirectory :通过pnpm dlx或全局安装使用已发布的包时通常不需要,因为包本身应该能够正确处理其自身的路径。如果您从源代码( node dist/index.js )运行,则将workingDirectory设置为项目根目录非常重要。

Available Tools

3 tools
ODOS_GET_CHAIN_IDA

Get the chain ID for a given chain name

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesThe chain name to get the ID for

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoThe blockchain network to execute the transaction on. uses fraxtal as defaultfraxtal
fromTokenYesThe token to swap from (address).
toTokenYesThe token to swap to (address).
amountYesThe amount of tokens to swap, in wei.
prettyFormatNoWhether to pretty format the quote.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoThe blockchain network to execute the transaction on. uses fraxtal as defaultfraxtal
fromTokenYesThe token to swap from (address).
toTokenYesThe token to swap to (address).
amountYesThe amount of tokens to swap, in wei.
prettyFormatNoWhether to pretty format the quote.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 3 tool updatesv1.0.0
    • First observedODOS_GET_CHAIN_ID
    • First observedODOS_GET_QUOTE
    • First observedODOS_SWAP

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct step in the swap process: chain ID lookup, quote retrieval, and execution. No ambiguity or overlap exists.

Naming Consistency5/5

All tools use a consistent ODOS_ prefix followed by clear verb_noun patterns (GET_CHAIN_ID, GET_QUOTE, SWAP), making them predictable.

Tool Count5/5

With 3 tools, the server is well-scoped for the core swap workflow without unnecessary bloat or deficiency.

Completeness3/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    15 npm
    22
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A 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.
    24 npm
    -

Appeared in Searches