MCP (Model Context Protocol) server for SwapAPI. Enables AI agents to get executable token swap calldata for any EVM chain.
npm install -g @swapapi/mcpOr use directly with npx:
npx @swapapi/mcpAdd to your Claude Desktop config:
{
"mcpServers": {
"swapapi": {
"command": "npx",
"args": ["@swapapi/mcp"]
}
}
}Or with a local install:
{
"mcpServers": {
"swapapi": {
"command": "npx",
"args": ["tsx", "/path/to/swap-api/mcp/mcp-server.ts"]
}
}
}Add to your Cursor settings (Settings → MCP):
{
"mcpServers": {
"swapapi": {
"command": "npx",
"args": ["@swapapi/mcp"]
}
}
}Any MCP-compatible client can use the same configuration format. Check your client's documentation for where to add MCP server settings.
Get executable transaction data to swap tokens on EVM chains.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
chainId |
number |
Yes | Chain ID (1=Ethereum, 8453=Base, 42161=Arbitrum, etc.) |
tokenIn |
string |
Yes | Input token address. Use 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native token (ETH, MATIC, etc.) |
tokenOut |
string |
Yes | Output token address |
amountIn |
string |
Yes | Amount in smallest unit (wei for 18-decimal tokens, micro-units for 6-decimal tokens) |
sender |
string |
Yes | Wallet address that will sign and send the transaction |
maxSlippage |
number |
No | Max slippage tolerance 0-1 (default: 0.005 = 0.5%) |
Returns:
{
"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
}{
"chainId": 8453,
"tokenIn": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"tokenOut": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amountIn": "1000000000000000",
"sender": "0xYourAddress"
}{
"chainId": 42161,
"tokenIn": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"tokenOut": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"amountIn": "10000000",
"sender": "0xYourAddress",
"maxSlippage": 0.01
}Before submitting any swap transaction:
- ERC-20 Approval: If
tokenInis not native token, ensure sender has approved the router for at leastamountIn - Balance Check: Verify sender has sufficient balance for
amountIn(plusvalueif native token) - Gas Estimation: Call
eth_estimateGason the transaction and add 20% buffer - Simulation: Run
eth_callto verify the transaction won't revert - Timing: Submit within 30 seconds of fetching the quote (calldata has expiry)
See the main README.md for full API documentation.
cd mcp
npm install
npm startRun the test suite:
npm testOr use the MCP Inspector:
npx @modelcontextprotocol/inspector tsx mcp-server.tsMIT