Skip to main content
Glama

@one-source/mcp

Unified MCP server for OneSource — 38 tools for blockchain data, live chain queries, and REST API documentation in a single server.

What is MCP? The Model Context Protocol lets AI assistants call tools and access data sources. This server exposes both the OneSource blockchain API and its documentation as tools.

Quick Start

Claude Code

claude mcp add onesource -- npx -y @one-source/mcp@latest

Claude Desktop / Cursor

Add to your MCP config:

{
  "mcpServers": {
    "onesource": {
      "command": "npx",
      "args": ["-y", "@one-source/mcp@latest"]
    }
  }
}

Any MCP Client (stdio)

npx -y @one-source/mcp@latest

HTTP Server (self-hosted)

npx -y @one-source/mcp@latest --http
npx -y @one-source/mcp@latest --http --port=8080

Then connect your MCP client to http://localhost:3000/ (or your --port value, e.g. 8080 in the second example above).

Health check: GET http://localhost:3000/health (substitute your port).

Related MCP server: sui-analytics-mcp

Tools (38)

Blockchain API — Live Chain (12 tools)

Tool

Description

1s_allowance_live

ERC20 allowance check

1s_contract_info_live

Contract type detection via ERC165

1s_erc1155_balance_live

ERC1155 balance via RPC

1s_erc20_balance_live

ERC20 balance via balanceOf

1s_erc20_transfers_live

ERC20 Transfer logs via eth_getLogs

1s_erc721_tokens_live

ERC721 token enumeration

1s_events_live

Event logs via eth_getLogs

1s_multi_balance_live

ETH + multiple ERC20 balances

1s_nft_metadata_live

NFT metadata via tokenURI

1s_nft_owner_live

NFT owner via ownerOf

1s_total_supply_live

Token total supply

1s_tx_details_live

Transaction + receipt via RPC

Blockchain API — Chain Utilities (13 tools)

RPC only.

Tool

Description

1s_block_by_number

Block details by number via RPC

1s_block_number

Latest block number

1s_chain_id

EIP-155 chain ID

1s_contract_code

Contract bytecode

1s_ens_resolve

ENS name/address resolution

1s_estimate_gas

Gas estimation

1s_network_info

Chain ID, block number, gas price

1s_nonce

Transaction count

1s_pending_block

Pending block from mempool

1s_proxy_detect

Proxy contract detection

1s_simulate_call

Simulate eth_call

1s_storage_read

Read storage slot

1s_tx_receipt

Transaction receipt

Payments (2 tools)

Tool

Description

1s_payment_mode

View or switch the payment rail + scheme across all four modes: x402-exact / x402-batch (USDC on Base) and mpp-charge / mpp-session (USDC.e / pathUSD on Tempo). batch and session open a channel that funds many calls.

1s_refund

Reclaim an open payment channel's unspent deposit on demand — works for both an x402 batch channel (Base) and an MPP session voucher channel (Tempo)

Documentation (8 tools)

No authentication required. These answer from a documentation corpus bundled with the server, so they cost nothing and work even before a payment method is configured. They share their names with the standalone @one-source/docs-mcp server, which serves the same corpus.

Tool

Description

1s_search_docs

Keyword search across the OneSource developer documentation

1s_get_api_overview

What the REST API covers — operation count, tags, networks, payment protocols

1s_list_endpoints

Every REST endpoint with method, path, price, and summary; filter by tag

1s_get_endpoint_reference

One endpoint in full — parameters, request body, example response, price, curl

1s_search_use_cases

Find the right endpoint from a plain-language description of the task

1s_list_networks

Networks the REST API routes, as declared by its published spec

1s_get_payment_info

Price range, payment rails, and pay-to address; per-endpoint when given one

1s_get_authentication_guide

How to authenticate to the REST API and which method to choose

Setup & Ops (3 tools)

No authentication required.

Tool

Purpose

When to use

1s_setup_check

Interactive setup & health check. Walks the user through every configuration choice for both rails (auth method, x402, MPP, payment modes, channel prefs) one decision at a time — every run, even when already configured — plus version, auth status, channel status, and connectivity

First thing to call — to set up, change configuration, or troubleshoot

1s_batch_config

View or change payment-channel preferences (autonomy, threshold, x402 deposit multiplier, MPP session deposit cap, default mode) and persist them across restarts — no config editing required

Configure channel behaviour from the session

1s_report_bug

Report bugs to Slack (or GitHub Issues fallback)

When a tool errors or user wants to report an issue

Networks

All blockchain API tools accept an optional network parameter:

Network

Description

ethereum

Ethereum mainnet (default)

sepolia

Ethereum Sepolia testnet

robinhood

Robinhood Chain, chain 4663 (Arbitrum Orbit L2) — live-RPC only

Authentication

Blockchain API tools require authentication. Three options are available — if an API key is set alongside a wallet key, the API key takes priority and the wallet is ignored.

Tip: the fastest way to configure any of these is the 1s_setup_check tool — it walks you through every option interactively and hands you a ready-to-run command, so you never have to hand-edit env vars or config files. The manual instructions below are the reference.

Method

Variable

Description

API key

ONESOURCE_API_KEY

Unlimited calls, no per-call cost

x402 micropayments

X402_PRIVATE_KEY

Pay-per-call via USDC on Base, no account required

MPP micropayments

MPP_PRIVATE_KEY

Pay-per-call via USDC.e / pathUSD on Tempo, no account required

Option 1: API Key

  1. Go to app.onesource.io and create an account.

  2. Complete the API key subscription through Stripe checkout.

  3. Navigate to API Keys and generate a key.

  4. Copy the key — it starts with sk_.

Claude Code

claude mcp add onesource -e ONESOURCE_API_KEY=<key> -- npx -y @one-source/mcp@latest

Claude Desktop / Cursor

Add the env block to your MCP config:

{
  "mcpServers": {
    "onesource": {
      "command": "npx",
      "args": ["-y", "@one-source/mcp@latest"],
      "env": {
        "ONESOURCE_API_KEY": "<key>"
      }
    }
  }
}

Any MCP Client (stdio)

ONESOURCE_API_KEY=<key> npx -y @one-source/mcp@latest

After adding, reload the MCP server and call 1s_setup_check — under Current configuration it should report Active auth method: API key (with the first 6 characters of your key).

