# SODAX Builders MCP (remote · builders.sodax.com)

Cross-network DeFi API data, AMM analytics, and SDK docs for 17+ networks.

- Trust score: 74/100 (medium)
- Change this week: +7
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `builders.sodax.com`: 74/100 (this document), [markdown](https://verifymcp.io/servers/gosodax-builders-mcp/builders.md), [page](https://verifymcp.io/servers/gosodax-builders-mcp/builders)

## Channel facts

- Endpoint: `https://builders.sodax.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4519 tokens (~112/item across 40 items; 40 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 99% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http gosodax-builders-mcp https://builders.sodax.com/mcp
```

### Codex

```toml
[mcp_servers.gosodax-builders-mcp]
url = "https://builders.sodax.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gosodax-builders-mcp": {
      "type": "remote",
      "url": "https://builders.sodax.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gosodax-builders-mcp --url https://builders.sodax.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  gosodax-builders-mcp:
    url: "https://builders.sodax.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "gosodax-builders-mcp": {
      "type": "http",
      "url": "https://builders.sodax.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 73, +4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 67, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 67)

First indexed and scored.

## MCP tools (40)

### `sodax_get_supported_chains` (~53 tokens)

List all blockchain networks supported by SODAX for cross-chain swaps and DeFi operations

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_swap_tokens` (~110 tokens)

Get available tokens for swapping on SODAX, optionally filtered by chain

Input parameters:

- `chainId` (string): Filter tokens by spoke chain ID. Use the formal chain ID (e.g., '0x2105.base', 'ethereum', 'sonic', '0x1.icon', '0xa.optimism'). Call sodax_get_supported_chains for the full list.
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_transaction` (~71 tokens)

Look up a specific transaction by its hash to see status, amounts, and details

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `txHash` (string, required): The transaction hash to look up (e.g., '0x...')

### `sodax_get_user_transactions` (~133 tokens)

Get intent/transaction history for a specific wallet address

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `fromBlock` (number): Inclusive lower bound on blockNumber (chain-native ordering)
- `limit` (number): Maximum number of transactions to return (1-100)
- `offset` (number): Number of transactions to skip for pagination
- `toBlock` (number): Inclusive upper bound on blockNumber (chain-native ordering)
- `userAddress` (string, required): The wallet address to look up (e.g., '0x...')

### `sodax_get_volume` (~328 tokens)

Get solver volume data showing filled intents with filtering and pagination. Requires inputToken and outputToken. Optional filters: chain, solver, block range OR time range (don't mix both).

Input parameters:

- `chainId` (number): Filter by chain ID (e.g., 146 for Sonic)
- `cursor` (string): Pagination cursor from previous response's nextCursor
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `fromBlock` (number): Start block number (don't mix with since/until)
- `fromTs` (number): Start timestamp (unix seconds). Don't mix with since/until or fromBlock/toBlock.
- `includeData` (boolean): Include raw intent data in response
- `inputToken` (string, required): REQUIRED: Input token address
- `limit` (number): Maximum number of filled intents to return (1-100)
- `outputToken` (string, required): REQUIRED: Output token address
- `since` (string): Start time ISO format (don't mix with fromBlock/toBlock or fromTs/toTs)
- `solver` (string): Filter by solver address (0x0...0 for default solver)
- `sort` (string): Sort order by block number
- `toBlock` (number): End block number (don't mix with since/until)
- `toTs` (number): End timestamp (unix seconds). Don't mix with since/until or fromBlock/toBlock.
- `until` (string): End time ISO format (don't mix with fromBlock/toBlock or fromTs/toTs)

### `sodax_get_volume_stats` (~63 tokens)

Get aggregate solver volume stats: the approximate total number of filled-intent records (fill documents, not distinct intents). Cached ~60s upstream.

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_orderbook` (~188 tokens)

Get current orderbook entries showing pending/open intents

Input parameters:

- `creator` (string): Filter by creator address
- `deadlineAfter` (number): Only return intents with deadline > value (Unix seconds)
- `deadlineBefore` (number): Only return intents with deadline < value (Unix seconds)
- `dstChain` (number): Filter by destination chain id
- `excludeZeroDeadline` (boolean): Exclude intents where deadline = 0
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `inputToken` (string): Filter by input token address
- `limit` (number): Max results (default server-side, cap 500)
- `offset` (number): Offset for simple pagination
- `outputToken` (string): Filter by output token address
- `srcChain` (number): Filter by source chain id

### `sodax_get_money_market_assets` (~63 tokens)

List all assets available for lending and borrowing in the SODAX money market

Input parameters:

- `chainId` (string): Filter by chain ID
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_user_position` (~60 tokens)

Get a user's lending and borrowing position in the money market

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `userAddress` (string, required): The wallet address to look up

### `sodax_get_partners` (~74 tokens)

List all SODAX integration partners including wallets, DEXs, and other protocols

Input parameters:

- `chainId` (integer): Filter partners by numeric chain ID (e.g. 146 for Sonic)
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_token_supply` (~49 tokens)

Get SODA token supply information including total, circulating, and burned amounts

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_all_config` (~55 tokens)

Get full SODAX configuration including all supported chains, swap tokens, and protocol settings in one call

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_relay_chain_id_map` (~56 tokens)

Get mapping between chain IDs and intent relay chain IDs used by the SODAX relay network

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_all_chains_configs` (~54 tokens)

Get detailed configuration for all spoke chains including contract addresses, RPCs, and token configs

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_hub_assets` (~104 tokens)

Get assets representing spoke tokens on the hub (Sonic) chain, optionally filtered by source chain

Input parameters:

- `chainId` (string): Filter by source spoke chain ID. Use the formal chain ID (e.g., '0x2105.base', 'ethereum', 'sonic'). Call sodax_get_supported_chains for the full list.
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_money_market_tokens` (~63 tokens)

Get tokens supported for money market lending/borrowing, optionally filtered by chain

Input parameters:

- `chainId` (string): Filter by chain ID
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_money_market_reserve_assets` (~47 tokens)

Get money market reserve assets used as collateral backing

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_amm_positions` (~88 tokens)

Get AMM liquidity provider NFT positions, optionally filtered by owner address

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `limit` (number): Maximum number of positions to return
- `offset` (number): Number of positions to skip for pagination
- `owner` (string): Filter by owner wallet address

### `sodax_get_amm_pool_candles` (~127 tokens)

Get OHLCV candlestick chart data for an AMM pool

Input parameters:

- `chainId` (string, required): Chain ID where the pool is deployed (e.g., 'sonic')
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `from` (number, required): REQUIRED: Start timestamp (unix seconds)
- `interval` (string, required): REQUIRED: Candle interval
- `poolId` (string, required): The pool contract address or ID
- `to` (number, required): REQUIRED: End timestamp (unix seconds)

### `sodax_get_intent` (~73 tokens)

Look up a specific intent by its intent hash (different from transaction hash)

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `intentHash` (string, required): The intent hash to look up (66 character hex string starting with 0x)

### `sodax_get_solver_intent` (~89 tokens)

Get solver-side details for an intent including fill history. Use includeAll to see all solver documents.

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `includeAll` (boolean): Include all intent documents (history) instead of just the latest
- `intentHash` (string, required): The intent hash to look up

### `sodax_get_money_market_asset` (~64 tokens)

Get detailed information for a specific money market asset by its reserve address

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `reserveAddress` (string, required): The reserve contract address of the asset

### `sodax_get_asset_borrowers` (~95 tokens)

Get borrowers for a specific money market asset by its reserve address

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `limit` (number): Maximum number of borrowers to return (1-100)
- `offset` (number): Number of borrowers to skip for pagination
- `reserveAddress` (string, required): The reserve contract address of the asset

### `sodax_get_asset_suppliers` (~98 tokens)

Get suppliers (lenders) for a specific money market asset by its reserve address

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `limit` (number): Maximum number of suppliers to return (1-100)
- `offset` (number): Number of suppliers to skip for pagination
- `reserveAddress` (string, required): The reserve contract address of the asset

### `sodax_get_all_borrowers` (~78 tokens)

Get all borrowers across all money market assets with pagination

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `limit` (number): Maximum number of borrowers to return (1-100)
- `offset` (number): Number of borrowers to skip for pagination

### `sodax_get_partner_summary` (~72 tokens)

Get volume and activity summary for a specific integration partner by their receiver address

Input parameters:

- `chainId` (string): Filter by chain ID
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `receiver` (string, required): The partner receiver address

### `sodax_get_total_supply` (~45 tokens)

Get SODA token total supply as a plain number

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_get_circulating_supply` (~48 tokens)

Get SODA token circulating supply as a plain number

Input parameters:

- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text

### `sodax_refresh_cache` (~39 tokens)

Clear both the backend API cache and the solver oracle cache to force fresh fetches on next requests. Reports the number of entries cleared per cache.

### `sodax_get_solver_oracle` (~268 tokens)

Get the solver's oracle USD prices per (chain, token). For quoting with sodax_get_solver_quote, filter chainId='146': chainId-146 addresses pass the quote service's compatibility check, while spoke-chain (non-146) addresses are rejected with 'not compatible with the quote service'. Caveat: passing that check (being listed/priced) does NOT guarantee a swap route — canonical bridged *_ASSET hub tokens and major stablecoins route most reliably, while many wrapped/derivative/money-market entries (e.g. WBTC, waLocBTC, SONIC_SODA_ASSET) are priced but frequently return 'No path was found', and routability is pair/amount/liquidity-dependent. Also useful for sanity-checking quote amounts against the USD prices the solver uses.

Input parameters:

- `chainId` (string): Filter results to a single intent-relay chain ID (decimal string, e.g. '146' for Sonic). Call sodax_get_relay_chain_id_map to translate.
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `symbol` (string): Filter by token symbol (case-insensitive exact match, e.g. 'SODA', 'bnUSD')

### `sodax_get_solver_quote` (~686 tokens)

Get a swap quote from the SODAX solver. tokenSrc/tokenDst MUST be hub-chain (Sonic, chainId 146) asset addresses — look them up with sodax_get_solver_oracle (chainId='146'). Working example: tokenSrc='0xeb0393893b5bf98a50073d6740738b08e575058b' (BTC_BTC_ASSET) → tokenDst='0xaeafa26e43f46cd83efe89b1e57c858eb5685a24' (ETH_ASSET), amount='99800', quoteType='exact_input' returns a quoted_amount. exact_input quotes the destination amount you'd receive; exact_output quotes the source amount you'd need. There are two distinct HTTP-400 failures, both naming the two addresses: (1) 'not compatible with the quote service' = an address isn't a recognized hub asset (a spoke-chain or otherwise non-chainId-146 address was passed) → use a chainId-146 address from sodax_get_solver_oracle, and for a reliable pick prefer a canonical bridged *_ASSET hub token or major stablecoin (chainId 146 alone doesn't guarantee a route). (2) 'No path was found between X and Y' = both tokens are valid hub assets but the solver couldn't route this pair for this amount → routing is pair/amount/liquidity-dependent, so retry with a smaller amount or a more liquid counterparty (a canonical bridged *_ASSET token, or a major stablecoin like SONIC_USDC_ASSET). Many wrapped/derivative entries (e.g. WBTC, waLocBTC, SONIC_SODA_ASSET) are oracle-priced but frequently have no route — prefer canonical bridged *_ASSET hub tokens.

