The remote MCP server for ADEXTO bonding-curve token markets on 0G, Base, Arbitrum One, Monad, Robinhood Chain and Arc, plus a TypeScript kit that signs its transactions with your own key.
- Endpoint:
https://adexto.xyz/api/mcp. Streamable HTTP, no account, no API key. - 14 tools: list and price markets, read trade history, buy with USDC on Base over x402, read and open stakes, and launch, stake and claim with your own key. Full reference: TOOLS.md.
- No custody: the server never holds your key. Launch, stake and claim tools return unsigned transactions.
- Registry:
xyz.adexto/mcpin the official MCP Registry.
Claude Code
claude mcp add --transport http adexto https://adexto.xyz/api/mcpCursor (~/.cursor/mcp.json)
{ "mcpServers": { "adexto": { "url": "https://adexto.xyz/api/mcp" } } }VS Code (.vscode/mcp.json)
{ "servers": { "adexto": { "type": "http", "url": "https://adexto.xyz/api/mcp" } } }Cline (see llms-install.md)
{ "mcpServers": { "adexto": { "type": "streamableHttp", "url": "https://adexto.xyz/api/mcp" } } }Any client, or plain HTTP
curl -s https://adexto.xyz/api/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_markets","arguments":{}}}'The server is stateless. A client may call tools/list and tools/call directly, without an initialize round
trip.
| Tool | What it does | Cost |
|---|---|---|
list_markets |
Every market on every chain, with ticker, chain, curve and price | free |
get_market |
One market in detail: fees, supply, creator, ERC-8004 agent, how to stake it | free |
quote_buy |
The x402 quote for a buy, without paying | free |
how_to_pay |
The steps from a 402 challenge to a settled buy | free |
buy_token |
Buy a market with USDC on Base; delivered on the market's own chain | 0.10 USDC per buy today |
pay_and_buy |
Operator-signed, capped demo purchase (needs an operator key header) | operator only |
trade_history |
Every swap on a market, and whether the answer reaches the launch block | free |
check_stake |
A wallet's stake in a market, read from the stake contract | free |
access_message |
The message to sign before ask_agent |
free |
ask_agent |
Ask the market's agent, for an address with an active stake | free |
prepare_launch |
Unsigned launch transaction for your key, after a signed attestation | free; you pay gas to send it |
register_launch |
List a mined launch on ADEXTO | free |
prepare_stake |
Unsigned approval and stake transactions | free; you pay gas to send them |
prepare_claim |
Unsigned creator-fee claims | free; you pay gas to send them |
Every tool declares an output schema and returns structuredContent alongside the JSON text. A refusal such as
unknown_market or below_minimum is an ordinary answer with an error code, and nothing is spent when a tool
refuses.
buy_token first answers with an HTTP 402 challenge. Sign the EIP-3009 TransferWithAuthorization described in
accepts[0] (USDC on Base, exact amount, ADEXTO's payee), base64-encode the x402 payload, and call buy_token
again with it as xPayment. The curve on the market's own chain then sends the tokens to your address. You need
USDC on Base and nothing else: no gas on Base, no gas on the destination chain, no bridge.
Delivery runs before the charge, so a failed fill is not charged. The same gateway is also reachable as plain
HTTP at https://x402.adexto.xyz (OpenAPI), where x402 v2 clients such
as @x402/fetch work as they are: every 402 also carries a PAYMENT-REQUIRED header, and the payment can come
back in PAYMENT-SIGNATURE. Each market is listed on
x402scan.
An LLM cannot sign, so the transaction tools stop at an unsigned transaction. The agent kit in this repository finishes the job locally:
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { monad } from "viem/chains";
import { claim, createAdextoClient, launch, stake } from "@adexto/agent-kit";
const adexto = createAdextoClient();
const wallet = createWalletClient({ account: privateKeyToAccount(KEY), chain: monad, transport: http() });
await launch({ client: adexto, wallet, name: "My Market", symbol: "MYMKT" });
await stake({ client: adexto, wallet, symbol: "MYMKT", amount: "10000" });
await claim({ client: adexto, wallet });Before your key signs anything, the kit decodes each transaction and refuses one that does not match the request: an unknown factory or stake contract, another sender, a non-zero value, an approval for anything but the exact stake amount, or a 402 challenge above your spending cap or for another payee. See agent-kit/README.md.
The kit is not on npm yet. To use it now, clone this repository, run npm ci && npm run build in agent-kit/,
then npm install /path/to/adexto-mcp/agent-kit in your project.
| Path | What |
|---|---|
TOOLS.md |
Tool reference, generated from the live server by scripts/sync-tools.mjs |
llms-install.md |
Setup instructions for Cline and other agents |
agent-kit/ |
@adexto/agent-kit: typed client, x402 signer, launch, stake, claim and buy helpers |
assets/ |
Logo, 400×400 and 512×512 PNG |
The server itself runs inside the ADEXTO app, because it reads the app's market registry and calls its launch
stage directly. Its source is
src/app/api/[transport]/route.ts
in 0xcuy/adexto.
Report vulnerabilities privately as described in the main repository's
security policy. The MCP server, including
pay_and_buy, is in its scope. Please do not open a public issue for a vulnerability.
Business Source License 1.1 (LICENSE), the same license as the ADEXTO app, contracts and server source in 0xcuy/adexto. You may use the documentation and the agent kit in production to build agents, apps and integrations on ADEXTO. You may not use them to run a competing token launchpad, bonding curve platform, or token launch or trading service for AI agents. On 2030-09-29 they become MIT.
The ADEXTO name and logo are not licensed by this repository. Use them only to refer to ADEXTO.