Option 2: x402 Micropayments

Blockchain API endpoints are priced in USDC on Base via x402. When you set X402_PRIVATE_KEY, the server automatically handles payments — tool calls are paid and retried transparently without any extra work from the agent.

  1. Get an EVM private key — export one from MetaMask, Coinbase Wallet, or any EVM wallet, or generate a fresh one. The key is a 64-character hex string. The 0x prefix is optional — both formats are accepted.

  2. Pass the key to the server using one of the methods below.

  3. Reload and find your wallet address — reload the MCP server, then call 1s_setup_check. Under Current configuration it lists your x402 (Base) wallet — the address derived from your key.

  4. Fund that address with USDC on Base — send USDC to the address shown in 1s_setup_check, on the Base network. A few dollars ($1–5 USDC) is enough for hundreds of calls. If your USDC is on Ethereum mainnet, bridge it using the Base Bridge.

  5. Verify — call 1s_network_info for ethereum. If it returns chain data (block number, gas price), x402 payments are working end-to-end.

Claude Code

claude mcp add onesource -e X402_PRIVATE_KEY=<key> -- npx -y @one-source/mcp@latest

Claude Desktop / Cursor

Add the env block to your MCP config:

{
  "mcpServers": {
    "onesource": {
      "command": "npx",
      "args": ["-y", "@one-source/mcp@latest"],
      "env": {
        "X402_PRIVATE_KEY": "<key>"
      }
    }
  }
}

Any MCP Client (stdio)

X402_PRIVATE_KEY=<key> npx -y @one-source/mcp@latest

Option 3: MPP Micropayments (Tempo)

Blockchain API endpoints can also be paid on the Tempo network via MPP — an alternative to x402 on Base. When you set MPP_PRIVATE_KEY, the server handles payments automatically; tool calls are paid and retried transparently.

  1. Get an EVM private key — same format as x402 (64-char hex, 0x optional). Export one or generate a fresh key.

  2. Pass the key to the server using one of the methods below.

  3. Reload and find your wallet address — reload the MCP server, then call 1s_setup_check. Under Current configuration it lists your MPP (Tempo) wallet — the address derived from your key.

  4. Fund that address with USDC.e or pathUSD on Tempo — a few dollars covers hundreds of calls.

  5. Verify — call 1s_network_info. If it returns chain data, MPP payments are working end-to-end.

Claude Code

claude mcp add onesource -e MPP_PRIVATE_KEY=<key> -- npx -y @one-source/mcp@latest

Claude Desktop / Cursor

{
  "mcpServers": {
    "onesource": {
      "command": "npx",
      "args": ["-y", "@one-source/mcp@latest"],
      "env": {
        "MPP_PRIVATE_KEY": "<key>"
      }
    }
  }
}

Any MCP Client (stdio)

MPP_PRIVATE_KEY=<key> npx -y @one-source/mcp@latest

By default MPP pays per call (mpp-charge). For a burst of calls, switch to a Tempo voucher channel with 1s_payment_mode { "mode": "mpp-session" } (or set MPP_PAYMENT_MODE=session) — one deposit funds many off-chain calls; reclaim the unspent balance any time with 1s_refund, or it settles automatically on clean shutdown.

Config File Locations

If you prefer editing the config file directly instead of using CLI commands:

Client

Config file path

Claude Code

Run claude mcp get onesource to see the file path

Claude Desktop (macOS)

~/Library/Application Support/Claude/claude_desktop_config.json

Claude Desktop (Windows)

%APPDATA%\Claude\claude_desktop_config.json

Cursor (macOS)

~/.cursor/mcp.json

Cursor (Windows)

%USERPROFILE%\.cursor\mcp.json

Add the onesource entry inside "mcpServers" using the JSON block shown above.

Alternative: Set as an Environment Variable

Instead of the env config block, you can set any of these variables as a shell or system environment variable: export ONESOURCE_API_KEY=<key> (bash/zsh) or $env:ONESOURCE_API_KEY = "<key>" (PowerShell). Set it at the OS level for persistence across sessions.

Payment channels (optional)

By default each paid call signs one payment per call (x402-exact on Base, mpp-charge on Tempo). For a burst of calls, open a payment channel — one on-chain deposit funds many off-chain calls, settled together — which is cheaper than paying per call:

  • x402 (Base): switch to x402-batch with 1s_payment_mode { "mode": "x402-batch" } (or X402_PAYMENT_MODE=batch). The first call deposits price × X402_DEPOSIT_MULTIPLIER (default 10).

  • MPP (Tempo): switch to mpp-session with 1s_payment_mode { "mode": "mpp-session" } (or MPP_PAYMENT_MODE=session). The first call deposits up to MPP_MAX_DEPOSIT (default 1).

Reclaim the unused balance any time with the 1s_refund tool (works for both rails); the residual is always recoverable on-chain. An idle x402 channel also auto-refunds after a few hours, and an MPP session settles automatically on clean shutdown.

When paying via a wallet, the agent receives channel guidance in its system prompt at startup, so it can manage this for you rather than leaving it as a manual step: when it anticipates a burst of calls it offers to switch to the channel mode for the active rail and reminds you to 1s_refund when finished. Control how proactive it is with X402_BATCH_PROMPT (ask / auto / off) and X402_BATCH_THRESHOLD (how many anticipated calls count as a burst — shared across both rails) — see Environment Variables. 1s_setup_check reports your current mode, whether the channel is available, and all settings.

Security

Never commit keys to source control. Use environment variables, a .env file (excluded from git), or a secrets manager.

After any config change: Run /reload-plugins in Claude Code, or restart Claude Desktop / Cursor. The MCP server must be reloaded to pick up new environment variables.

Environment Variables

Required

Set one to access the blockchain API tools. Without any, only the no-auth Setup & Ops tools work. The API key takes priority when set alongside a wallet key.

Variable

Default

Description

ONESOURCE_API_KEY

OneSource API key for Bearer token auth. Takes priority over the wallet rails.

X402_PRIVATE_KEY

EVM private key (64-char hex, 0x prefix optional) for automatic x402 USDC payments on Base.

MPP_PRIVATE_KEY

EVM private key for automatic MPP payments (USDC.e / pathUSD) on Tempo.

Optional / Advanced

