MCP

Connect an AI agent to Agen Instant. Quote a launch against the live factory, prepare the transaction your wallet signs, and read every token, pool and market — over the Model Context Protocol.

Overview

8 tools · 6 read-only

A thin, typed interface over the engine that is already running. There is no second quote path here, no second launch path and no fee table reimplemented for agents.

Every number an agent reads is computed by the same code that computes it for agen.space. Where a figure could not be obtained from the existing system it comes back as null with a reason, rather than estimated. Six tools only read. One prepares a transaction and hands it back unsigned. One spends an authorised agent’s own treasury, inside caps its owner set — and that distinction is visible in the tool names.

Quoted against the chainThe real create call is encoded and simulated with eth_call against the deployed factory, so the tokens received come out of the contract's own return value.
Prepared, not custodiedLaunch calldata comes back unsigned and marked prepared. Your wallet is the only thing that can turn it into a market.
The whole market, readableTokens, pools, launch status, discovery by volume or recency, and ecosystem totals — straight from the Instant indexer.
One engine underneathNo second quote path and no fee table copied for agents. Every figure an agent reads is computed by the code that computes it here.

Quick start

about a minute

Build the package, point your client at dist/index.js, give it a key. The read-only tools work without one; quoting and launching answer UNAUTHORIZED until there is one. Keys are created by an agent’s owner on your profile and shown once.

pnpm install
pnpm --filter @verdant/agen-mcp build

# stdio, which is what a desktop client wants
AGEN_INSTANT_FEED_URL=https://instant-feed.agen.space \
AGEN_API_KEY=agn_… \
node packages/agen-mcp/dist/index.js

Configuration is validated at boot: a bad value exits 78 with every problem listed, rather than failing on the first tool call.

Configuration

environment only

Validated at boot, so a bad value is a startup failure listing every problem rather than a surprise on the first tool call. No variable accepts a private key or a mnemonic; there is nowhere to put one.

VariableDefaultNotes
AGEN_API_URLhttps://agen.spaceTrailing slashes stripped.
AGEN_API_KEYAn Agen agent key, agn_…. Needed for quoting and both launch tools. Never logged.
AGEN_INSTANT_FEED_URLThe Instant indexer. Without it the four indexer-backed tools answer CONFIG_MISSING rather than pretending there are no markets.
AGEN_EXPLORER_URLOnly builds links. Absent, link fields come back null rather than guessed.
AGEN_CHAIN_ID4663Robinhood Chain.
AGEN_MCP_TRANSPORTstdiostdio or http.
AGEN_MCP_HOST127.0.0.1The HTTP transport has no authentication of its own, so exposing it is an explicit decision.
AGEN_MCP_PORT8848POST /mcp, and GET /healthz.
AGEN_MCP_TIMEOUT_MS15000Per read. Launches get their own, 120000.
AGEN_MCP_MAX_RETRIES2Safe requests only. A launch is never retried.
AGEN_MCP_LOG_LEVELinfodebug logs request ids, durations and paths — never bodies.

Tool reference

tools/list

Reading, preparing and spending carry three different annotations, so a client can auto-approve the first and prompt for the other two. Preparing is not marked read-only despite holding no key: it writes a metadata document and consumes a launch allowance, and auto-approving that is not something anyone agreed to.

get_launch_quoteread-only

Simulates the launch against the deployed factory. Tokens received, ownership, price impact, opening market cap, the fee split — and the block it was quoted at.

get_launch_statusread-only

Where a launch got to, by launch id, token address or transaction hash. Submitted, confirmed, deployed, pooled, tradable, indexed.

get_tokenread-only

Everything Agen knows about one token: supply, creator, fee receiver and vault, price, market cap, volume, accrued fees.

get_poolread-only

The Uniswap v4 pool behind a market — liquidity, tick, price, the locked position, and the fee split in ppm.

get_launchesread-only

Discovery over the indexer. Sort by newest, volume, organic volume, trades, liquidity or fees; filter by creator or token.

get_instant_metricsread-only

The ecosystem in one call: markets, creators, trades, volume, fees, and the fixed terms every Instant launch is issued under.

prepare_instant_launchprepare

Builds the launch transaction and hands it back unsigned. Stores the metadata and mines the salt; signs nothing and spends nothing.

launch_instant_from_agent_treasuryexecutes

The only tool that moves money. An authorised Agen agent's own treasury signs, inside the caps its owner set.

The fixed terms of every Instant launch

Worth knowing before reading the tools, because several parameters an agent might expect are not parameters at all.

Supply 1,000,000,00018 decimalsOpens at 1.5 ETHNo creator allocation1.5% trade fee1% to the creator0.5% to the platformLiquidity locked

How a launch travels

one signature

Six steps, and the two in the middle are the ones worth understanding: the agent prepares, and your wallet is what makes it real.

  1. The agent asks what the launch would do

    get_launch_quote encodes the real create call and simulates it with eth_call against the deployed factory. Nothing is modelled here — the tokens received come out of the contract's own return value.

    agent → agen → chain
  2. Agen answers with the whole shape of it

    Tokens received, ownership percent, price impact, opening market cap, the 1.5% fee split, and the block the simulation was pinned to. Anything wrong with the launch comes back in problems[] before a wallet is ever opened.

    read-only
  3. The agent prepares the transaction

    prepare_instant_launch stores the metadata, mines the salt and returns calldata, along with execution_status: "prepared" and requires_signature: true. It holds no key, and neither does the route behind it.

    no signature, no spend
  4. Your wallet signs

    You send it, from the signer the calldata was prepared for. The token address is derived from the sender, so the wallet that signs is the wallet the market is created by.

    your keys
  5. One transaction does all of it

    InstantFactory.create deploys the token, opens the Uniswap v4 pool, locks the position, wires the fee vault and executes your first buy. There is no second step to wait for.

    onchain
  6. The agent watches it land

    get_launch_status until it is confirmed, then get_token and get_pool for the market that now exists. Indexing is the only stage that lags, and the response says so rather than reporting the token as missing.

    agent → agen

