Koskamo

Aether MCP

Aether provides an MCP server for Base blockchain data, offering tools for token risk assessment, balance checks, portfolio valuation, transaction lookups, and contract analysis. It utilizes x402 for pay-per-call payments in USDC, enabling agents to perform on-chain due diligence and data retrieval.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Aether MCP logo, by AetherCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Aether
MCP endpoint (Streamable HTTP)
https://aether-x402.vercel.app/mcp
Vendor documentation

What its tools do

23 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

23 of 23 have a description · 23 of 23 declare behavior hints · 3 of 22 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Simulate token buy/sell to check for honeypots or scams
  • Retrieve wallet ETH and ERC-20 token balances on Base
  • Lookup Basenames and resolve them to wallet addresses
  • Check ERC-20 allowances before executing swaps

Source and maintenance

Community listingRegistry 4.0.0

Protocol and capabilities

Server
aether 4.0.0
MCP protocol negotiated in check
2025-11-25
Tools
23 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Tools

23 advertised

base_token_risk_trial
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

FREE trial, no wallet or payment needed: is this Base token safe to buy, or a honeypot, rug pull or scam? The same verdict as base_token_risk (real buy and sell simulation, tax, mint, blacklist and pause powers, owner, liquidity), limited to 3 calls per caller per day. Input: token address. After the trial, use base_token_risk ($0.01 via x402)

base_token_risk_trial input schema
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Base ERC-20 contract address"
    },
    "simulate": {
      "type": "boolean",
      "description": "Run the buy/sell simulation (default true)"
    }
  },
  "additionalProperties": false
}
base_token_risk_trial annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_token_risk
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Is this Base token safe to buy, or a honeypot, rug pull or scam? Simulates a real buy and sell to prove the token can be sold and to measure buy and sell tax, then checks mint, blacklist, pause and fee powers, proxy upgradeability, owner and DEX liquidity. Input: token address. Returns a verdict (low, caution, high, avoid), a 0-100 risk score and the evidence. Check before an agent trades a token. Try it free first: 3 calls a day at POST /v1/base/token/risk/trial. Price: $0.01 USDC on Base via x402.

base_token_risk input schema
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Base ERC-20 contract address"
    },
    "simulate": {
      "type": "boolean",
      "description": "Run the buy/sell simulation (default true)"
    }
  },
  "additionalProperties": false
}
base_token_risk annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_balance
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Wallet balance on Base: the native ETH balance of any address, read live from the chain. Input: address. Price: $0.001 USDC on Base via x402.

base_balance input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_balance annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_erc20_balance
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

ERC-20 token balance of a wallet on Base (USDC or any other token), formatted with symbol and decimals. Input: wallet address and token address. Price: $0.002 USDC on Base via x402.

base_erc20_balance input schema
{
  "type": "object",
  "required": [
    "address",
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_erc20_balance annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_portfolio
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Wallet portfolio value on Base: ETH plus major tokens (or up to 20 tokens you choose), each holding priced in USD from live DEX prices, with the total. Input: wallet address. Price: $0.004 USDC on Base via x402.

base_portfolio input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "tokens": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^0x[0-9a-fA-F]{40}$"
      },
      "maxItems": 20
    },
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_portfolio annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_allowance
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

ERC-20 allowance check on Base: how much a spender is still approved to move from an owner's token balance, and whether the approval is unlimited. Run before a swap, an approve or a revoke. Input: token, owner, spender. Price: $0.002 USDC on Base via x402.

base_allowance input schema
{
  "type": "object",
  "required": [
    "token",
    "owner",
    "spender"
  ],
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "spender": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_allowance annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_basename
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Basename lookup: resolve a Base name such as jesse.base.eth to its wallet address, with avatar and profile text records. Input: name. Price: $0.01 USDC on Base via x402.

base_basename input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 3
    }
  },
  "additionalProperties": false
}
base_basename annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_tx
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Base transaction lookup by hash: sender, recipient, value, function selector, block, and whether it succeeded or reverted. Price: $0.01 USDC on Base via x402.

base_tx input schema
{
  "type": "object",
  "required": [
    "hash"
  ],
  "properties": {
    "hash": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{64}$"
    }
  },
  "additionalProperties": false
}
base_tx annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_receipt
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Base transaction receipt by hash: success or reverted, gas used, and the decoded ERC-20 Transfer events showing which tokens moved between which addresses. Price: $0.003 USDC on Base via x402.