All have sensible defaults — channel modes run out of the box. Set these only to override an endpoint, tune how channel modes behave, or adjust analytics. Payment modes can also be switched at runtime with the 1s_payment_mode tool. The channel knobs below (X402_PAYMENT_MODE, X402_DEPOSIT_MULTIPLIER, MPP_PAYMENT_MODE, MPP_MAX_DEPOSIT, X402_BATCH_PROMPT, X402_BATCH_THRESHOLD) can be set and persisted from a session with the 1s_batch_config tool — no config editing or restart required; a saved config takes priority over these env vars.

Variable

Default

Description

ONESOURCE_BASE_URL

https://api.onesource.io

API base URL.

X402_PAYMENT_MODE

exact

Initial x402 scheme: exact (per-call) or batch (payment channel). Switch in-session with 1s_payment_mode.

X402_RPC_URL

Base default

Base RPC endpoint used to submit channel deposits in batch mode.

X402_DEPOSIT_MULTIPLIER

10

Batch mode: deposit = price × this multiplier, funding that many calls per channel. Unused balance is reclaimable via 1s_refund.

X402_CHANNEL_DIR

Directory to persist batch channel state across restarts. Unset = in-memory (channel lost on restart).

X402_CHANNEL_SALT

zero

Batch mode: 32-byte hex salt to derive the starting channel id. The client auto-rotates to the next salt when a channel is exhausted or refunded.

MPP_PAYMENT_MODE

charge

Initial MPP scheme: charge (per-call) or session (Tempo voucher channel). Switch in-session with 1s_payment_mode.

MPP_MAX_DEPOSIT

1

Session mode: max USDC.e / pathUSD locked per Tempo voucher channel. Unused balance is reclaimable via 1s_refund.

MPP_RPC_URL

Tempo default

Tempo RPC endpoint used to submit channel deposits in session mode.

X402_BATCH_PROMPT

ask

How the agent handles switching to a channel mode (both rails): ask (confirm before switching), auto (switch on its own), or off (only switch when explicitly asked).

X402_BATCH_THRESHOLD

5

Number of anticipated calls in a session at/above which the agent considers a channel mode (both rails). Advisory — the agent estimates the call count; it is not a hard runtime counter.

ONESOURCE_CONFIG_DIR

~/.onesource

Directory holding the server-managed channel config (batch-config.json) written by 1s_batch_config.

ONESOURCE_ANALYTICS

true

Set to false to disable analytics.

ONESOURCE_ANALYTICS_URL

https://1s-analytics.vercel.app

Dashboard endpoint for analytics.

ONESOURCE_ANALYTICS_KEY

onesource-mcp

API key for dashboard analytics. Legacy alias X402_ANALYTICS_KEY still works but is deprecated.

Troubleshooting

1s_setup_check shows "Active auth method: none" (blockchain tools locked) Under Current configuration, "Active auth method: none" means no authentication is set. Set one of ONESOURCE_API_KEY (API key), X402_PRIVATE_KEY (x402 on Base), or MPP_PRIVATE_KEY (MPP on Tempo) — or just run 1s_setup_check and let it walk you through it. Reload the MCP server after setting any variable (see note above). If the key still isn't reaching the server, set it as a shell environment variable directly.

Getting 403 / wrong key active despite correct setup A key set in your shell profile (e.g. ~/.zshrc, ~/.bash_profile) is picked up by the MCP server process even if it isn't in your Claude MCP config. Run echo $ONESOURCE_API_KEY in your terminal to check. If it prints a value you didn't intend, unset it (unset ONESOURCE_API_KEY) or explicitly clear it when adding the server: claude mcp add onesource -e ONESOURCE_API_KEY= -e X402_PRIVATE_KEY=<key> -- npx -y @one-source/mcp@latest. 1s_setup_check shows the first 6 characters of whichever key is active so you can confirm which one the server is using.

Instructions show wrong auth method after reinstall /reload-plugins in Claude Code reconnects tools but may not refresh the system prompt the LLM sees. If you switch auth method (e.g. API key → x402), do a full Claude Code restart to ensure the instructions reflect the new auth.

"MCP server onesource already exists" error Run claude mcp remove onesource first, then re-add with your updated config.

Windows: npx requires cmd /c wrapper Claude Code's /doctor command may warn about this. Update your MCP config to use "command": "cmd" with "args": ["/c", "npx", "-y", "@one-source/mcp@latest"].

**npx hangs with no output** That's normal — stdio mode waits for JSON-RPC input on stdin. Use --http if you want an HTTP server you can curl.

Port already in use Specify a different port: npx -y @one-source/mcp@latest --http --port=8080

Registry Publishing

This package is listed on the official MCP Registry under the verified namespace io.onesource/mcp and on Glama. When releasing a new version, update both registries.

MCP Registry

First-Time Setup

1. Install Go

Download the installer for your platform from go.dev/dl and run it. Verify:

go version
2. Install mcp-publisher
go install github.com/modelcontextprotocol/registry/cmd/mcp-publisher@latest

If the Go module path has changed and the command fails, download the binary directly from the mcp-publisher GitHub releases page instead.

On Windows, add Go's bin directory to your PATH if the command isn't recognized:

$env:PATH += ";$env:USERPROFILE\go\bin"

Verify:

mcp-publisher --help
3. DNS Authentication (already done)

The onesource.io domain has a DNS TXT record that proves ownership of the io.onesource namespace. This is already configured — you don't need to redo it.

The record is on the root domain (onesource.io, not _mcp-registry.onesource.io):

v=MCPv1; k=ed25519; p=7D3U5rufgNXb/lH2MthTRZdDzEGeE7/Jvg8YkiArQc8=

You can verify it resolves:

nslookup -type=TXT onesource.io 8.8.8.8
4. Get the Private Key

Authentication requires the ed25519 private key in hex format that corresponds to the public key in the DNS record. Ask the team lead for this key — it's stored in the team's password manager / vault.

If you need to regenerate the keypair (this invalidates the current DNS record and requires updating it):

  1. Generate a new ed25519 keypair (e.g., openssl genpkey -algorithm Ed25519 -out key.pem)

  2. Extract the raw 32-byte private key seed and convert to hex:

 openssl pkey -in key.pem -outform DER | tail -c 32 | xxd -p -c 32
  1. Extract the public key in base64 for the DNS TXT record:

 openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64
  1. Update the DNS TXT record on onesource.io with the new public key:

 v=MCPv1; k=ed25519; p=<base64-public-key>
  1. Wait for DNS propagation before attempting to log in.

