# SODAX Builders MCP

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

- name: io.github.gosodax/builders-mcp
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 82/100
- quality: 80/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.gosodax%2Fbuilders-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.gosodax%2Fbuilders-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

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


## Trust

- hygiene: 100
- liveness: 98
- freshness: 45
- provenance: 80
- drivers: +repository +namespace-matches-repo +reachable +uptime-95% -stale-211d
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 80/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 37 of 37 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 1 of 37 tools declare all four hints; missing: sodax_get_money_market_assets (idempotentHint); sodax_get_swap_tokens (idempotentHint); sodax_get_user_transactions (idempotentHint); …
- pass `tools.token_cost`: about 6,883 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 74 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 37, about 6,883 tokens to load them all
- tool set hash: 09dad95ea63f8e85e78d38fa357ef31a
- tools last changed: 2026-10-12T23:57:37.391Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.gosodax/builders-mcp.svg)](https://protogrid.dev/servers/io.github.gosodax/builders-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-12 `docs_list_tools` added
  - List all SDK documentation tools with parameters. Essential for discovering what's available.
- 2026-10-12 `docs_refresh` added
  - Reconnect to SDK documentation and refresh available tools. Use if docs seem stale or unavailable.
- 2026-10-12 `docs_health` added
  - Check SDK documentation availability. Call this first if docs tools seem unavailable.
- 2026-10-12 `sodax_relay_get_packet` added
  - 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.
- 2026-10-12 `sodax_relay_get_transaction_packets` added
  - 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.
- 2026-10-12 `sodax_relay_submit_tx` added
  - 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.
- 2026-10-12 `sodax_get_solver_quote` added
  - 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.
- 2026-10-12 `sodax_get_solver_oracle` added
  - 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.
- 2026-10-12 `sodax_refresh_cache` added
  - 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.
- 2026-10-12 `sodax_get_circulating_supply` added
  - Get SODA token circulating supply as a plain number

Full history: https://api.protogrid.dev/v1/servers/io.github.gosodax%2Fbuilders-mcp/changes

## Remotes

- https://builders.sodax.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.94545454)

## Packages

_none_

## Tools (37)

- `docs_health`: Check SDK documentation availability. Call this first if docs tools seem unavailable.
- `docs_list_tools`: List all SDK documentation tools with parameters. Essential for discovering what's available.
- `docs_refresh`: Reconnect to SDK documentation and refresh available tools. Use if docs seem stale or unavailable.
- `sodax_get_all_borrowers`: Get all borrowers across all money market assets with pagination
- `sodax_get_all_chains_configs`: Get detailed configuration for all spoke chains including contract addresses, RPCs, and token configs
- `sodax_get_all_config`: Get full SODAX configuration including all supported chains, swap tokens, and protocol settings in one call
- `sodax_get_amm_pool_candles`: Get OHLCV candlestick chart data for an AMM pool
- `sodax_get_amm_positions`: Get AMM liquidity provider NFT positions, optionally filtered by owner address
- `sodax_get_asset_borrowers`: Get borrowers for a specific money market asset by its reserve address
- `sodax_get_asset_suppliers`: Get suppliers (lenders) for a specific money market asset by its reserve address
- `sodax_get_circulating_supply`: Get SODA token circulating supply as a plain number
- `sodax_get_hub_assets`: Get assets representing spoke tokens on the hub (Sonic) chain, optionally filtered by source chain
- `sodax_get_intent`: Look up a specific intent by its intent hash (different from transaction hash)
- `sodax_get_money_market_asset`: Get detailed information for a specific money market asset by its reserve address
- `sodax_get_money_market_assets`: List all assets available for lending and borrowing in the SODAX money market
- `sodax_get_money_market_reserve_assets`: Get money market reserve assets used as collateral backing
- `sodax_get_money_market_tokens`: Get tokens supported for money market lending/borrowing, optionally filtered by chain
- `sodax_get_orderbook`: Get current orderbook entries showing pending/open intents
- `sodax_get_partners`: List all SODAX integration partners including wallets, DEXs, and other protocols
- `sodax_get_partner_summary`: Get volume and activity summary for a specific integration partner by their receiver address
- `sodax_get_relay_chain_id_map`: Get mapping between chain IDs and intent relay chain IDs used by the SODAX relay network
- `sodax_get_solver_intent`: Get solver-side details for an intent including fill history. Use includeAll to see all solver documents.
- `sodax_get_solver_oracle`: 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.
- `sodax_get_solver_quote`: 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.
- `sodax_get_supported_chains`: List all blockchain networks supported by SODAX for cross-chain swaps and DeFi operations
- `sodax_get_swap_tokens`: Get available tokens for swapping on SODAX, optionally filtered by chain
- `sodax_get_token_supply`: Get SODA token supply information including total, circulating, and burned amounts
- `sodax_get_total_supply`: Get SODA token total supply as a plain number
- `sodax_get_transaction`: Look up a specific transaction by its hash to see status, amounts, and details
- `sodax_get_user_position`: Get a user's lending and borrowing position in the money market
- `sodax_get_user_transactions`: Get intent/transaction history for a specific wallet address
- `sodax_get_volume`: 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).
- `sodax_get_volume_stats`: Get aggregate solver volume stats: the approximate total number of filled-intent records (fill documents, not distinct intents). Cached ~60s upstream.
- `sodax_refresh_cache`: 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_relay_get_packet`: 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.
- `sodax_relay_get_transaction_packets`: 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.
- `sodax_relay_submit_tx`: 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.