Input parameters:

- `amount` (string, required): REQUIRED: Amount in the smallest unit of the input token (for exact_input) or output token (for exact_output). String to preserve precision. Note: a very large amount can exceed available liquidity a…
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `quoteType` (string): 'exact_input' (default): given input amount, quote output amount. 'exact_output': given output amount, quote input amount required.
- `tokenDst` (string, required): REQUIRED: Destination token address (the token you want to receive). Hub-chain (Sonic, chainId 146) asset address from sodax_get_solver_oracle (e.g. ETH_ASSET 0xaeafa26e43f46cd83efe89b1e57c858eb5685a…
- `tokenSrc` (string, required): REQUIRED: Source token address (the token you're spending). Hub-chain (Sonic, chainId 146) asset address from sodax_get_solver_oracle. Prefer canonical bridged *_ASSET tokens (e.g. BTC_BTC_ASSET 0xeb…

### `sodax_relay_submit_tx` (~196 tokens)

Submit a confirmed spoke-chain transaction to the SODAX intent relay so it can be delivered to the destination chain. The tx must already be finalized on the source chain. Re-submitting the same tx is a no-op. For split-tx chains (Solana, Bitcoin) supply the optional `data` argument.

Input parameters:

- `chainId` (string, required): REQUIRED: Intent-relay chain ID of the source chain (decimal string, e.g. '146' for Sonic, '2' for Ethereum). Call sodax_get_relay_chain_id_map to translate from a chain key.
- `data` (object): Required only for split-tx chains (Solana, Bitcoin). Omit for EVM chains.
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `txHash` (string, required): REQUIRED: The confirmed transaction hash on the source chain

### `sodax_relay_get_transaction_packets` (~137 tokens)

List every cross-chain packet emitted by a given source transaction. Use this to track relay status — a packet is complete when status='executed' and dst_tx_hash is populated.

Input parameters:

- `chainId` (string, required): REQUIRED: Intent-relay chain ID of the source chain (decimal string, e.g. '146'). Call sodax_get_relay_chain_id_map to translate from a chain key.
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `txHash` (string, required): REQUIRED: The source-chain transaction hash whose packets you want to inspect

### `sodax_relay_get_packet` (~154 tokens)

Fetch a single relay packet by its connection serial number (conn_sn). Returns the packet data on success or a `{success:false, message}` shape if the packet isn't found.

Input parameters:

- `chainId` (string, required): REQUIRED: Intent-relay chain ID of the source chain (decimal string)
- `connSn` (string): REQUIRED: Connection serial number identifying the packet within the tx. Accepts string or number (numeric values are coerced — convenient for piping back a previously-fetched packet's `conn_sn` fiel…
- `format` (string): Response format: 'json' for raw data or 'markdown' for formatted text
- `txHash` (string, required): REQUIRED: The source-chain transaction hash

### `docs_health` (~22 tokens)

Check SDK documentation availability. Call this first if docs tools seem unavailable.

### `docs_refresh` (~26 tokens)

Reconnect to SDK documentation and refresh available tools. Use if docs seem stale or unavailable.

### `docs_list_tools` (~23 tokens)

List all SDK documentation tools with parameters. Essential for discovering what's available.

### `docs_searchDocumentation` (~79 tokens)

[SDK Docs] Search across the documentation to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about Docs, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages.

Input parameters:

- `query` (string, required)

### `docs_getPage` (~113 tokens)

[SDK Docs] Fetch the full markdown content of a specific documentation page from Docs. Use this when you have a page URL and want to read its content. Accepts full URLs (e.g. https://docs.sodax.com//getting-started). Since `searchDocumentation` returns partial content, use `getPage` to retrieve the complete page when you need more details. The content includes links you can follow to navigate to related pages.

Input parameters:

- `url` (string, required): The URL of the page to fetch

### `docs_sendFeedback` (~328 tokens)

[SDK Docs] Report an issue in the documentation of Docs so the team can fix it. Use it whenever, while helping a user, you come across content that is outdated, contradictory, missing information, or otherwise unhelpful. Also use it when the user themselves reports a problem with the docs, even if you could not verify it yourself. If it's your own observation, do a quick sanity check that the issue is real before reporting — no need to exhaustively re-read the page. Send one call per distinct issue and do not report the same issue twice in a conversation. Do not use this tool to confirm that a page is accurate; it is for reporting problems only.

Input parameters:

- `content` (string, required): Explain the issue in full, as if writing to a documentation maintainer who never saw this conversation. Describe what is wrong, where on the page it appears (quote the exact sentence or section title…
- `goal` (string): The broader end goal you were ultimately trying to accomplish (as/on behalf of the user) when you hit this issue. Gives the team the context you were working towards. Optional.
- `pageUrl` (string, required): The full URL of the page the issue is about (e.g. https://docs.sodax.com//getting-started), so the finding is linked to the exact page.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/gosodax-builders-mcp/builders#diagnostics

## Score history

- 2026-08-03: 74
- 2026-08-02: 74
- 2026-08-01: 73
- 2026-07-31: 73
- 2026-07-30: 69
- 2026-07-29: 69
- 2026-07-28: 68
- 2026-07-27: 67
- 2026-07-26: 67

## Links

- Remote endpoint: https://builders.sodax.com/mcp
- Repository: https://github.com/gosodax/builders-sodax-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/gosodax-builders-mcp/builders/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/gosodax-builders-mcp/builders/changelog.json
- HTML version of this page: https://verifymcp.io/servers/gosodax-builders-mcp/builders