Publishing a New Version

Use the release script. Releases are normally run via the coordinated release script in the sre-services repo (scripts/release-mcp.mjs — see sre-services/RELEASING.md), which performs all of the steps below across both @one-source/api-mcp and @one-source/mcp in the correct order, including the server.json bump and mcp-publisher publish. The First-Time Setup above is still the prerequisite for the registry step. The manual steps below are the fallback for registry-only fixes or when the script can't run.

Every time you release a new npm version, update the MCP Registry:

  1. Publish to npm (the registry validates the package exists, so this must happen first):

 npm run build
 npm publish --access public
  1. Update server.json — set both version fields to match the new npm version:

 {
   "version": "x.y.z",
   ...
   "packages": [{ "version": "x.y.z", ... }]
 }

The mcpName field in package.json must be "io.onesource/mcp" and must match the name field in server.json. This is already set — don't remove it. 3. Authenticate (tokens expire, so do this each time):

 mcp-publisher login dns --domain onesource.io --private-key <ed25519-hex-private-key>
  1. Publish to the registry:

 mcp-publisher publish
  1. Verify:

 curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=onesource"

Glama

Glama auto-syncs from the GitHub repo daily. No manual steps needed after a release — just make sure changes are pushed to develop (the default branch). The glama.json file in the repo root controls ownership. Manual re-sync is available from the Glama admin panel after claiming the server.

Privacy Policy

Use of this extension connects to the OneSource API. See the OneSource Privacy Policy for details on how data is handled.

License

Apache 2.0 — see LICENSE for details.

Available Tools

27 tools
1s_allowance_liveA

Check ERC20 token allowance (approved spending amount) via the allowance(owner,spender) RPC call. Use this before executing transferFrom or to verify approvals. Returns the allowance amount in raw token units.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesToken owner address
spenderYesApproved spender address
tokenYesERC20 token contract address
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the burden. It discloses that the tool returns 'the allowance amount in raw token units' and implies a read-only RPC call. Could be more explicit about lack of side effects, but sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose, second provides usage guidance and return format. Every sentence adds value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage guidance, and return format. Minor gap: could explicitly note that 'raw token units' means the smallest unit (e.g., wei), but still adequate for a simple read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents parameters. The description adds no additional parameter insights, but that is acceptable given baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Check' and resource 'ERC20 token allowance', and mentions the specific RPC method. It distinguishes from sibling tools like balance checks by focusing on allowances.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context: 'Use this before executing transferFrom or to verify approvals.' This tells the agent when to invoke the tool, though it does not explicitly list alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_block_by_numberA

Get full block details by block number via RPC. Returns transactions, gas used, miner, timestamp, and other header fields. Accepts decimal (e.g. "21000000") or hex (e.g. "0x1406F40") block numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesBlock number — decimal (e.g. "21000000") or hex (e.g. "0x1406F40")
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Mentions it's via RPC and lists returned fields (transactions, gas, miner, timestamp). However, no annotations provided; lacks disclosure on auth needs, rate limits, or error handling (e.g., invalid block number).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first states purpose and returns, second specifies number format. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers purpose, parameters, and return fields for a simple block detail tool. Lacks mention of output schema, but not critical given its straightforward nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and schema descriptions already detail both parameters. Description adds minor clarification on number format (decimal or hex) but doesn't go beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it gets full block details by block number via RPC, listing key return fields. Distinguishes from sibling '1s_block_number' which likely returns only the current block number.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly for retrieving block details, but no explicit when-to-use vs alternatives or prerequisites. Could compare to other tools like '1s_tx_details_live' for transaction-level queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_block_numberA

Get the latest block number for a network. Returns the current chain head as a hex-encoded value. Use 1s_network_info to also get chain ID and gas price in the same call.

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions the return format (hex-encoded) but does not disclose any behavioral traits like permission requirements, side effects, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no fluff. All information is relevant and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description covers the core functionality and provides an alternative. Could mention default network but schema covers it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, including a description for the parameter. Description adds no new info beyond stating it's for a network. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'latest block number', specifying it returns a hex-encoded value. It distinguishes from siblings like 1s_network_info and 1s_block_by_number.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear alternative: 'Use 1s_network_info to also get chain ID and gas price in the same call,' guiding when to choose this tool over a sibling. No explicit when-not-to-use, but strong guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_chain_idA

Get the EIP-155 chain ID for a network as a hex-encoded value. Use this to verify the network before signing transactions. Use 1s_network_info to get chain ID, block number, and gas price together.

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description solely handles transparency. It mentions the output is hex-encoded, but does not disclose error handling, side effects, or limitations. For a simple read-only query, it is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The primary action is stated first, followed by usage guidance. Excellent efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with low complexity (one optional parameter, no output schema), the description covers purpose, usage context, and a direct alternative. Minor omission: could explicitly state return type as a string, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the 'network' parameter already described. The description adds 'hex-encoded value' which is not parameter-specific. No additional parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('EIP-155 chain ID'), and the output format ('hex-encoded value'). It distinguishes from sibling '1s_network_info' which provides additional data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a specific use case ('verify the network before signing transactions') and explicitly names the alternative '1s_network_info' for more comprehensive data. It lacks explicit 'when not to use' but provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_contract_codeA

Get the deployed bytecode of a contract via eth_getCode. Returns '0x' for EOA (non-contract) addresses. Bytecode can be very large for complex contracts. Prefer 1s_proxy_detect or 1s_contract_info_live for type checks without fetching full bytecode.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address (0x...)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses return behavior ('0x' for EOA), large bytecode potential, and method used. Lacks details on default network or error handling, but sufficient for basic understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no fluff; each sentence adds essential value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key aspects: purpose, method, return for EOAs, and caveat about large bytecode. Does not explicitly state that bytecode is a hex string, but implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already covers both parameters with descriptions; description adds no new parameter-level meaning but provides helpful context on bytecode size and alternatives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it retrieves deployed bytecode via eth_getCode, distinguishes from sibling tools by mentioning alternatives for type checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises when to use and when to prefer alternatives (1s_proxy_detect, 1s_contract_info_live), providing context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_contract_info_liveA

