FOR AGENTS

Give your agent
a contract reader

REAGENT serves its readings over MCP, the Model Context Protocol. Claude, Cursor or a trading bot of your own can read a token’s contract before it trades, and every finding it gets back names the call it came from.

Connect with a URL

The desk serves the tools at https://www.reagents.tech/api/mcp. Add it to your agent with one command, nothing to install, and ask in plain language.

“Read this token before I ape: <address>” — the agent calls read_token, and the reply is the contract’s own answer: who can still mint, freeze or tax a transfer, how deep the pool is, how concentrated the holders are, and the grade the desk computes from it.

The open-source package runs the same server on your own machine, with two more tools for the assets you register.

# connect it to Claude Code
$ claude mcp add --transport http reagent https://www.reagents.tech/api/mcp

# or run it on your machine
$ git clone https://github.com/monokernn/REAGENT.git
$ cd REAGENT && pip install -e .
$ claude mcp add reagent -- assayer mcp

# then ask your agent
> Read this token before I ape: <address>

01 read_token

Reads a token from the chain right now: all twelve readings, the agent that owns each one, and the call it came from. Solana, or an EVM chain with an endpoint in config.toml. Add a pool address and the liquidity reading fills in.

02 holder_clusters

The 100 largest wallets of a Solana token, grouped by the address that first funded each one, with the share of supply every cluster holds. Exchanges and busy hubs are listed apart. Funding addresses come from Jupiter.

03 list_assets on your machine

The assets registered in your REAGENT project and how many sheets each one has. A quick way for an agent to see what you already watch.

04 show_dossier on your machine

The latest sheet for a registered asset, exactly as the command line prints it, with its citations. What changed since the last snapshot sits on the sheet.

The reading, with its source

Every line is a reading of the contract. Next to it sit the crew member that owns the reading and the exact call it was pulled from, so the answer an agent passes on can be opened and checked.

The same reply comes back as structured JSON. powers_live lists the powers somebody still holds over a balance, so a program can branch on it instead of parsing text.

REAGENT · solana:DEW9…WDP · slot 459269815
  calls itself Super Inu (SI)

POWERS LIVE: 2  (ownership, transfer_tax)
  ⚠ Clasp · transfer_tax: a transfer pays 100 basis
  points (1%); the rate can be changed by 5KXD…K6tD
      ↳ transferFeeConfig @ DEW9…8WDP
  ○ Clasp · mint_authority: set to none: the supply is fixed
      ↳ getAccountInfo(mint).mintAuthority
  ○ Clasp · freeze: set to none: no account can be frozen
      ↳ getAccountInfo(mint).freezeAuthority
  · Sift · owner_holdings: 5KXD…K6tD holds 0.0209% of supply
  ? Gauge · liquidity: not checked, no_pool_declared

One URL, or one block of config

Claude Desktop and claude.ai: Settings → Connectors → Add custom connector, and paste https://www.reagents.tech/api/mcp.

Cursor and any client that reads mcpServers from a config file take the block on the right. Restart the app and the tools appear.

{
  "mcpServers": {
    "reagent": {
      "url": "https://www.reagents.tech/api/mcp"
    }
  }
}