# ADEXTO (remote · adexto.xyz)

Launch, buy, stake and claim on bonding-curve token markets across five chains, with your own key.

- Trust score: 67/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-07

## Components

- remote · `adexto.xyz`: 67/100 (this document), [markdown](https://verifymcp.io/servers/xyz-adexto-mcp/api-mcp.md), [page](https://verifymcp.io/servers/xyz-adexto-mcp/api-mcp)

## Channel facts

- Endpoint: `https://adexto.xyz/api/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-10-07.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (buy_token).
  - 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 (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3035 tokens (~216/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 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).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 92/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 2 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "how_to_pay" implies "pay" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the ADEXTO MCP server?

ADEXTO is a hosted endpoint at https://adexto.xyz/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http xyz-adexto-mcp 'https://adexto.xyz/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "xyz-adexto-mcp": {
      "url": "https://adexto.xyz/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "xyz-adexto-mcp": {
      "type": "http",
      "url": "https://adexto.xyz/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.xyz-adexto-mcp]
url = "https://adexto.xyz/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "xyz-adexto-mcp": {
      "type": "remote",
      "url": "https://adexto.xyz/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add xyz-adexto-mcp --url 'https://adexto.xyz/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  xyz-adexto-mcp:
    url: "https://adexto.xyz/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "xyz-adexto-mcp": {
      "Transport": "http",
      "Url": "https://adexto.xyz/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add xyz-adexto-mcp -t streamable-http -u 'https://adexto.xyz/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "xyz-adexto-mcp": {
      "type": "http",
      "url": "https://adexto.xyz/api/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-10-06 (score 67, +1)

- [security] Tool “prepare_launch” rewrote its description, which is the text the model reads
- [security] Tool “trade_history” rewrote its description, which is the text the model reads
- [cosmetic] “prepare_launch” reworded the description of “chainId”

### 2026-10-05 (score 66, +2)

- [security improvement] HSTS header: fail → pass

### 2026-10-04 (score 64, +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-10-03 (score 63, +1)

- [functional improvement] Tool coverage: 94% → 100%
- [functional improvement] Stability: unverified → 0.03
- [functional improvement] Tool “access_message” now declares an output schema
- [functional improvement] Tool “ask_agent” now declares an output schema
- [functional improvement] Tool “buy_token” now declares an output schema
- [functional improvement] Tool “check_stake” now declares an output schema
- [functional improvement] Tool “get_market” now declares an output schema
- [functional improvement] Tool “how_to_pay” now declares an output schema
- [functional improvement] Tool “list_markets” now declares an output schema
- [functional improvement] Tool “pay_and_buy” now declares an output schema
- [functional improvement] Tool “prepare_claim” now declares an output schema
- [functional improvement] Tool “prepare_launch” now declares an output schema
- [functional improvement] Tool “prepare_stake” now declares an output schema
- [functional improvement] Tool “quote_buy” now declares an output schema
- [functional improvement] Tool “register_launch” now declares an output schema
- [functional improvement] Tool “trade_history” now declares an output schema
- [functional] First check of Tool coverage: 100
- [cosmetic] “prepare_launch” reworded the description of “docs”
- [cosmetic] “prepare_launch” reworded the description of “github”
- [cosmetic] “prepare_launch” reworded the description of “website”

### 2026-10-02 (score 62)

First indexed and scored.

## MCP tools (14)

### `list_markets` (~58 tokens)

List every tradable ADEXTO market

Every bonding-curve market this gateway can sell, across all chains it serves, with its ticker, chain, curve address and whether it is currently tradable. Free. Start here: the buy tools require a ticker and deliberately have no default.

Output parameters:

- `count` (number|null): Number of markets.
- `markets` (array): Every market served, on every chain.
- `note` (string|null): How delivery works and what agentIdentity means.

### `get_market` (~150 tokens)

One market in detail

Full detail for a single market: chain, curve address, supply, fee rates, current price in the chain's native asset, and which read path serves its trade history. Free.

Input parameters:

- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…

Output parameters:

- `agentIdentity`: The ERC-8004 agent the token is bound to, or null when unbound.
- `buyResource` (string|null): x402 URL that sells this market.
- `chain` (string|null): Chain name and id.
- `chainId` (number|null): Chain id of the market.
- `creator` (string|null): Creator address, paid the creator fee.
- `curve` (string|null): Bonding curve contract.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `historySource` (string|null): indexer, market-index or rpc-logs: which read path serves trade_history.
- `known` (array): On unknown_market: the tickers that do exist.
- `launchBlock` (number|null): Launch block.
- `launchTx` (string|null): Launch transaction.
- `lpFeeBps` (number|null): Fee kept in the curve, in basis points.
- `name` (string|null): Token name.
- `nativeSymbol` (string|null): Native asset of the chain.
- `priceNative` (number|null): Price of one token in the native asset.
- `slug` (string|null): URL slug of the market.
- `staking`: How to stake this market, or null when its chain has no stake contract.
- `supply` (number|null): Total supply in whole tokens.
- `symbol` (string|null): Ticker.
- `token` (string|null): Token contract.
- `tradable` (boolean|null): Whether the curve is live.
- `treasuryBuybackBps` (number|null): Buyback-and-burn fee, in basis points.

### `quote_buy` (~207 tokens)

Quote a cross-chain buy without paying

Reads the gateway's HTTP 402 challenge for a market and returns the quote and payment requirements without spending anything. The challenge carries the exact amount, the asset, the payTo address and the EIP-3009 domain, so an agent can decide before it signs. Free. This is the tool to call before buy_token.

Input parameters:

- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…
- `to` (string): Recipient address for the tokens. Optional for a quote; the curve delivers straight to it on a real buy.

Output parameters:

- `challenge`: The gateway's answer: on 402, x402Version, accepts[0] with the payment terms, and quote.
- `httpStatus` (number|null): Status the gateway answered: 402 is a quote.
- `next` (string|null): What to do next.
- `quoted` (boolean|null): True when the gateway returned a 402 quote.
- `resource` (string|null): Gateway URL that was quoted.

### `how_to_pay` (~55 tokens)

How to pay this gateway

The exact steps to turn a 402 challenge into a settled cross-chain buy: what to sign, which chain settles, and which header carries the payment. Free. Read this if you have never paid an x402 endpoint before.

Output parameters:

- `header` (string|null): Header that carries the payment.
- `headerNote` (string|null): Which payment header names the gateway reads.
- `orderOfOperations` (string|null): Delivery runs before the charge.
- `protocol` (string|null): Payment protocol.
- `replayProtection` (string|null): Why one authorization cannot be spent twice.
- `scheme` (string|null): x402 scheme and transfer method.
- `settlementAsset` (string|null): Asset paid.
- `settlementChain` (string|null): Chain the payment settles on.
- `steps` (array): Steps from challenge to settled buy.
- `youNeverNeed` (array): What a buyer never needs.

### `buy_token` (~244 tokens)

Buy a market cross-chain with USDC on Base

Executes the buy. Called without xPayment it returns the HTTP 402 challenge, which is the correct first response and not an error. Called with a signed x402 payload in xPayment it settles on Base and the curve on the destination chain sends the tokens straight to `to`. You never need native gas on the destination chain and never need to bridge.

Input parameters:

- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…
- `to` (string, required): Address that receives the tokens. The curve sends them here directly; we never custody them.
- `xPayment` (string): Base64-encoded x402 payment payload containing the signed EIP-3009 authorization. Omit it to receive the 402 challenge first.

Output parameters:

- `challenge`: On 402: the payment terms in accepts[0].
- `httpStatus` (number|null): Status the gateway answered.
- `next` (string|null): What to do next.
- `paymentRequired` (boolean|null): True when this is the 402 challenge to sign.
- `result`: On a paid call: delivery and settlement transactions, or the gateway's refusal.
- `settled` (boolean|null): True when the payment settled and the tokens were delivered.

### `pay_and_buy` (~224 tokens)

Execute a buy end to end (operator-signed, capped)

Buys a market for real, completing the step an LLM cannot do alone: signing the EIP-3009 USDC authorisation. IMPORTANT for honest reporting — the signature is made by the operator's wallet on the server, not by a wallet you control, so describe the result as 'executed the purchase', not 'paid from my own funds'. Refuses unless the caller carries the agent key, and refuses any quote whose asset, network, recipient or amount does not match the hard-coded limits. Delivery always goes to the signer.

Input parameters:

- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…

Output parameters:

- `amountUsdc` (string|null): USDC paid.
- `buyback`: Automatic buyback result, when one ran.
- `chain` (string|null): Chain of the market.
- `delivery`: Delivery transaction on the market's chain.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `gatewayError`: The gateway's answer when it did not settle.
- `httpStatus` (number|null): Status the gateway answered.
- `known` (array): On unknown_market: the tickers that do exist.
- `limits`: On refused_by_limits: the hard limits the quote did not meet.
- `paidBy` (string|null): Operator wallet that signed the payment.
- `retryAfterSeconds` (number|null): On rate_limited: seconds until the next purchase is allowed.
- `settled` (boolean|null): True when the payment settled.
- `settlement`: Settlement transaction on Base.
- `signedBy` (string|null): Who signed: the operator wallet on the server, not the agent.
- `symbol` (string|null): Ticker bought.
- `terminal` (string|null): Market page.

### `trade_history` (~267 tokens)

Every swap on a market, and how complete the answer is

Trade history for a market, newest first, with an explicit statement of whether it reaches the launch block. Free. Monad, Robinhood Chain and Arc are served by our Envio indexer and Base and Arbitrum One by our subgraph, both complete from the launch block; every market is also covered by our per-market index of every swap since launch, joined to a live log scan for the newest fills. When a market's index is still catching up or a read fails, the answer says so instead of presenting a shortened list as the whole history. Treasury buybacks are not trades and are not listed, although the curve's swapCount counts them.

Input parameters:

- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `limit` (integer): Rows to return, newest first. Default 50, maximum 400.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…

Output parameters:

- `chain` (string|null): Chain name and id.
- `chainId` (number|null): Chain id of the market.
- `complete` (boolean|null): True only when the answer reaches the launch block.
- `completeBecause` (string|null): Why the history is complete.
- `coverage`: What the log scan reached.
- `curve` (string|null): Bonding curve contract.
- `degraded` (boolean|null): True when the indexer or subgraph failed and another read path answered instead.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `incompleteBecause` (string|null): Why older swaps may be missing.
- `indexProgress` (number|null): Share of the blocks since launch the per-market index has scanned, 0 to 1, while it catches up.
- `indexedThroughBlock` (number|null): Last block our per-market index has scanned, when it was used.
- `indexerError`: Why the indexer or subgraph was skipped, when it was.
- `indexerSyncedToBlock` (number|null): Block the indexer or subgraph has reached.
- `known` (array): On unknown_market: the tickers that do exist.
- `launchBlock` (number|null): Launch block of the market.
- `note` (string|null): Context for a read failure.
- `publicEndpoint` (string|null): Public GraphQL endpoint of the indexer.
- `returned` (number|null): Rows in swaps.
- `source` (string|null): envio-hyperindex, the-graph, market-index or rpc-logs: which read path answered.
- `swaps` (array): Swaps, newest first.
- `symbol` (string|null): Ticker.
- `totalSwaps` (number|null): Swaps since launch, on every read path. Treasury buybacks are not counted, so this can be lower than the curve's swapCount. On an incomplete answer, the swaps seen so far.

### `check_stake` (~242 tokens)

Read a wallet's stake in a market

Free. Reads the market's stake contract on its own chain: its own AdextoAgentStake where it has one, otherwise the chain's AdextoStakeHub, which accepts every other market launched through ADEXTO from its first block. Returns how much an address has staked, the minimum, whether the position is active (at or above the minimum), and the totals. An active stake opens ask_agent for that market and an Agent Compute API key (see get_market staking.unlocks). There is no lock and no reward: unstake works at any time.

Input parameters:

- `address` (string, required): Wallet whose stake to read.
- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…

Output parameters:

- `active` (boolean|null): True when the stake is at or above the minimum.
- `address` (string|null): Wallet read.
- `chain` (string|null): Chain name and id.
- `chainId` (number|null): Chain id of the market.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `kind` (string|null): dedicated or hub.
- `lock` (string|null): Always none: unstake works at any time.
- `minStake` (string|null): Minimum for an active stake, in whole tokens.
- `stakeContract` (string|null): Stake contract read.
- `staked` (string|null): Staked, in whole tokens.
- `stakers` (number|null): Number of stakers.
- `staking` (boolean|null): False when the market's chain has no stake contract for it.
- `symbol` (string|null): Ticker.
- `totalStaked` (string|null): Total staked in this market, in whole tokens.

### `access_message` (~168 tokens)

The message to sign before ask_agent

Free. Returns the exact EIP-191 message an address signs (personal_sign) to prove it is the address asking. ask_agent accepts it for 10 minutes. Signing it moves nothing and costs nothing.

Input parameters:

- `address` (string, required): Wallet that will sign and ask.
- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…

Output parameters:

- `address` (string|null): Address, on bad_address.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `message` (string|null): The exact EIP-191 message to sign.
- `next` (string|null): What to do next.
- `sign` (string|null): How to sign it.
- `symbol` (string|null): Ticker, on unknown_market.
- `validForSeconds` (number|null): How long ask_agent accepts it.

### `ask_agent` (~261 tokens)

Ask the market's agent (stake required)

Asks the market's own agent a question about that market. Open to an address whose stake in the market's stake contract is active (check_stake), proven with a signed access_message. The answer comes from glm-5.3 on the 0G router and is limited to facts read on-chain for this call; the tool returns those facts next to the answer. Refused without an active stake, and nothing is charged either way.

Input parameters:

- `address` (string, required): The asking wallet. Must hold an active stake.
- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `message` (string, required): The exact message from access_message.
- `question` (string, required): What to ask the agent about this market.
- `signature` (string, required): personal_sign signature of message by address.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…

Output parameters:

- `answer` (string|null): The agent's answer, limited to the facts below.
- `answered` (boolean|null): True when the agent answered.
- `answeredBy` (string|null): Model and route that answered.
- `chainId` (number|null): Chain id of the market.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `facts`: Facts read on chain for this answer.
- `httpStatus` (number|null): On model_failed: the model's HTTP status.
- `retryAfterSeconds` (number|null): On rate_limited: seconds until the next question is allowed.
- `stake`: The stake position that opened the agent.
- `symbol` (string|null): Ticker.

### `prepare_launch` (~527 tokens)

Prepare a market launch for your own key to sign

Launch a new ADEXTO market without handing over a key. Call it once without a signature: it checks the ticker, the chain and an optional ERC-8004 agent you own, and returns an attestation message for the deployer to sign (EIP-191). Call it again with the same arguments plus attestationMessage and attestationSignature: it anchors the launch metadata and returns the unsigned deployTrinity transaction (value 0, gas only), simulated from your address, with a gas estimate. Fee preset: 1.00% per trade, 0.70% to the creator. All supply goes into the curve; the creator gets no allocation. After the transaction is mined, call register_launch. The attestation message ends with an acceptance of the ADEXTO Terms and Acceptable Use Policy (adexto.xyz/terms): signing it is the deployer's acceptance, and markets that break the policy are removed from ADEXTO.

Input parameters:

- `agentId` (string): ERC-8004 agent id on this chain to bind to the token, owned by the deployer. Omit to launch unbound.
- `attestationMessage` (string): Second call only: the message the first call returned.
- `attestationSignature` (string): Second call only: the deployer's EIP-191 signature of it.
- `category` (string): Market category shown on the explorer.
- `chainId` (integer, required): Chain to launch on: 143 Monad, 42161 Arbitrum One, 4663 Robinhood Chain, 8453 Base, 5042 Arc, 16661 0G.
- `deployer` (string, required): Address that signs the attestation and sends the launch transaction. It becomes the market's creator and receives the creator fee.
- `description` (string): One-line pitch shown on the market page.
- `docs` (string): Documentation URL, shown on the market page.
- `github` (string): GitHub URL of the project, shown on the market page.
- `image` (string): Logo as a base64 data URI (image/png, image/jpeg or image/webp). Omit for the default logo.
- `name` (string, required): Token name, up to 64 bytes.
- `symbol` (string, required): Ticker, 2 to 12 letters A-Z or digits. Permanent on chain.
- `website` (string): Project website URL, shown on the market page. https:// is assumed when no scheme is given.
- `x` (string): X handle or URL.

Output parameters:

- `attestationMessage` (string|null): Step one: the message to sign with personal_sign.
- `attestationRoot` (string|null): Metadata root written on chain.
- `chain` (string|null): Chain name.
- `chainId` (number|null): Chain to launch on.
- `checks`: Step one: ticker and agent checks already passed.
- `code` (string|null): On prepare_failed: error code of the preparation stage.
- `deployer` (string|null): Address that signs and sends.
- `deployerBalanceWei` (string|null): Deployer balance.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `estimatedCostWei` (string|null): Estimated cost in wei: gas used times the gas price, or the gas limit times the price on Monad, which bills the whole limit.
- `fundsSufficient` (boolean|null): Whether the balance covers the transaction's gas limit at the current price, which the node requires.
- `gasEstimate` (string|null): Step two: estimated gas.
- `gasPriceWei` (string|null): Current gas price.
- `gasSource` (string|null): estimateGas or measured.
- `launchableChains`: On unsupported_chain: the chains that can launch.
- `market`: The market the launch creates: supply, fee split, opening market cap, agent.
- `metadataAnchoredTo0G` (boolean|null): True when the metadata was stored on 0G DA.
- `name` (string|null): Token name.
- `nativeSymbol` (string|null): Native asset that pays the gas.
- `next` (string|null): What to do next.
- `quota`: On creator_ticker_limit: this address's ticker quota.
- `retryAfterSeconds` (number|null): On a rate limit: seconds to wait.
- `signWith` (string|null): Step one: how to sign.
- `simulation` (object): The transaction simulated from the deployer.
- `status` (number|null): On prepare_failed: HTTP status of the preparation stage.
- `step` (string|null): sign_attestation on the first call, sign_and_send on the second.
- `symbol` (string|null): Ticker.
- `transaction` (object): Step two: the unsigned launch transaction.
- `unavailableChains`: Chains the preparation stage could not open.
- `validForSeconds` (number|null): Step one: how long the attestation is accepted.

### `register_launch` (~109 tokens)

List a mined launch on ADEXTO

After the prepare_launch transaction is mined, lists the new market on adexto.xyz, in list_markets and on the x402 gateway. Reads the TrinityProjectDeployed event from the ADEXTO factory in the receipt; every value it registers comes from that event, not from the caller. Calling it again for the same transaction returns the existing listing.

Input parameters:

- `chainId` (integer, required): Chain the launch transaction was sent on.
- `txHash` (string, required): Hash of the mined launch transaction.

Output parameters:

- `agentIdentity`: ERC-8004 binding read from the token, or null.
- `alreadyRegistered` (boolean|null): True when it was listed before this call.
- `buyResource` (string|null): x402 URL that sells the market.
- `chain` (string|null): Chain name.
- `chainId` (number|null): Chain id.
- `code` (string|null): On confirm_failed: error code of the registration stage.
- `creator` (string|null): Creator address, from the factory event.
- `curve` (string|null): Bonding curve contract.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `explorerTx` (string|null): Explorer link of the launch transaction.
- `launchableChains`: On unsupported_chain: the chains that can launch.
- `metadataApplied` (boolean|null): True when the prepare_launch metadata was applied.
- `name` (string|null): Token name.
- `next` (string|null): What to do next.
- `note` (string|null): Context for a failed registration.
- `page` (string|null): Market page.
- `registered` (boolean|null): True when the market is listed.
- `status` (number|null): On confirm_failed: HTTP status of the registration stage.
- `symbol` (string|null): Ticker.
- `token` (string|null): Token contract.

### `prepare_stake` (~226 tokens)

Prepare a stake for your own key to sign

Unsigned transactions that stake a market's token in its stake contract or its chain's stake hub: an approval for the exact amount (only if the allowance is short), then the stake. Checks balance, minimum and hub eligibility first, so a stake that would revert is refused before any gas is spent. No lock: unstake works at any time. A stake opens ask_agent for that market.

Input parameters:

- `address` (string, required): Wallet that holds the tokens and will sign.
- `amount` (string, required): Whole tokens to stake, for example "10000".
- `chainId` (integer): Chain id of the market, for a ticker that trades on more than one chain (list_markets shows chainId). Without it the oldest market for that ticker is used.
- `symbol` (string, required): Market ticker, for example PARCEL or ADEXTO. Required and has no default: the gateway refuses a missing ticker rather than quoting one, so a typo can never bill you for a token you did not ask for. C…

Output parameters:

- `after` (object): The position once the transactions are mined.
- `alreadyStaked` (string|null): On below_minimum: the current position.
- `balance` (string|null): On insufficient_balance: the wallet's balance.
- `chainId` (number|null): Chain id.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `kind` (string|null): dedicated or hub.
- `lock` (string|null): Always none.
- `market` (string|null): Ticker and chain.
- `minimum` (string|null): On below_minimum: the minimum.
- `next` (string|null): What to do next.
- `order` (string|null): Sending order.
- `stakeContract` (string|null): Stake contract the transactions call.
- `token` (string|null): Token staked.
- `transactions` (array): Send in order: an exact approval if needed, then the stake.

### `prepare_claim` (~91 tokens)

Prepare a creator fee claim

Unsigned transactions that collect the creator fee owed to an address across its markets: one claimCreatorFees() call per curve, or one Multicall3 batch per chain when several are owed. The curve always pays its immutable creator, whoever sends the transaction.

Input parameters:

- `address` (string, required): Creator address whose owed fees to collect.
- `chainId` (integer): Only this chain. Omit for every chain.

Output parameters:

- `address` (string|null): Creator address.
- `checkedMarkets`: Markets checked.
- `claimable` (array): Markets that owe this address a creator fee.
- `detail`: Why it refused, or extra context on a successful answer.
- `error` (string|null): Present only when the tool refused, as a stable code such as unknown_market. Nothing was spent.
- `note` (string|null): Who receives the fee.
- `transactions` (array): One claim per curve, or one Multicall3 batch per chain.
- `unreadableMarkets`: Markets that could not be read.

## Diagnostics

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

## Score history

- 2026-10-07: 67
- 2026-10-06: 67
- 2026-10-05: 66
- 2026-10-04: 64
- 2026-10-03: 63
- 2026-10-02: 62

## Common questions

### What is the ADEXTO MCP server?

ADEXTO is an MCP server listed in the public MCP registry as xyz.adexto/mcp. Launch, buy, stake and claim on bonding-curve token markets across five chains, with your own key. This page covers its hosted endpoint (https://adexto.xyz/api/mcp).

### Is the ADEXTO MCP server safe to use?

ADEXTO scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ADEXTO MCP server expose?

ADEXTO exposes 14 tools: list_markets, get_market, quote_buy, how_to_pay, buy_token, and 9 more. Their descriptions and schemas cost roughly 2,829 tokens of context every time the server is loaded.

### Does the ADEXTO MCP server require authentication?

No. We connected to ADEXTO without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the ADEXTO MCP server still maintained?

ADEXTO is still listed as active in the MCP registry. We last reached this channel on 7 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://adexto.xyz/api/mcp
- Repository: https://github.com/0xcuy/adexto
- Website: https://adexto.xyz/mcp
- Changelog RSS feed: https://verifymcp.io/servers/xyz-adexto-mcp/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/xyz-adexto-mcp/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/xyz-adexto-mcp/api-mcp