An agent launching from its own Agen treasury replaces steps three to five with a single launch_instant_from_agent_treasury call, which returns execution_status: "confirmed" and a transaction hash directly. It also spends real money, so quote first and show the user what it will cost.

Example session

quote → prepare → sign → confirm

One launch, as the calls and responses actually travel.

# What the person typed, in their client:
"Launch a token called Atlas with 0.05 ETH in the first buy,
 and send the fees to 0x2222…2222."

# What the agent does with it:
#   1. get_launch_quote        → what it would cost and produce
#   2. prepare_instant_launch  → unsigned calldata
#   3. (you sign and broadcast)
#   4. get_launch_status       → until confirmed
#   5. get_token               → the market that now exists

Five calls, one signature, and the signature is yours. Every figure below is illustrative; the shapes are exact.

Custody

0 private keys

Two signers, and they are two different tools. The difference between them is who holds the key, and that belongs in a tool list rather than buried in a parameter’s description. There is no third path, and no mode switch that turns one into the other.

prepare_instant_launchNobody signs.

The server returns calldata and says so three times over. Your wallet signs and broadcasts it, or nothing happens. Nothing is spent, and the fee receiver may be any address you like — you are the one paying for the transaction that names it.

Keys held
none
Spends
nothing
Signed by
caller_wallet
launch_instant_from_agent_treasuryThe agent’s treasury signs.

An Agen agent’s own isolated wallet, under the permissions its owner configured: a per-launch ETH ceiling, launches per day, a creator-buy cap and a reserve. Fees accrue to that agent. It refuses a fee receiver or a signer rather than dropping one.

Keys held
none — Agen signs
Spends
the agent’s treasury
Bounded by
owner permissions
  • No key can reach it. No environment variable and no tool parameter accepts a private key or mnemonic, and a test asserts that against the schema.
  • A launch is never retried. Only idempotent reads retry. A timeout means find out what happened, not try again.
  • Every address is validated against a 20-byte hex pattern, with EIP-55 mixed case preserved rather than lower-cased.
  • Logs are structured JSON on stderr, with keys and bearer tokens redacted by key and by value. Never stdout — on stdio, stdout is the protocol.
  • No admin route is reachable. The server calls eight backend routes and no others.
  • HTTP binds to loopback and warns loudly at startup if it is pointed anywhere else. That port has no authentication of its own.

Live data

get_instant_metrics

This deployment’s figures, read from the Instant indexer as this page was rendered — the same numbers an agent gets back, and the same ones /metrics shows a person.

Markets

36

markets

Creators

18

creators

Trades

3,471

trades

Volume

110.4764 ETH

volume.quote

Questions

What can an agent actually do?

Quote a launch, prepare the transaction for it, read any Instant token or pool, follow a launch to confirmation, discover markets by volume or recency, and read ecosystem totals. Six of the eight tools only read. One returns unsigned calldata. One spends an authorised agent treasury.

Does Agen MCP hold private keys?

No. There is no environment variable, tool parameter or code path that accepts a private key or a mnemonic, and a test asserts it against the configuration schema so that adding one would require deleting the test. The server holds an Agen API key and nothing else.

Can I use my own wallet?

That is the default path. prepare_instant_launch returns a transaction; you sign and broadcast it yourself. Send it from the signer it was prepared for — the token address is derived from the sender, so calldata sent by a different wallet lands on a different address.

Is there a remote endpoint?

Not a public one. The server runs on your machine over stdio, which is what a desktop client wants. There is also a streamable HTTP transport, bound to 127.0.0.1 by default and deliberately unauthenticated: whoever can reach that port can call every tool with the key the process holds, so the port is the boundary. Put an authenticating proxy in front of it, or use stdio.

How does the agent treasury path work?

An Agen agent has its own isolated wallet with permissions its owner configured — a per-launch ETH ceiling, launches per day, a creator-buy cap and a reserve. launch_instant_from_agent_treasury posts to the same endpoint the agent API uses, and Agen enforces those caps. It refuses a feeReceiver or signer rather than ignoring one, because a silently dropped fee receiver would let an agent truthfully report a destination the vault does not have.

What happens when something fails?

Backend failures are normalised to a small set of codes — UNAUTHORIZED, RATE_LIMITED, INSUFFICIENT_BALANCE, TOKEN_NOT_FOUND, INDEXER_PENDING, TRANSACTION_REVERTED and a dozen more — each carrying the underlying reason wherever it is safe to show, plus a request id you can quote. Bad input is refused earlier still, by the schema, and names the field.

Which chain, and what are the terms?

Robinhood Chain, id 4663. Every Instant market is a billion tokens at 18 decimals, opening at a 1.5 ETH valuation, with 1.5% of every trade split 1% to the creator and 0.5% to the platform. Those are factory constants, not parameters — totalSupply exists as an input only so that an agent told "launch with a 1B supply" can confirm it.

Give your agent a market to build in.

Start with a quote. It costs nothing, it is simulated against the live factory, and it is the fastest way to see what the rest of it does.