Detect contract type and supported interfaces via eth_getCode and ERC165 supportsInterface. Returns detected standards (ERC20, ERC721, ERC1155, ERC165).

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address (0x...)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It reveals the underlying methods (eth_getCode, supportsInterface) and return values, but does not address error states (e.g., non-contract address), side effects (read-only), or rate limits. The description is moderately transparent but lacks completeness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with action and key details. No redundant information; every word contributes clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and lack of output schema, the description covers the core functionality well. It could be improved by noting the return format (e.g., array of strings) or behavior for non-contract addresses, but overall it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. The description adds minimal value by mentioning the detection mechanism, but does not elaborate on parameter behavior beyond schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: detect contract type and supported interfaces via specific methods (eth_getCode, ERC165 supportsInterface). It lists returned standards (ERC20, ERC721, ERC1155, ERC165), distinguishing it from siblings that query specific token balances or raw code.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for contract standard detection but provides no explicit guidance on when to use this tool over alternatives like 1s_erc20_balance_live or 1s_contract_code. No when-not or exclusion criteria mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_ens_resolveA

Resolve ENS names to addresses (forward) or addresses to ENS names (reverse). Accepts either a .eth name or a 0x address. Only works on networks with ENS registry deployed (mainnet, sepolia).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesENS name (e.g. 'vitalik.eth') or address (0x...) for reverse lookup
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully explain behavior. It identifies forward and reverse resolution, input formats, and network restrictions. Yet it omits details on return values, error handling (e.g., ENS not found), or potential side effects, leaving some behavioral uncertainty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, directly addressing purpose, input, and constraints. No unnecessary words or repetition, making it easy to parse and front-loading critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (2 params, no nested objects), the description covers primary functionality. However, it lacks details on output format or behavior on failed lookups (e.g., invalid ENS). Additionally, the network discrepancy between schema and description reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema covers both parameters with descriptions, the description contradicts the schema by restricting networks to 'mainnet, sepolia' while the schema includes 'avax' as an enum value. This inconsistency undermines clarity and could mislead an agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resolves ENS names to addresses and vice versa, specifying accepted input formats (.eth or 0x) and supported networks. It distinguishes itself from sibling tools, none of which offer ENS resolution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description sets clear context by stating it 'Only works on networks with ENS registry deployed (mainnet, sepolia)', which guides when to use the tool. However, it does not explicitly mention when not to use it or provide alternative tools, though no sibling tool duplicates this functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_erc1155_balance_liveA

Get real-time ERC1155 token balance via balanceOf(address,uint256) RPC call. Returns the raw balance as a numeric string.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesWallet address to check balance for
contractYesERC1155 contract address
token_idYesToken ID (numeric string)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description states it is 'real-time' and uses an RPC call, implying read-only behavior, but does not disclose error conditions, rate limits, or what happens if the token does not exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no unnecessary words, perfectly sized for the functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple balance query with complete input schema; mentions output format (numeric string) despite no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3; description adds no additional parameter meaning beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it gets real-time ERC1155 token balance via specific RPC call and returns raw balance as numeric string, distinguishing it from siblings like ERC20 or ERC721 tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives; the description implies use for ERC1155 balance queries but does not mention exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_erc20_balance_liveA

Get real-time ERC20 token balance directly from the blockchain via balanceOf. Use this for pre-transaction checks or when zero indexing delay is needed. Returns raw token units (divide by 10^decimals); non-standard tokens may return empty name/symbol.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesWallet address to check balance for
tokenYesERC20 token contract address
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses that balances are returned as raw token units (divide by 10^decimals) and that non-standard tokens may return empty name/symbol. Since no annotations are provided, the description carries the full burden and offers useful behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasteful words; the first sentence states the main purpose, the second adds usage guidance and important notes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple balance lookup tool with three parameters, no output schema, and no annotations, the description provides sufficient information for an agent to understand the tool's purpose, usage, key behavioral details, and parameter effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter, but the description adds meaning by explaining the real-time nature, the balanceOf method, and the decimal conversion note, going beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get real-time ERC20 token balance directly from the blockchain via balanceOf' with a specific verb and resource, clearly distinguishing it from sibling tools like 1s_erc1155_balance_live.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using the tool for 'pre-transaction checks or when zero indexing delay is needed,' providing clear context but not explicitly naming alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_erc20_transfers_liveA

Query ERC20 Transfer(from, to, value) event logs via eth_getLogs directly from the node. Filter by token contract and/or wallet address. Block params are hex-encoded (e.g. 0x1234). Returns decoded transfer events with sender, recipient, and value. WARNING: Keep block ranges small (10 blocks or fewer) to avoid huge responses. Omitting from_block/to_block queries only the latest block.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNoERC20 token contract address
walletNoWallet address to filter transfers
from_blockNoStart block in hex (e.g. 0x1234)
to_blockNoEnd block in hex
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full transparency burden. It discloses the method (eth_getLogs), return format (decoded events), and warns about large responses. It doesn't mention rate limits or permissions, but the warning adds value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences that front-load the purpose, then add filtering, encoding, and warnings. No redundant or irrelevant content; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains return values (sender, recipient, value) and covers all parameters implicitly. The block range warning compensates for potential performance issues. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds meaning: block params are hex-encoded, omission queries latest block, and the warning about small ranges. This goes beyond the schema's type/pattern descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it queries ERC20 Transfer event logs, a specific verb-resource combination. It distinguishes by mentioning filtering by token or wallet, setting it apart from sibling tools that handle other ERC types or blockchain data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use (filtering by token/wallet, hex blocks) but doesn't explicitly contrast with alternatives like 1s_events_live. However, the block range warning and default behavior (latest block) give clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_erc721_tokens_liveA

Enumerate ERC721 tokens owned by an address via ERC721Enumerable. Only works for contracts that implement the Enumerable extension. Returns token IDs owned by the address.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesWallet address to enumerate tokens for
contractYesERC721 contract address
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the critical behavioral trait (only works with ERC721Enumerable) and that it returns token IDs. It could mention error handling or rate limits, but the key limitation is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the main action, and no extraneous information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the return value adequately. It covers the essential condition for use (Enumerable) but could mention potential pagination or output format. Given no output schema, this is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add parameter-specific meaning beyond the schema, but it does mention the return value (token IDs) which provides context for the output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Enumerate' and the resource 'ERC721 tokens owned by an address'. It specifies the mechanism (via ERC721Enumerable) and distinguishes from sibling tools like 1s_nft_owner_live by noting the extension requirement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the constraint that the tool only works for contracts implementing the Enumerable extension, providing clear context. However, it does not name specific alternative tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_estimate_gasA