base_receipt input schema
{
  "type": "object",
  "required": [
    "hash"
  ],
  "properties": {
    "hash": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{64}$"
    }
  },
  "additionalProperties": false
}
base_receipt annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_contract
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

What is this Base address? Wallet (EOA) or smart contract, code size, proxy implementation address, and whether it is an ERC-20, ERC-721 or ERC-1155 token. Price: $0.01 USDC on Base via x402.

base_contract input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_contract annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_gas
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Current gas price on Base in gwei: base fee, suggested priority fee and max fee per gas, read live from the chain. Price: $0.01 USDC on Base via x402.

base_gas input schema
{
  "type": "object",
  "required": [],
  "properties": {},
  "additionalProperties": false
}
base_gas annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_block
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Base block lookup by number or tag (latest, safe, finalized): timestamp, gas and transaction count. Price: $0.01 USDC on Base via x402.

base_block input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "block": {
      "type": [
        "string",
        "integer"
      ]
    }
  },
  "additionalProperties": false
}
base_block annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_token
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Token info for any ERC-20 on Base by contract address: name, symbol, decimals and total supply. Price: $0.01 USDC on Base via x402.

base_token input schema
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_token annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_price
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Token price on Base by contract address: live USD price and pool liquidity from Uniswap v2/v3 and Aerodrome. Works for any token with a DEX pool, including newly launched ones. Price: $0.003 USDC on Base via x402.

base_price input schema
{
  "type": "object",
  "required": [
    "token"
  ],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_price annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_transfers
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Recent ERC-20 transfers on Base for a token, a wallet, or both: who sent how much to whom, across up to 2,000 recent blocks (100 results max). Price: $0.01 USDC on Base via x402.

base_transfers input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "token": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "blocks": {
      "type": "integer",
      "maximum": 2000,
      "minimum": 1
    },
    "address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_transfers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_nft_owner
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Who owns this NFT? Current owner of an ERC-721 token on Base by contract address and token id (ownerOf). Price: $0.01 USDC on Base via x402.

base_nft_owner input schema
{
  "type": "object",
  "required": [
    "contract",
    "tokenId"
  ],
  "properties": {
    "tokenId": {
      "type": [
        "string",
        "integer"
      ],
      "pattern": "^[0-9]+$"
    },
    "contract": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_nft_owner annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_nft_metadata
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

NFT metadata on Base for an ERC-721 or ERC-1155 token: token URI plus the name, image and attributes it points to, resolved from IPFS, Arweave, data URIs or https. Price: $0.005 USDC on Base via x402.

base_nft_metadata input schema
{
  "type": "object",
  "required": [
    "contract",
    "tokenId"
  ],
  "properties": {
    "tokenId": {
      "type": [
        "string",
        "integer"
      ],
      "pattern": "^[0-9]+$"
    },
    "contract": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    }
  },
  "additionalProperties": false
}
base_nft_metadata annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_call
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Simulate a read-only contract call on Base (eth_call) without sending a transaction: returns the raw result or the revert reason. Use it to dry-run a call before signing. Price: $0.01 USDC on Base via x402.

base_call input schema
{
  "type": "object",
  "required": [
    "to",
    "data"
  ],
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "data": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]*$",
      "maxLength": 20000
    },
    "from": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "value": {
      "type": [
        "string",
        "integer"
      ],
      "pattern": "^[0-9]+$"
    }
  },
  "additionalProperties": false
}
base_call annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
base_estimate_gas
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Estimate the gas and the cost in ETH and USD of a Base transaction before signing it. Input: to, and optionally from, data and value. Price: $0.002 USDC on Base via x402.

base_estimate_gas input schema
{
  "type": "object",
  "required": [
    "to",
    "from"
  ],
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "data": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]*$",
      "maxLength": 20000
    },
    "from": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$"
    },
    "value": {
      "type": [
        "string",
        "integer"
      ],
      "pattern": "^[0-9]+$"
    }
  },
  "additionalProperties": false
}
base_estimate_gas annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
audit_x402_payability
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

x402 endpoint audit: can a paying agent actually pay this API? Probes any x402 URL and validates its 402 payment requirements (CAIP-2 network, USDC asset, payTo checksum, amount, EIP-712 domain, resource URL, Bazaar discovery). Returns pass, warn or fail, a 0-100 score and a fix for every failure. Price: $0.01 USDC on Base via x402.

