mcpField
S
Swap Api

Swap Api

本地服务
github.com/Swap-API开发工具2230 周前更新

关于 Swap Api

Swap Api MCP Server 是 SwapAPI 的 MCP 服务,可为 AI Agent 提供 EVM 链上代币兑换所需的可执行交易数据。项目面向需要自动完成代币兑换的 Agent 开发者,README 中提到无需 API 密钥。

主要功能

  1. 01返回可执行的交易 calldata
  2. 02支持按链 ID 指定 EVM 网络
  3. 03可设置最大滑点,默认 0.5%
  4. 04返回目标合约地址、数据、金额和预估 gas

适用场景

  1. 01AI Agent 在 EVM 链上执行代币兑换
  2. 02为交易提交前生成报价与交易数据
  3. 03在 Claude Desktop 或 Cursor 中调用兑换功能

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 swap_tokens 工具,用于获取兑换交易数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"swap-api": {
"command": "npx",
"args": [
"-y",
"@swapapi/mcp"
]
}
}
}
启动命令npx -y @swapapi/mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@swapapi/mcp0.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SwapAPI MCP 服务

SwapAPI 的 MCP(模型上下文协议)服务。可让 AI Agent 获取适用于任意 EVM 链的可执行代币兑换 calldata。

安装

npm install -g @swapapi/mcp

也可以直接使用 npx:

npx @swapapi/mcp

客户端配置

Claude Desktop

将以下内容添加到 Claude Desktop 配置中:

{
  "mcpServers": {
    "swapapi": {
      "command": "npx",
      "args": ["@swapapi/mcp"]
    }
  }
}

或者使用本地安装:

{
  "mcpServers": {
    "swapapi": {
      "command": "npx",
      "args": ["tsx", "/path/to/swap-api/mcp/mcp-server.ts"]
    }
  }
}
Cursor

将以下内容添加到 Cursor 设置中(Settings → MCP):

{
  "mcpServers": {
    "swapapi": {
      "command": "npx",
      "args": ["@swapapi/mcp"]
    }
  }
}
其他客户端

任何兼容 MCP 的客户端都可以使用相同的配置格式。请查阅客户端的文档,了解在哪里添加 MCP 服务设置。

可用工具

swap_tokens

获取用于在 EVM 链上兑换代币的可执行交易数据。

参数:

参数类型必填描述
chainIdnumber是链 ID(1=Ethereum、8453=Base、42161=Arbitrum 等)
tokenInstring是输入代币地址。原生代币(ETH、MATIC 等)请使用 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE
tokenOutstring是输出代币地址
amountInstring是最小单位的金额(18 位小数代币使用 wei,6 位小数代币使用微单位)
senderstring是将签署并发送交易的钱包地址
maxSlippagenumber否最大滑点容差,范围为 0-1(默认值:0.005 = 0.5%)

返回值:

{
  "to": "0x...",           // Router contract address to call
  "data": "0x...",         // ABI-encoded swap calldata
  "value": "1000000000000000000",  // Native token value (if swapping from native)
  "gas": "150000",         // Estimated gas limit
  "guaranteedOut": "..."   // Minimum output amount after slippage
}

示例

在 Base 上将 0.001 ETH 兑换为 USDC
{
  "chainId": 8453,
  "tokenIn": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
  "tokenOut": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "amountIn": "1000000000000000",
  "sender": "0xYourAddress"
}
在 Arbitrum 上以 1% 滑点将 USDC 兑换为 ETH
{
  "chainId": 42161,
  "tokenIn": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
  "tokenOut": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
  "amountIn": "10000000",
  "sender": "0xYourAddress",
  "maxSlippage": 0.01
}

交易前检查清单

提交任何兑换交易前:

  1. ERC-20 授权:如果 tokenIn 不是原生代币,请确保 sender 已授权路由合约至少使用 amountIn
  2. 余额检查:确认 sender 的余额足以支付 amountIn(如果是原生代币,还需加上 value)
  3. Gas 估算:对交易调用 eth_estimateGas,并增加 20% 的缓冲
  4. 模拟:运行 eth_call,确认交易不会回滚
  5. 时间要求:获取报价后 30 秒内提交(calldata 有效期有限)

完整 API 文档请参阅主 README.md。

开发

cd mcp
npm install
npm start
测试

运行测试套件:

npm test

或者使用 MCP Inspector:

npx @modelcontextprotocol/inspector tsx mcp-server.ts

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。