Estimate gas required for a transaction via eth_estimateGas. Use this before sending transactions to set appropriate gas limits. Returns the estimated gas as a hex value; reverts return the revert reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesEthereum address (0x...)
dataNoABI-encoded call data (hex)
fromNoSender address
valueNoETH value in wei (hex)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses that the return is a hex value and that reverts return the revert reason. It does not cover potential side effects or authorization needs, but given the tool is a read-only estimate, the description is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences. It is front-loaded with the purpose and immediately useful usage guidance. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the return format (hex) and behavior on revert. Given no output schema, this is sufficient. It could mention that the estimate is for the current state and may vary, but overall it covers the essential context for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter described. The description does not add new parameter-level meaning; it only adds a note about return value. Baseline 3 is appropriate as the schema already documents parameters well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool estimates gas via eth_estimateGas. It specifies the resource (transaction gas) and the action (estimate). This distinguishes it from siblings like 1s_simulate_call which executes a call, and other live query tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly recommends using this tool before sending transactions to set gas limits. It also notes that reverts return the revert reason. However, it does not mention when not to use it or provide alternatives (e.g., when to use simulate_call instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_events_liveA

Query raw event logs via eth_getLogs directly from the node. Filter by contract address and/or topic0 (keccak256 hash of event signature, e.g. Transfer(address,address,uint256)). Block params are hex-encoded (e.g. 0x1234). Returns raw log entries with topics, data, and block context. WARNING: Keep block ranges small (10 blocks or fewer) to avoid huge responses. Always specify a contract address when possible. Omitting from_block/to_block queries only the latest block.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractNoContract address to filter
topicNoEvent topic0 hash (0x...)
from_blockNoStart block in hex (e.g. 0x1234)
to_blockNoEnd block in hex
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses warning about large responses, describes output format (raw log entries with topics/data/block context), and mentions hex encoding. Does not cover error conditions or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sentences are purposeful and front-loaded with purpose. Some redundancy in block range warnings, but overall concise for the detail provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all key aspects: what it does, filters, block range behavior, network selection, output shape, and performance warning. No output schema but description sufficiently describes return values. Minor gap: no mention of handling empty results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but description adds value: explains topic0 as keccak256 hash with example, clarifies block params are hex-encoded. This goes beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Verb 'Query' plus resource 'raw event logs via eth_getLogs' clearly states purpose. No confusion with sibling tools like 1s_tx_receipt or 1s_block_by_number because it uniquely targets event logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises keeping block ranges small, specifying contract address, and explains default behavior when from/to_block omitted. Lacks explicit when-not-to-use or comparison to siblings, but provides concrete usage constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_multi_balance_liveA

Get ETH and multiple ERC20 balances in a single batched RPC call. Use this to check a wallet's holdings across multiple tokens efficiently. Individual token errors are returned per-token without failing the entire request.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address (0x...)
tokensNoComma-separated ERC20 contract addresses
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it is a batched call, efficient, and that individual token errors do not fail the entire request. No annotations are provided, so the description carries the burden; it does not mention authorization or rate limits, but read-only behavior is inferred.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no wasted words, front-loaded with the primary purpose. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not explain the response structure, but it does address error handling. It differentiates well from sibling tools. Could mention default network or required parameters, but schema already covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 3 parameters have schema descriptions covering 100%, so the description adds minimal extra meaning beyond the schema itself. It does not detail the return format or data types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets ETH and multiple ERC20 balances in a single batched RPC call, and distinguishes it from single-token balance tools like 1s_erc20_balance_live.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says to use it to check a wallet's holdings across multiple tokens efficiently, implying a multi-token scenario. It mentions error handling behavior but does not explicitly name alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_network_infoA

Get basic network information: chain ID, latest block number, and current gas price. Use this to verify which chain you are connected to or to check current gas conditions. Returns hex-encoded values; gas price is in wei.

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, but the description discloses that returned values are hex-encoded and gas price is in wei. This goes beyond simple purpose. However, it does not mention that the tool is read-only (implied) or provide details on error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, with no redundant information. It front-loads the core purpose and adds usage guidance and format details efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately covers the return values and their encoding. It lacks an explicit structure (e.g., JSON keys) but is sufficient for an agent to understand what to expect. The tool's simplicity (1 optional param) means less risk of incompleteness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with enum and description for the 'network' parameter. The description adds context by specifying the outputs (chain ID, block number, gas price), which helps the agent understand what values are returned for a given input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'basic network information' with specific outputs (chain ID, latest block number, current gas price). This distinguishes it from siblings like 1s_chain_id which only returns chain ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases: 'verify which chain you are connected to' and 'check current gas conditions'. However, it does not mention when to use alternative tools (e.g., 1s_chain_id for just chain ID), leaving some room for ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_nft_metadata_liveA

Fetch NFT metadata directly from the blockchain via tokenURI/uri RPC call. Resolves all URI formats: ipfs://, ar://, data: URIs, bare CIDs, and ERC1155 {id} templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractYesNFT contract address
token_idYesToken ID (numeric string)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden. It discloses that it makes a direct RPC call and resolves various URI formats, giving good insight into behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. The description is front-loaded with the main action and details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description does not hint at the structure of returned metadata. It is adequate for a simple fetch but could note what the response contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described. The description adds context about URI resolution but does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetch NFT metadata') and the resource ('blockchain via tokenURI/uri RPC call'). It distinguishes from sibling tools by specifying metadata retrieval, unlike owner or balance tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing NFT metadata, but lacks explicit guidance on when not to use it or mention of alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_nft_owner_liveA

Get the current NFT owner via ownerOf(tokenId) RPC call. Only works for ERC721 tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractYesNFT contract address
token_idYesToken ID (numeric string)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool makes an RPC call (ownerOf) and works only for ERC721. However, it does not detail behavior on errors (e.g., nonexistent token, non-ERC721 contract), idempotency, or rate limits. With no annotations, the description partially covers transparency but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no unnecessary words. It front-loads the key action and adds the critical limitation in the second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks information about the return value (expected to be an address) and does not mention default network behavior (network parameter is not required, but no default is stated). Error handling is not addressed. For a simple tool, this is adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so each parameter is already well-defined. The tool description adds only that the call uses tokenId, which is redundant. Baseline 3 applies; no additional semantic value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the current NFT owner via ownerOf(tokenId) RPC call.' It specifies the supported standard (ERC721), which distinguishes it from similar tools like 1s_erc1155_balance_live or 1s_nft_metadata_live.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives (e.g., 1s_erc721_tokens_live). It only mentions the ERC721 constraint, which is a limitation but not usage advice. No mention of prerequisites or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_nonceA

Get the transaction count (nonce) for an address via eth_getTransactionCount. Use this to set the correct nonce when constructing transactions. Returns the count as a hex value.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address (0x...)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool uses a read operation (eth_getTransactionCount) and returns a hex value. It does not mention rate limits, authentication needs, or other behavioral nuances, but for a simple read call it is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences front-loaded with the action and purpose. Every sentence adds value with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description mentions the return format (hex value). It explains the purpose (setting nonce for transactions) adequately. Could be slightly more detailed about the role of nonce, but overall it is complete for a simple query tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%; both parameters have descriptions (address pattern, network enum). The tool description adds no additional parameter-specific meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the transaction count (nonce) for an address' and specifies the method 'via eth_getTransactionCount'. It is a specific verb+resource combination that distinguishes it from sibling tools like 1s_tx_details_live or 1s_block_number.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to set the correct nonce when constructing transactions', which gives clear guidance on when to use the tool. However, it does not mention when not to use or list alternative tools for similar purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_pending_blockA

Get the current pending block from the mempool. Use this to see transactions waiting for inclusion. WARNING: Response can be very large (1MB+) on mainnet as it includes all pending transactions. Prefer 1s_network_info for chain status or 1s_tx_details_live for specific transactions. Not all nodes expose pending block data; results vary by RPC provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description bears full responsibility. It warns about large response size (1MB+) and provider variability, which are key behavioral traits. However, it does not explicitly state that this is a read-only operation, a minor omission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short (two sentences plus a warning) and front-loaded with purpose. No unnecessary information; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one optional parameter, no output schema). The description covers purpose, usage context, alternatives, and critical warnings. No missing information given the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (network parameter with enum and description). The description does not add extra meaning beyond the schema, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get the current pending block from the mempool. Use this to see transactions waiting for inclusion.' It uses specific verb 'get' and resource 'pending block', and distinguishes from siblings by recommending alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises when to use (to see pending transactions), when not to (prefer other tools for status or specific txs), and warns about large response and node variability. This covers both usage and exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_proxy_detectA