audit_x402_payability input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2048,
      "minLength": 1,
      "description": "Public https URL of the paid x402 endpoint to audit"
    },
    "body": {
      "description": "Example JSON body the endpoint accepts"
    },
    "expect": {
      "type": "object",
      "properties": {
        "asset": {
          "type": "string",
          "pattern": "^0x[0-9a-fA-F]{40}$"
        },
        "network": {
          "type": "string",
          "description": "CAIP-2 network, e.g. eip155:8453"
        },
        "maxPriceUsd": {
          "type": "number",
          "exclusiveMinimum": 0
        }
      },
      "description": "What the paying caller needs: fails the audit if the endpoint cannot be paid this way",
      "additionalProperties": false
    },
    "method": {
      "enum": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "description": "Defaults to POST when body is supplied, otherwise GET"
    },
    "headers": {
      "type": "object",
      "description": "Non-credential headers the endpoint needs before its paywall (e.g. Idempotency-Key)",
      "maxProperties": 10,
      "additionalProperties": {
        "type": "string",
        "maxLength": 512
      }
    }
  },
  "additionalProperties": false
}
audit_x402_payability annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
score_opportunity
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

How strong is this startup or deal on paper? Scores an opportunity across seven pillars weighted by stage (pre-seed to series B+), applies red flags, and returns a 0 to 10 score with pass, investigate or fail. Deterministic: the same input always gives the same score. A screening aid, not investment advice. Price: $0.01 USDC on Base via x402.

score_opportunity input schema
{
  "type": "object",
  "required": [
    "opportunityName"
  ],
  "properties": {
    "stage": {
      "enum": [
        "pre-seed",
        "seed",
        "series-a",
        "series-b-plus"
      ]
    },
    "pillars": {
      "type": "array",
      "maxItems": 7
    },
    "redFlagIndices": {
      "type": "array",
      "items": {
        "type": "integer",
        "maximum": 15,
        "minimum": 1
      }
    },
    "opportunityName": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1
    }
  },
  "additionalProperties": false
}
score_opportunity annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
triage_invoice
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Which overdue invoice should be chased, and what is the next step? Send an invoice number, client reference, amount and days overdue; get its aging category and the next action to take. Deterministic rules, no AI: the same input always gives the same answer. Price: $0.01 USDC on Base via x402.

triage_invoice input schema
{
  "type": "object",
  "required": [
    "invoiceNumber",
    "clientReference",
    "amount",
    "daysOverdue"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "maximum": 100000000,
      "minimum": 0
    },
    "daysOverdue": {
      "type": "integer",
      "maximum": 3650,
      "minimum": -365
    },
    "invoiceNumber": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "clientReference": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    }
  },
  "additionalProperties": false
}
triage_invoice annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
audit_evidence
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Does this write-up back up what it claims? Send up to 40,000 characters of text; get the claims that cite no evidence, contradictions, missing evidence and documentation gaps, with fixes. Deterministic rules, no AI. Rejects text containing secrets. A documentation review, not legal or financial advice. Price: $0.01 USDC on Base via x402.

audit_evidence input schema
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 40000,
      "minLength": 1
    },
    "request": {
      "type": "string",
      "maxLength": 500
    }
  },
  "additionalProperties": false
}
audit_evidence annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (3 of 3 answered).

  1. 2026-11-06: 1 of 1 checks answered
  2. 2026-11-07: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
570 ms
95th percentile latency
570 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 570 ms · metadata changed · 23 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http aether-mcp-vercel https://aether-x402.vercel.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add aether-mcp-vercel --url https://aether-x402.vercel.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable aether-mcp-vercel in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "aether-mcp-vercel": {
      "url": "https://aether-x402.vercel.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "aether-mcp-vercel": {
      "type": "streamableHttp",
      "url": "https://aether-x402.vercel.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start aether-mcp-vercel and inspect its tools.
VS Code configuration
{
  "servers": {
    "aether-mcp-vercel": {
      "type": "http",
      "url": "https://aether-x402.vercel.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http aether-mcp-vercel https://aether-x402.vercel.app/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://aether-x402.vercel.app/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "aether-mcp-vercel": {
      "serverUrl": "https://aether-x402.vercel.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Aether MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.