Detect if a contract is a proxy and read its implementation address. Checks EIP-1967 (transparent/UUPS/beacon) storage slots. Returns the proxy type, implementation address, and admin if applicable.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address (0x...)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden. It mentions checking EIP-1967 storage slots and returns proxy type, implementation, and admin. This implies a read-only operation, though not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and no extraneous information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While no output schema exists, the description mentions return fields (proxy type, implementation, admin). It lacks details on error handling or non-proxy behavior, but overall provides sufficient context for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds context about what the tool does with the parameters (detects proxy by checking specific storage slots). This adds value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool detects proxy contracts and reads implementation address, specifying EIP-1967 standards. It distinguishes from siblings (no other proxy detection tool exists).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool's purpose, implying when to use it (to check if a contract is a proxy and get implementation). No alternatives or exclusions provided, but none are needed as it's the only proxy-related tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_report_bugA

Report a bug or issue to the OneSource team. Use when a tool returns an unexpected error or when the user asks to report a problem. Free, no payment required.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesWhat went wrong — describe the bug, what you expected, and what actually happened.
tool_nameNoThe MCP tool that produced the error (e.g. 1s_network_info, 1s_erc20_balance_live).
error_messageNoThe error message or relevant output from the failed tool call.
severityNoBug severity: low (cosmetic), medium (degraded function), high (feature broken), critical (server crash or data loss).
networkNoThe blockchain network involved, if applicable (e.g. ethereum, sepolia, avax).
steps_to_reproduceNoSteps to reproduce the issue, if known.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It adds the behavioral note 'Free, no payment required' but does not disclose response time, confirmation, or side effects. Adequate for a simple bug-report tool but could mention acknowledgment or storage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, efficient and front-loaded: explicitly states purpose, usage context, and one behavioral trait. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with no output schema. Description covers when to use and what to provide (via schema). Complete for its purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no additional parameter-level meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'report' and the resource 'bug or issue'. It distinguishes from siblings by being the only tool dedicated to reporting issues, while all others are blockchain data tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'when a tool returns an unexpected error or when the user asks to report a problem'. No alternative or when-not-to-use is needed given the unique purpose among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_setup_checkA

Check OneSource MCP server health — version (current vs latest), authentication status (API key or x402), API connectivity, and setup instructions if anything is missing. Free, no authentication required. Call this first when troubleshooting.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the tool is free and requires no authentication, implying read-only behavior. However, it does not explicitly state it has no side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences. Every sentence provides useful information with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers the tool's purpose, behavior, and usage recommendations. No output schema exists, but the description adequately explains what checks are performed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is 100%. Description adds no parameter-specific information, but none is needed. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks server health, including version, authentication, and connectivity. This verb+resource combination distinguishes it from sibling tools which are specific blockchain operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Call this first when troubleshooting' and mentions it's free with no auth required. Provides clear when-to-use context, but no explicit exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_simulate_callA

Simulate a contract call via eth_call without sending a transaction. Use this to preview call results, decode return data, or check for reverts before sending. Returns the raw hex result or revert reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget contract address
dataYesABI-encoded call data (hex)
fromNoSender address for msg.sender context
valueNoETH value in wei (hex)
gasNoGas limit (hex)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description discloses that this is a simulation (no transaction sent) and returns 'raw hex result or revert reason.' It adequately describes behavior beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all essential. Front-loaded with the core action. No redundancy or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity and lack of annotations, the description covers purpose, usage context, and return value. No output schema, but the return description is adequate. Could mention more about error behavior or gas costs, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for all six parameters. The description does not add additional meaning beyond the schema except for mentioning the return format. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Simulate a contract call via eth_call without sending a transaction' and lists specific use cases: preview call results, decode return data, check for reverts. It distinguishes from sibling tools such as balance or transfer queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use this to preview call results, decode return data, or check for reverts before sending.' Implies usage context but does not mention alternatives or when not to use. Sibling tools include more specific read functions that could be preferred for standard queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_storage_readA

Read a raw storage slot from a contract via eth_getStorageAt. Use this for low-level state inspection (e.g. reading proxy implementation slots, packed storage). Slot must be a hex-encoded 32-byte value.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractYesContract address to read from
slotYesStorage slot (hex-encoded, e.g. 0x0)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It correctly notes the slot format constraint and the underlying method, but it does not explicitly state that it is a read-only operation or describe any side effects. While the read-only nature is implied, a clearer statement would help.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no superfluous words. The description is front-loaded with the core purpose and supported by usage guidance in the second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 parameters, no output schema, no annotations), the description covers the essential aspects. However, it omits details about the return format (a 32-byte hex string) and the default network, which would enhance completeness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds value by reinforcing that the slot must be a 32-byte hex-encoded value, which is more specific than the schema's generic 'hex-encoded' description. This helps ensure correct parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool reads a raw storage slot via eth_getStorageAt, providing a specific verb and resource. It effectively distinguishes from siblings like 1s_contract_code and 1s_simulate_call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using this tool for low-level state inspection with examples (proxy implementation slots, packed storage). However, it does not explicitly state when not to use it or compare to alternatives, which would further aid selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_total_supply_liveA

Get the total supply of an ERC20 or ERC721 token via totalSupply() RPC call. Use this for real-time supply data. Returns raw token units for ERC20 (divide by 10^decimals) or total count for ERC721.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractYesToken contract address
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It explains real-time nature and raw units, but does not disclose potential failures (e.g., non-totalSupply contract) or return format details. Adequate for a simple read, but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with key verb and resource. Every sentence adds value without redundancy. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (2 params, no output schema), the description covers purpose, usage, and basic behavioral hints. It mentions raw units and division, but could clarify return type (big integer). Still fairly complete for its scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers both parameters with 100% description coverage. The description adds context about the RPC call but no additional semantics beyond schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets total supply via totalSupply() RPC call for ERC20 or ERC721 tokens. It specifies the resource (total supply) and distinguishes from sibling tools that focus on balances or transfers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Use this for real-time supply data,' providing clear context. While it doesn't list when not to use or alternatives, the sibling list contains no other total supply tools, so usage is implied and clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_tx_details_liveA

Get full transaction data and receipt directly from the RPC node. Returns both transaction fields and receipt (status, gas used, logs).

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesTransaction hash (0x...)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states what is returned (transaction fields and receipt) and implies a read operation, but does not disclose whether it is read-only, idempotent, or any limitations (e.g., rate limits, authentication). Adequate but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose and clearly describe the return content. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description provides a reasonable overview of return fields (transaction fields and receipt with status, gas used, logs). It omits a full list but is sufficient for an agent. Could be improved by noting it is a live RPC call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema; it merely mentions 'hash' and 'network' without additional context or usage tips.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves 'full transaction data and receipt' directly from the RPC node, using specific verbs and resources. It distinguishes itself from sibling '1s_tx_receipt' by including both transaction fields and receipt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing both transaction data and receipt, but does not explicitly contrast with sibling tools like '1s_tx_receipt' or provide when not to use. No alternative guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

1s_tx_receiptA

Get a transaction receipt via RPC. Returns status (1=success, 0=revert), gas used, logs, and contract address if deployment. Use 1s_tx_details_live for both transaction data and receipt together.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashYesTransaction hash (0x...)
networkNoBlockchain network: "ethereum" (default), "sepolia", "avax"

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that the tool returns status with numeric mapping, gas used, logs, and contract address. It mentions 'via RPC' implying network access, but does not elaborate on read-only behavior, idempotency, or rate limits. Some behavioral info is present but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and output summary. Each sentence adds value: first states purpose and return fields, second provides usage guidance. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with two parameters and no output schema. Description covers what the tool does, what it returns, and how it relates to a sibling. No major gaps given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. The tool description adds no additional meaning to the parameters themselves, only describes output. Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states 'Get a transaction receipt via RPC' and lists specific return fields (status, gas used, logs, contract address). It also distinguishes from sibling tool 1s_tx_details_live, making purpose very clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance by suggesting when to use the alternative sibling tool (1s_tx_details_live) for combined data. However, it does not explicitly state when not to use this tool, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4/5.0
Disambiguation4/5

Most tools have distinct purposes, e.g., 1s_allowance_live vs 1s_erc20_balance_live, 1s_tx_details_live vs 1s_tx_receipt. Some overlap exists (e.g., 1s_network_info includes block number and chain ID) but descriptions guide usage clearly.

Naming Consistency4/5

All tools share the '1s_' prefix and use snake_case. Names are descriptive, though patterns vary (e.g., verb_noun in 1s_estimate_gas, noun_adjective in 1s_allowance_live). Minor inconsistency but overall readable.

Tool Count4/5

27 tools for an Ethereum RPC server is slightly above average but each covers a specific RPC endpoint or operation. The scope is broad, so the count is reasonable and not excessive.

Completeness5/5

The tool set covers nearly all important Ethereum interactions: balances, transactions, events, ENS, contract inspection, gas estimation, and more. A setup check and bug report tool add to completeness. No major gaps for the domain.

Maintenance

ActivityActive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A Bitcoin Ordinals MCP server with 24 tools covering inscriptions, runes, BRC-20 tokens, collections, rare sats, and marketplace data, aggregating Hiro, Ordiscan, and Magic Eden APIs with intelligent caching and automatic failover.
    78
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Read-only MCP server for Sui blockchain analytics with 44 tools covering wallets, DeFi, NFTs, token prices, transactions, fund tracing, pools, staking, Move decompilation, and MVR name resolution.
    18
    171
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for querying cryptocurrency portfolio data, transaction history, net worth, and historical snapshots across 20+ blockchains via the Octav API.
    14
    24
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/blockparty-global/1s-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server