Skip to main content
Glama

OpenPulsechain

Open-source analytics platform for PulseChain.

Live: openpulsechain.com · Dune: Bridge Analytics

Not affiliated with PulseChain, PulseX, or any related entity. Data is for informational purposes only — not financial advice.


What's included

Module

Description

Dashboard

16-page web app: Overview, DEX, Tokens, Bridge, Whales, Intelligence, Safety, Alerts, Smart Money, Leagues, Heart Law, Wallet Profiles, Token Safety, MCP/API, Privacy

Token Safety API

FastAPI with 25 public endpoints: safety scores, scam radar, deployer reputation, smart money, wallet analysis, leagues, bridge stats, funding trees

REST API

FastAPI with 12 endpoints: tokens, prices, history, pairs, market overview, safety proxies

MCP Server

Model Context Protocol server with 20 tools for AI assistants

Chrome Extension

Token safety scores, transaction guard, portfolio tracker, scam alerts

Indexers

23 Python cron jobs collecting on-chain data every 5-15 min

Dune

9 SQL queries + 20 visualizations for bridge analytics (Ethereum-side)

Related MCP server: Web3 Signals — Crypto Signal Intelligence

Features

Analytics Dashboard

  • Overview — PLS price, chain TVL, gas estimates, token prices table

  • DEX Analytics — PulseX daily volume, liquidity, top 30 trading pairs

  • Token Explorer — 2500+ browsable tokens with pagination, search, price history charts

  • Bridge Monitor — OmniBridge + Hyperlane: daily flows, cumulative net flow, whale alerts, TVL by token

  • Whale Tracker — Top holders, cross-token analysis, funding clusters, connection graph

  • Leagues — Holder tier rankings for PLS, PLSX, HEX, INC, updated every 6 hours

  • Heart Law — Educational AMM price simulator for PulseX pools

Security & Intelligence

  • Token Safety Scanner — Composite score (0-100, grade A-F) based on honeypot detection, contract analysis, LP health, holder concentration, token age

  • Scam Radar — Automated alerts for LP removals and whale dumps, scanning every 30 minutes

  • Deployer Reputation — Serial rugger detection: analyzes deployer's token history, dead token ratio

  • Smart Money Tracker — Large swaps on PulseX, top wallets by volume, auto-refresh every 60s

  • Wallet Profiler — Token holdings + swap activity for any address

  • Market Intelligence — AI-analyzed Twitter sentiment, risk conclusions, action detection

Chrome Extension

  • Transaction Guard — Intercepts swaps on PulseX, 9mm, Piteas and warns about risky tokens before signing

  • Safety Scanner — Browse all analyzed tokens with safety scores, grades, and sub-score details

  • Portfolio Tracker — Track wallet balances with sparkline charts

  • Scam Alerts — Real-time notifications for critical scam detections

Data

  • 2,500+ tokens discovered from PulseX Subgraph

  • 463K+ price records (daily, since May 2023)

  • 231K+ bridge transfers (OmniBridge + Hyperlane)

  • 100% sovereign token prices from PulseX derivedUSD — no CoinGecko dependency for PulseChain tokens

Architecture

PulseX Subgraph ──┐
DefiLlama API ────┤
PulseChain RPC ───┤──> Python Indexers ──> PostgreSQL (RLS)
Blockscout API ───┘                            │
                                     ┌─────────┼──────────┐
                                     │         │          │
                                React SPA  REST API   Safety API
                                     │                    │
                                Dashboard         safety.openpulsechain.com
                              16 pages + MCP      25 public endpoints
                                     │
                             Chrome Extension

Project Structure

/
  frontend/              # React dashboard (16 pages)
  api/                   # REST API FastAPI (tokens, prices, pairs)
  token_safety/          # Safety API FastAPI (scores, scam radar, deployer, smart money, leagues)
  indexers/              # 23 Python cron jobs (on-chain data collection)
  live_cache/            # Real-time token pool cache (DexScreener)
  mcp-server/            # MCP server for AI assistants (20 tools)
  extension/             # Chrome browser extension
  dune/                  # SQL queries for Dune Analytics
  docs/                  # Documentation

Getting started

git clone https://github.com/openpulsechain/openpulsechain.git
cd openpulsechain

Module

Setup

frontend/

npm install && npm run dev

indexers/

pip install -r requirements.txt + .env config

api/

pip install -r requirements.txt && uvicorn main:app

token_safety/

pip install -r requirements.txt && uvicorn main:app

mcp-server/

npm install && npm run build

extension/

npm install && npm run build → load dist/ in Chrome

Data sources

Data

Source

Access

Token prices (PulseChain)

PulseX Subgraph derivedUSD

Public

TVL, DEX volume

DefiLlama API

Public

Gas price, blocks

PulseChain RPC

Public

Bridge events (ETH-side)

Dune Analytics

Public (2500 credits/mo)

Bridge events (PLS-side)

PulseChain OmniBridge Subgraph

Public

Hyperlane transfers

Hyperlane Explorer API

Public

Contract analysis

PulseChain Scan API (Blockscout v2)

Public

Honeypot detection

FeeChecker contract (on-chain simulation)

On-chain

Token logos

PulseX CDN, Piteas GitHub, DexScreener

Public

License

MIT

Available Tools

28 tools
check-address-riskCheck Address AML RiskA
Read-onlyIdempotent

[PRO] Check if a wallet/contract address is flagged for AML risk, known exploits, phishing, or sanctions (OFAC). Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet or contract address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesChecked address
risk_levelYesRisk level: low, medium, high, critical
risk_scoreYesNumeric risk score (0-100)
flagsYesList of risk flags (e.g. sanctions, exploit, phishing)
detailsNoAdditional risk context

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare safe read-only behavior (readOnlyHint=true, destructiveHint=false, idempotentHint=true). Description adds value by noting the PRO nature and the API key requirement, which are important behavioral constraints not captured in annotations. No contradictions.

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, each essential. First states purpose and scope, second lists a key requirement. No redundant information. Front-loaded with most critical information.

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 has a simple interface (one parameter) and an output schema exists, the description provides sufficient context: what risks are checked, that it's a PRO feature, and API key needed. Could be improved by noting that results may include detailed flags or scores, but acceptable.

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 has one parameter 'address' with full description in schema (100% coverage). Description does not add any additional semantic meaning beyond what the schema provides, so 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?

Description clearly states the tool checks 'wallet/contract address' for specific risk categories: AML, exploits, phishing, sanctions. Verb 'check' and resource 'address' are precise. No sibling tool performs this function, so differentiation is inherent.

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?

Description mentions requirement for OPENPULSECHAIN_API_KEY, which is a usage prerequisite. However, it does not explicitly instruct when to use this tool over alternatives (e.g., other safety/risk tools), nor provides exclusions. Usage context is implied but not explicit.

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

get-bridge-statsGet Bridge StatsA
Read-onlyIdempotent

Get PulseChain bridge statistics: inflows, outflows, net flow over the last 7 days.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
inflow_usdYesTotal bridge inflows in USD over the last 7 days
outflow_usdYesTotal bridge outflows in USD over the last 7 days
net_flow_usdYesNet flow (inflow - outflow) in USD
dailyYesDaily bridge flow breakdown

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, nondestructive, and open world hints. The description adds the 7-day time window context, which is not covered by annotations, enhancing transparency without contradiction.

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 a single, well-structured sentence that front-loads the key information (what it does and the metric details) without any extraneous 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?

Given the tool's simplicity (no parameters, has output schema), the description fully covers the scope, specifying the metrics and time window. The output schema handles return value details.

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 and schema coverage is 100%, so the description is not required to explain parameters. Baseline 4 is appropriate as no additional parameter info is needed.

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 PulseChain bridge statistics, specifying inflows, outflows, net flow, and a precise time range ('last 7 days'), which uniquely identifies its purpose among sibling 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?

While no explicit 'when to use' guidance is given, the description clearly implies usage for bridge statistics, and there are no sibling tools covering bridge data, so confusion is minimal.

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

get-deployer-reputationGet Deployer ReputationA
Read-onlyIdempotent

[PRO] Get reputation score for a token deployer: how many tokens deployed, how many died (rug pattern detection). Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesDeployer wallet address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesDeployer address
reputation_scoreYesReputation score (0-100)
tokens_deployedYesTotal number of tokens deployed
tokens_deadYesNumber of tokens that died or were rugged
rug_patternYesWhether a rug pull pattern is detected

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, etc. The description adds the need for an API key and mentions rug pattern detection. It does not contradict annotations, but could disclose more about behavior (e.g., data freshness).

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 with only two sentences, front-loading the purpose and including a prerequisite. Every sentence adds value with no waste.

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 presence of an output schema, the description need not explain return values. It covers purpose and prerequisites, though it could elaborate on terms like 'died' for clarity. Overall adequate for a simple 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?

The schema already describes the address parameter with full coverage (100%). The description adds no additional semantic meaning beyond what is in the schema, 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 the tool's purpose with a specific verb ('Get reputation score') and resource ('token deployer'), and lists what the score includes (tokens deployed, how many died with rug pattern detection). This distinguishes it from sibling tools like check-address-risk.

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 mentions a prerequisite (OPENPULSECHAIN_API_KEY) but does not explicitly state when to use this tool over alternatives. The specificity of the tool's function implies its use case, but lacks explicit guidance.

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

get-funding-treeGet Funding TreeA
Read-onlyIdempotent

[PRO] Trace funding sources for a wallet: where did the money come from? (2-level depth, bridge/DEX interactions). Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet address to trace (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesRoot wallet address
depthYesTrace depth level
funding_sourcesYesArray of funding sources

TDQS

A4/5.0
Behavior4/5

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

The description adds information beyond annotations: requires an API key, and specifies the depth and type of interactions (bridges/DEXs). This complements the readOnlyHint and idempotentHint annotations effectively.

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 pack essential purpose, scope, and requirements with zero redundancy. Every word serves a purpose, making it highly efficient for an agent to parse.

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 presence of an output schema, return value details are unnecessary. The description covers purpose, depth, and authentication. An example or note on expected output structure would further enhance completeness.

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?

Parameter coverage is 100% via schema, and the description provides context for the address's role in tracing funds. However, no additional constraints or format details are added 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 it traces funding sources for a wallet, specifying 2-level depth and bridge/DEX interactions. This distinguishes it from sibling tools like get-wallet-transactions or get-tx-trace, which serve different purposes.

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 mentions a prerequisite (API key) but does not explicitly state when to use this tool versus alternatives. Given 26 sibling tools, comparative guidance would improve selection accuracy.

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

get-gasGet Gas PriceA
Read-onlyIdempotent

[PRO] Current PulseChain gas price in Gwei, block number, and base fee. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
gas_price_gweiYesCurrent gas price in Gwei
base_fee_gweiYesBase fee in Gwei
block_numberYesLatest block number

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark it as readOnly, idempotent, etc. Description adds that it requires an OPENPULSECHAIN_API_KEY, which is useful behavioral context beyond the structured fields. No contradictions.

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?

Single sentence conveying all essential information without redundancy. Every part serves a purpose.

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 zero parameters and an existing output schema, the description adequately specifies the return values (gas price in Gwei, block number, base fee) and the authentication requirement. No gaps.

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?

Input schema has no parameters, so schema description coverage is 100%. Description adds no extra parameter details, but with no parameters a baseline of 4 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?

Description clearly states the tool gets current PulseChain gas price in Gwei, block number, and base fee, with a specific verb and resource. It is distinct from sibling tools which focus on other 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 Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Only mentions required API key but no context on appropriate usage scenarios or exclusions.

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

get-holder-leaguesGet Holder LeaguesA
Read-onlyIdempotent

Get aggregated holder distribution tiers (poseidon/whale/shark/dolphin/squid/turtle) for a core PulseChain token.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesToken symbol

Output Schema

ParametersJSON Schema
NameRequiredDescription
symbolYesToken symbol
tiersYesArray of holder tiers

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive, idempotent, and open-world hints. The description adds value by specifying the aggregation tiers and the token restriction, providing behavioral context beyond annotations without contradiction.

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?

A single, clear sentence that is front-loaded with the core action and resource. No unnecessary words, earning its place efficiently.

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 the simple single-parameter tool with good annotations and an output schema, the description is complete enough. It covers the purpose and tier names without needing to explain return values.

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 a well-defined enum parameter. The description does not add extra meaning beyond what the schema provides, so a 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 verb 'Get' and the resource 'aggregated holder distribution tiers' with a specific list of tier names. It specifies the domain (core PulseChain token), distinguishing it from sibling tools like get-token-holders or get-holder-rank.

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?

No explicit guidance on when to use this tool versus alternatives. The description does not mention when not to use it or suggest other tools for similar queries, leaving the agent to infer context from sibling names alone.

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

get-holder-rankGet Holder RankB
Read-onlyIdempotent

[PRO] Get holder rank and tier for a wallet address across all tracked tokens. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesWallet address
ranksYesArray of holder rankings per token

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds only the API key requirement, which is useful but minimal behavioral context beyond annotations.

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 fluff. Efficiently conveys purpose and prerequisite without wasting 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?

With an output schema present, return values don't need explanation. The description covers purpose and API key prerequisite. However, it lacks context on when to use this tool among many similar siblings, but is adequate 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 coverage is 100% with a single parameter 'address' described as 'Wallet address (0x...)'. The description does not add any extra meaning beyond what the schema provides, earning the baseline score of 3.

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 holder rank and tier for a wallet address across all tracked tokens', which is a specific verb+resource combination. This distinguishes it from sibling tools like 'get-token-holders' that likely list holders for a token.

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 only notes '[PRO]' and 'Requires OPENPULSECHAIN_API_KEY' as prerequisites. No guidance on when to use this tool versus alternatives like 'check-address-risk' or 'get-wallet-balances'.

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

get-honeypotsGet Honeypot TokensB
Read-onlyIdempotent

List recently detected honeypot tokens on PulseChain.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (default 20, max 200)

Output Schema

ParametersJSON Schema
NameRequiredDescription
honeypotsYesArray of detected honeypot tokens

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds the temporal context 'recently detected', but does not disclose pagination, rate limits, or data freshness. Given annotations, the description provides marginal added value.

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?

The description is a single, efficient sentence that front-loads the action. It is concise but could be slightly expanded to include usage context without losing conciseness.

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 tool is simple with one parameter, rich annotations, and an output schema. However, the lack of usage guidelines and behavioral details beyond annotations reduces completeness for an agent selecting among siblings.

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 fully describes the 'limit' parameter with default and maximum values (100% coverage). The description does not add any additional semantic information about parameters beyond what is already in 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 'list' and the resource 'recently detected honeypot tokens on PulseChain'. This distinguishes it from sibling tools like get-scam-alerts or get-token-safety, which cover different scam or token safety aspects.

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?

No guidance is provided on when to use this tool versus alternatives such as get-scam-alerts. There is no mention of prerequisites, use cases, 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.

get-market-overviewGet Market OverviewA
Read-onlyIdempotent

Get PulseChain network overview: TVL, 24h volume, active tokens, top gainers/losers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
tvl_usdYesTotal value locked in USD
volume_24hYesTotal 24-hour volume in USD
active_tokensYesNumber of actively traded tokens
top_gainersYesTokens with largest 24h gains
top_losersYesTokens with largest 24h losses

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and openWorld. The description adds value by specifying the returned data (TVL, volume, etc.), providing context beyond the annotations.

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?

Single sentence, front-loaded with the action and resource, no unnecessary words. Every part contributes meaning.

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 parameterless tool with an output schema, the description fully captures what the tool returns and its purpose. No gaps.

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?

No parameters exist, so schema coverage is 100%. With zero params, a baseline of 4 is appropriate; the description does not need to add parameter info.

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 the PulseChain network overview and lists specific data points (TVL, volume, etc.), distinguishing it from sibling tools like get-top-pairs or get-top-tokens which focus on specific subsets.

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?

While no explicit when-not or alternatives are given, the description implies it's the first tool for a network summary. The context is clear, but lacks explicit guidance on when to use other tools.

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

get-opportunity-signalGet Opportunity SignalA
Read-onlyIdempotent

[PRO] Composite opportunity score (0-100) for a PulseChain token. Combines momentum, volume spike, buy pressure, safety, whale activity, and MC/liquidity fragility. Returns confidence level and graceful degradation for partial data. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
opportunity_scoreYesComposite score 0-100
gradeYesGrade: A, B+, B, C, D, F
direction_hintYesstrong_opportunity, bullish_momentum, neutral_positive, neutral, bearish_pressure, avoid
confidenceYeshigh, medium, low, insufficient_data
factorsYesIndividual factor scores
kill_signalsYesOverride signals that force score to 0
data_completenessYesfull, partial_no_history, safety_only, minimal

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate non-destructive, read-only, idempotent behavior. The description adds that it returns a confidence level and handles partial data gracefully, which is valuable context beyond the annotations.

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 efficiently convey purpose, components, and key features. No wasted words, and the most critical info is front-loaded in the first sentence.

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?

Output schema exists, so return format details are covered. The description explains the composite nature, graceful degradation, and authentication requirement. For a single-parameter tool, this is 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 coverage is 100% with one parameter 'address' fully described in the schema. The description does not add new parameter meaning, so baseline score 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 returns a composite opportunity score (0-100) for PulseChain tokens, combining six specific components like momentum and volume spike. This distinguishes it from siblings like get-token-safety or get-token-sentiment, which focus on individual aspects.

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 mentions the requirement for an API key and labels it as '[PRO]', indicating a paid tier. While it doesn't explicitly compare to siblings, the composite nature implies use for overall opportunity assessment. Some guidance on when not to use would improve clarity.

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

get-pair-analyticsGet DEX Pair AnalyticsA
Read-onlyIdempotent

[PRO] Detailed analytics for a PulseX trading pair: price, volume, liquidity, buy/sell ratio, price impact estimates, volatility, wash trading detection. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesPair contract address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pair_addressYes
price_usdYes
metricsYes
computedYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. Description adds value by noting the tool is '[PRO]' and requires an API key, plus mentions specific analytics like wash trading detection. No contradiction.

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 lists capabilities, second states prerequisite. 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?

Given single parameter, full schema coverage, annotations, and output schema existence, description adequately covers purpose and key behavioral context. Could mention that output schema provides detailed return structure, but not necessary.

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?

Only parameter 'address' is fully described in schema (100% coverage). Description does not add additional meaning beyond what schema 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?

Clearly states it provides 'detailed analytics for a PulseX trading pair' and lists specific metrics (price, volume, liquidity, etc.), distinguishing it from sibling tools like get-top-pairs or get-token-price.

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?

Includes prerequisite ('[PRO]', requires API key) but does not explicitly guide when to use this vs alternatives or when not to use it. Context implies it's for comprehensive pair analysis.

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

get-recent-swapsGet Recent DEX SwapsB
Read-onlyIdempotent

[PRO] Get recent large swaps on PulseX DEX. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
minutesNoLookback in minutes (default 60, max 1440)
min_usdNoMinimum swap USD value (default 1000)

Output Schema

ParametersJSON Schema
NameRequiredDescription
swapsYesArray of recent swaps

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds context that only 'large' swaps are fetched and requires an API key, but does not disclose rate limits or response details.

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?

The description is a single sentence with a necessary note about the API key. It is efficiently written but could be slightly more structured.

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 tool is simple with two optional parameters and an output schema. The description is minimally sufficient but lacks contextual details such as typical use cases or data freshness.

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 the input schema fully documents parameters. The description adds no extra meaning beyond the schema definitions.

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', the resource 'recent large swaps', and the platform 'PulseX DEX'. It differentiates from sibling tools that focus on wallets, tokens, or specific metrics.

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 guidance on when to use this tool versus alternatives like 'get-wallet-swaps' or 'get-smart-money-feed'. It only mentions an API key requirement and PRO status.

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

get-scam-alertsGet Scam AlertsA
Read-onlyIdempotent

[PRO] Get real-time scam radar alerts: honeypots, LP removals (rug pulls), whale dumps. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_typeNoFilter by alert type (omit for all)
limitNoNumber of alerts (default 20, max 200)

Output Schema

ParametersJSON Schema
NameRequiredDescription
alertsYesArray of scam alerts

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds context: real-time, requires API key. No contradictions.

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?

Single sentence with essential information, no fluff. Front-loaded with purpose and includes requirement.

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 output schema exists and annotations are present, description covers key aspects: purpose, real-time nature, and API key requirement. Slightly more detail on result structure could elevate, but 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?

Input schema has 100% coverage with clear descriptions for alert_type and limit. Description does not add new meaning beyond schema, but provides context for the parameter values.

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 gets real-time scam alerts for specific types (honeypots, LP removals, whale dumps), differentiating it from siblings like get-honeypots and get-whale-alerts.

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?

Description includes requirement for API key and PRO tier, but does not explicitly guide when to use vs alternatives. However, the specific alert types imply a focused use case.

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

get-smart-money-feedGet Smart Money FeedA
Read-onlyIdempotent

[PRO] Get smart money / whale activity feed: large wallet movements and recent swaps on PulseX. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoLookback period in hours (default 24, max 168)
min_usdNoMinimum swap value in USD (default 1000)

Output Schema

ParametersJSON Schema
NameRequiredDescription
movementsYesArray of smart money movements

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnly, destructive, idempotent, and openWorld hints. The description adds context about PulseX and whale movements, but no additional behavioral details (e.g., rate limits, data freshness) beyond what annotations provide.

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 a single concise sentence with an additional requirement line. It is front-loaded, with no wasted words, and every sentence serves a clear purpose.

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 that an output schema exists (context signals indicate 'has output schema: true'), the description does not need to detail return values. It adequately covers the tool's function and requirements, though it could mention list structure or pagination if needed.

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% and the parameters are well-documented in the schema. The description does not add extra meaning beyond what the schema already provides for hours and min_usd.

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

Purpose4/5

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

The description clearly states that the tool retrieves smart money/whale activity feed for large wallet movements and swaps on PulseX. It is specific about the resource and action, though it does not explicitly differentiate from the similar sibling 'get-whale-alerts'.

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 mentions it is a '[PRO]' tool and requires an API key, but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. The purpose is implied but not structured as usage advice.

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

get-token-historyGet Token Price HistoryA
Read-onlyIdempotent

Get historical price data (OHLCV) for a PulseChain token. Limited to 30 days without API key; Pro unlocks full history.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address (0x...)
daysNoNumber of days of history (default 30, max 1000)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesToken contract address
daysYesNumber of days returned
historyYesArray of OHLCV candles

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context about the API key restriction on historical depth, which is not captured by annotations. No contradiction.

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 wasted words. The key functional purpose and limitation are front-loaded in the first sentence. Every part 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?

Given the simple parameters (2, one required) and presence of an output schema, the description is complete. It explains what data is returned (OHLCV) and the crucial access limitation, which fully supports agent decision-making.

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?

Input schema covers both parameters with descriptions (100% coverage). The description adds extra meaning by linking the days parameter to the API key limitation, which is beyond what the schema provides. This helps the agent understand practical constraints.

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 retrieves historical price data (OHLCV) for a PulseChain token, using a specific verb and resource. It distinguishes itself from sibling tools like get-token-price (likely current price) by specifying 'history' and including the OHLCV acronym.

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 context on usage limitations: 30-day history without an API key, full history with Pro. It does not explicitly state when not to use or name alternatives, but the limitation itself guides appropriate usage scenarios.

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

get-token-holdersGet Token HoldersA
Read-onlyIdempotent

[PRO] Top holders of a PulseChain token with balances and ownership percentages. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address (0x...)
limitNoNumber of holders to return (default: 50, max: 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
token_addressYes
countYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds value by stating it requires an API key and is a [PRO] feature, plus clarifies it returns specific data (balances and percentages). No contradiction with annotations.

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 a single, front-loaded sentence that directly states the tool's purpose and a key prerequisite. Every word contributes meaning with no redundancy or filler.

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 data retrieval tool with an output schema, the description adequately explains what data is returned (top holders with balances and percentages) and notes the API key requirement. It could mention the default limit behavior, but this is covered in the schema. Overall sufficient for 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?

Schema coverage is 100% with clear descriptions for both parameters (address and limit). The description does not add any extra meaning about parameters but does not need to, as the schema fully documents them. Baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it returns 'Top holders' with 'balances and ownership percentages' for a PulseChain token, specifying the verb 'get' and resource 'token holders'. It adds context with the [PRO] marker and API key requirement. However, it does not explicitly differentiate from sibling tools like get-holder-rank or get-holder-leagues, which also deal with holders.

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 mentions the API key requirement but provides no guidance on when to use this tool versus alternatives (e.g., get-holder-rank). It lacks any when-to-use or when-not-to-use instructions, leaving the agent to infer usage context.

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

get-token-infoGet Token InfoA
Read-onlyIdempotent

Get full details for a PulseChain token: name, symbol, decimals, liquidity, volume, holder count.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesToken contract address
nameYesToken name
symbolYesToken ticker symbol
decimalsYesToken decimal places
total_liquidity_usdYesTotal liquidity in USD
volume_24hYes24-hour trading volume in USD
holder_countYesNumber of token holders

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already convey read-only, non-destructive, idempotent, and open-world behavior. The description adds the return fields, which provides some behavioral context (no mutations), but does not disclose any additional traits like rate limits or authentication needs. It adds marginal value beyond annotations.

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 a single sentence that conveys the purpose efficiently. It is front-loaded with the verb and resource, and lists specifics without unnecessary elaboration. 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?

Given low complexity (1 parameter, simple output schema), the description adequately covers the tool's purpose and return values. The presence of an output schema reduces the need to explain return details. It is complete for an agent to select and invoke.

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% for the single parameter 'address', which is already well-documented in the schema. The description does not add new meaning to the parameter; it merely repeats the purpose of the tool. 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 specifies the verb 'Get' and the resource 'full details for a PulseChain token', listing specific fields (name, symbol, decimals, liquidity, volume, holder count). This distinguishes it from sibling tools that focus on individual aspects like price or holders.

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 lacks explicit guidance on when to use this tool over alternatives. It implies it is for comprehensive token details, but does not state exclusions or provide when-not-to-use context. The phrase 'full details' is implicitly comparative but not actionable.

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

get-token-liquidityGet Token LiquidityB
Read-onlyIdempotent

Get detailed liquidity breakdown for a token: all DEX pairs, volumes, and reserves.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesToken contract address
total_liquidity_usdYesTotal liquidity across all pairs in USD
pairsYesArray of liquidity pairs

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the safety profile is clear. The description adds context about the data returned (pairs, volumes, reserves) but does not go beyond what annotations already imply. With annotations, the bar is lower, and the description provides modest added 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?

The description is exceptionally concise at one sentence and 13 words. It is front-loaded with the main purpose and contains 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?

For a simple tool with one parameter, annotations, and an output schema (presumably complete), the description adequately conveys the return data. It specifies that it returns all DEX pairs, volumes, and reserves, which is sufficient for most use cases.

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 fully describes the single parameter 'address' with 100% coverage. The description does not add any extra meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it retrieves a detailed liquidity breakdown for a token, specifying DEX pairs, volumes, and reserves. It distinguishes from sibling tools like get-token-info or get-pair-analytics by focusing on liquidity specifics, though not explicitly differentiating.

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 guidance on when to use this tool over alternatives, nor does it mention any context or exclusions. It simply states what the tool does without usage direction.

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

get-token-priceGet Token PriceA
Read-onlyIdempotent

Get current price, 24h change, volume, and market cap for a PulseChain token.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address (0x...) — e.g. 0x2b591e99afe9f32eaa6214f7b7629768c40eeb39 for HEX

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesToken contract address
price_usdYesCurrent price in USD
price_change_24hYes24-hour price change percentage
volume_24hYes24-hour trading volume in USD
market_capYesMarket capitalization in USD

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe reads. The description adds the specific data fields returned, providing behavioral context beyond annotations.

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 a single, well-structured sentence that immediately conveys the tool's purpose with 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 the existence of an output schema, the description need not detail return values. It adequately covers the returned metrics and specifies the blockchain (PulseChain). Minor omissions like timezone for 24h change are 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 coverage is 100%, and the schema description already explains the 'address' parameter clearly. The description adds no additional meaning beyond what the 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?

The description clearly states it retrieves current price, 24h change, volume, and market cap for a PulseChain token. It distinguishes from siblings like get-token-info (general info) and get-token-liquidity (liquidity-specific) by specifying exact metrics.

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 over alternatives. The description implicitly suggests use for price-related queries, but does not mention when to prefer get-token-info or get-market-overview.

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

get-token-safetyGet Token Safety ScoreA
Read-onlyIdempotent

Analyze a token for scam indicators: honeypot detection, buy/sell tax, ownership, liquidity score (0-100, A-F grade).

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesToken contract address
scoreYesSafety score from 0 (dangerous) to 100 (safe)
gradeYesLetter grade: A (safest) through F (dangerous)
is_honeypotYesWhether the token is detected as a honeypot
buy_taxYesBuy tax percentage
sell_taxYesSell tax percentage
ownership_renouncedYesWhether contract ownership has been renounced

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so behavior is clear. Description adds value by enumerating specific scam indicators checked, but does not disclose additional traits like rate limits or authentication needs, which annotations do not cover.

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?

Single sentence, 18 words, directly conveys the tool's purpose and key outputs (honeypot, tax, ownership, liquidity). No unnecessary information.

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 the single parameter and presence of output schema, the description sufficiently covers the tool's functionality. It clearly states the domain (scam analysis) and scope, making it complete for an AI agent to understand invocation and expected results.

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 for the 'address' parameter is complete (100% coverage). Description does not add further parameter semantics beyond what the schema 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?

Description clearly states the tool analyzes a token for scam indicators, listing specific checks like honeypot detection, buy/sell tax, ownership, and liquidity score. This distinguishes it from siblings that focus on narrower aspects like get-honeypots or get-token-liquidity.

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?

No guidance on when to use this tool versus alternatives such as check-address-risk or get-honeypots. The description implies comprehensive scam analysis but does not provide context for selection or exclusions.

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

get-token-sentimentGet Token SentimentA
Read-onlyIdempotent

[PRO] Aggregated social sentiment score (-100 to +100) for a PulseChain token. Based on categorized events (partnerships, exploits, dumps, etc.). Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesToken symbol (e.g. PLS, HEX, PLSX)

Output Schema

ParametersJSON Schema
NameRequiredDescription
symbolYes
sentiment_scoreYes-100 (extreme bearish) to +100 (extreme bullish)
classificationYesbullish, bearish, neutral
positive_eventsYes
negative_eventsYes
total_eventsYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds value by specifying that it requires an API key, outputs a bounded score, and is based on categorized events, providing useful behavioral context beyond the annotations.

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-loading the core purpose and score range, followed by the basis and requirement. Every sentence adds value without 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?

For a single-parameter tool with an existing output schema and annotations, the description covers purpose, input context, and a key authentication requirement. While minor details like rate limits are absent, the overall completeness is high.

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 a clear description for the 'symbol' parameter. The description does not add additional parameter-level semantics beyond what the schema provides, so a 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 explicitly states the tool returns an aggregated social sentiment score ranging from -100 to +100 for a PulseChain token, based on categorized events. It clearly distinguishes from sibling tools like get-token-price or get-token-safety by specifying sentiment analysis.

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 does not provide guidance on when to use this tool over alternatives, nor does it mention exclusions or prerequisites beyond requiring an API key. Usage is implied but not systematically clarified.

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

get-top-pairsGet Top DEX PairsA
Read-onlyIdempotent

List top PulseX DEX trading pairs by volume.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of pairs (default 20, max 500)

Output Schema

ParametersJSON Schema
NameRequiredDescription
pairsYesArray of top trading pairs

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering safety and idempotency. The description adds no further behavioral details (e.g., data freshness, pagination, or rate limits) beyond what annotations provide.

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 a single sentence with no wasted words. It front-loads the key action and resource, making it easy to scan.

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 presence of an output schema and the simplicity of the tool (one optional parameter, annotations cover behavior), the description is sufficient. It could optionally mention that results are sorted by volume, but that is implied by 'top pairs' and the tool's name.

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% for the single parameter 'limit', which is clearly described with default and max values. The description does not mention parameters, but the schema already documents them adequately. 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 uses a specific verb 'List', identifies the resource as 'top PulseX DEX trading pairs', and specifies the criterion 'by volume'. This clearly distinguishes it from siblings like 'get-top-tokens' and 'get-pair-analytics'.

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 guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. For example, it does not suggest that this is for volume-based ranking or when to prefer other tools like 'get-pair-analytics'.

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

get-top-tokensGet Top TokensA
Read-onlyIdempotent

List top PulseChain tokens sorted by volume, liquidity, or symbol.

ParametersJSON Schema
NameRequiredDescriptionDefault
sort_byNoSort field (default: volume)
limitNoNumber of tokens to return (default 20, max 500)

Output Schema

ParametersJSON Schema
NameRequiredDescription
tokensYesArray of top tokens

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds sorting behavior and default limit, but doesn't mention caching or data recency. No contradiction.

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?

Single sentence, no fluff, information front-loaded. Every word 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 simple parameters, strong annotations, and presence of output schema, description fully covers what the tool does and how to use it.

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 covers both parameters with descriptions. Description adds context that sort_by can be volume, liquidity, or symbol, and mentions default limit of 20, which improves over schema alone.

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 lists top PulseChain tokens with sorting by volume, liquidity, or symbol. Distinct from siblings like get-token-info which retrieve individual tokens.

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?

No guidance on when to use this tool versus alternatives such as get-top-pairs or get-token-liquidity. Agent must infer from name alone.

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

get-tx-traceGet Transaction TraceA
Read-onlyIdempotent

[PRO] Internal call trace for a transaction hash. Shows all internal transfers, contract calls, and token movements. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_hashYesTransaction hash (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
transactionYes
internal_transactionsYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint false, idempotentHint true, and openWorldHint true. The description adds value by specifying the exact contents (internal transfers, contract calls, token movements) and that it's a PRO feature, which beyond annotations.

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 first sentence defines the purpose and output scope; the second provides the key prerequisite. Front-loaded and efficient.

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 has an output schema (not shown), so the description does not need to detail returns. It covers purpose, scope, and authentication requirement. Given the annotations and schema richness, the description is 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?

The input schema has 100% coverage for the single parameter tx_hash with a description 'Transaction hash (0x...)'. The description does not add any additional meaning or constraints 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 tool provides an internal call trace for a transaction hash, including all internal transfers, contract calls, and token movements. It distinguishes itself from siblings like get-wallet-transactions or get-token-history by focusing on internal trace details.

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 mentions the requirement for an OPENPULSECHAIN_API_KEY, giving a prerequisite. However, it does not provide guidance on when to use this tool versus alternatives (e.g., get-token-history for token movements or get-wallet-transactions for external transfers).

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

get-wallet-balancesGet Wallet BalancesA
Read-onlyIdempotent

[PRO] Get current token balances for a PulseChain wallet. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesWallet address
total_value_usdYesTotal portfolio value in USD
balancesYesArray of token balances

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the tool as readOnlyHint, destructiveHint false, idempotentHint true, and openWorldHint true. The description adds that it requires an API key and is a PRO feature, which is useful context beyond the annotations. No contradictions.

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 with two sentences that front-load the PRO label and clearly state the tool's function. Every word is useful with no 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?

Given the low complexity (one parameter, output schema exists), the description is sufficient. It explains the purpose and a key prerequisite (API key). The output schema covers return values, so no further detail is needed.

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 already provides a description for the 'address' parameter with 100% coverage. The description does not add any additional meaning or constraints beyond what the schema provides, so a 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 it gets current token balances for a PulseChain wallet, with a specific verb and resource. It is distinct from sibling tools that focus on specific tokens (e.g., get-token-info) or other wallet actions (e.g., get-wallet-transactions).

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 mentions the requirement for an API key, providing usage context. However, it does not explicitly state when to use this tool versus alternatives like get-wallet-swaps or get-wallet-transactions. It is clear but lacks exclusions.

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

get-wallet-swapsGet Wallet Swap HistoryA
Read-onlyIdempotent

[PRO] Get swap history for a PulseChain wallet. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYesWallet address
swapsYesArray of wallet swaps

TDQS

A3.5/5.0
Behavior4/5

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

Annotations (readOnlyHint, idempotentHint) indicate safe read operation. Description adds the requirement 'Requires OPENPULSECHAIN_API_KEY', which is useful beyond annotations. Could mention rate limits or data scope but not essential given annotations.

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?

Two short sentences with no redundancy. Purpose is front-loaded. Could be slightly expanded to mention the output type without becoming verbose.

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 one-parameter tool with output schema and rich annotations, the description is mostly complete. It conveys the core function and a key requirement. No major gaps.

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 describes 'address' as 'Wallet address (0x...)'. The description adds 'PulseChain wallet' but doesn't provide additional semantic meaning beyond the schema.

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

Purpose4/5

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

Clearly states 'Get swap history for a PulseChain wallet', identifying the resource and action. Distinguishes from siblings like get-wallet-transactions and get-recent-swaps by specifying swaps.

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?

No explicit guidance on when to use this tool versus alternatives. The '[PRO]' prefix and API key requirement hint at prerequisites but don't define usage context relative to sibling tools.

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

get-wallet-transactionsGet Wallet TransactionsA
Read-onlyIdempotent

[PRO] Recent transactions for a wallet address (PLS transfers + token transfers). Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesWallet address (0x...)
limitNoNumber of transactions (default: 20, max: 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate it's read-only and idempotent. The description adds behavioral context by noting it requires an API key and is a PRO feature, which are useful beyond annotations. No contradictions.

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 at two sentences, with the core purpose and requirement front-loaded. Every word adds value without fluff.

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 the presence of a full output schema and comprehensive annotations, the description sufficiently covers the tool's purpose, scope (both transfer types), and access requirements. No gaps remain for an agent to misunderstand.

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 has 100% description coverage with clear definitions for 'address' and 'limit'. The tool description does not add additional parameter context beyond the schema, earning a baseline score of 3.

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 recent transactions for a wallet address, specifying it includes both PLS transfers and token transfers. This distinguishes it from sibling tools like get-wallet-balances or get-wallet-swaps.

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 fetching transaction history but does not explicitly differentiate from alternatives or provide when-not-to-use guidance. It lacks explicit context on when to choose this tool over similar ones like get-token-history.

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

get-whale-alertsGet Whale AlertsA
Read-onlyIdempotent

[PRO] Recent whale movements: large swaps (>$10K), LP removals, whale dumps. Combines scam radar + PulseX subgraph data. Requires OPENPULSECHAIN_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoLookback period in hours (default: 24, max: 168)
min_usdNoMinimum USD value for swaps (default: 10000)

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
countYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations provide readOnlyHint, destructiveHint, idempotentHint, openWorldHint. Description adds behavioral context by specifying data sources (scam radar + PulseX subgraph) and movement conditions, enhancing transparency beyond annotations.

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 cover purpose, scope, data sources, and requirements. Front-loaded with main function, 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?

Given presence of output schema (implied) and annotations, description sufficiently covers what the tool does, its premium status, and key parameters. No obvious gaps for an agent to select and invoke correctly.

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 meaning by correlating min_usd with 'large swaps (>$10K)' and explaining the context of 'whale movements'. Provides value beyond schema definitions.

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 it provides recent whale movements with specific criteria (large swaps >$10K, LP removals, whale dumps). Differentiates from sibling tools like get-scam-alerts by focusing on whale-specific data and combining scam radar with PulseX subgraph 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?

Mentions that it is a [PRO] tool requiring OPENPULSECHAIN_API_KEY, giving clear usage prerequisites. However, does not explicitly contrast with sibling tools or provide when-not-to-use guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv1.2.3
    • Addedget-gas
    • Addedget-opportunity-signal
    • Addedget-pair-analytics
    • Addedget-token-holders
    • Addedget-token-sentiment
    • Addedget-tx-trace
    • Addedget-wallet-transactions
    • Addedget-whale-alerts
  2. 40 tool updatesv0.1.3
    • Removedcheck_address_risk
    • Addedcheck-address-risk
    • Removedget_bridge_stats
    • Removedget_deployer_reputation
    • Removedget_funding_tree
    • Removedget_holder_leagues
    • Removedget_holder_rank
    • Removedget_honeypots
    • Removedget_market_overview
    • Removedget_recent_swaps
    • Removedget_scam_alerts
    • Removedget_smart_money_feed
    • Removedget_token_history
    • Removedget_token_info
    • Removedget_token_liquidity
    • Removedget_token_price
    • Removedget_token_safety
    • Removedget_top_pairs
    • Removedget_top_tokens
    • Removedget_wallet_balances
    • Removedget_wallet_swaps
    • Addedget-bridge-stats
    • Addedget-deployer-reputation
    • Addedget-funding-tree
    • Addedget-holder-leagues
    • Addedget-holder-rank
    • Addedget-honeypots
    • Addedget-market-overview
    • Addedget-recent-swaps
    • Addedget-scam-alerts
    • Addedget-smart-money-feed
    • Addedget-token-history
    • Addedget-token-info
    • Addedget-token-liquidity
    • Addedget-token-price
    • Addedget-token-safety
    • Addedget-top-pairs
    • Addedget-top-tokens
    • Addedget-wallet-balances
    • Addedget-wallet-swaps
  3. 20 tool updatesv0.1.2
    • Changedcheck_address_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Checked address",
        +      "type": "string"
        +    },
        +    "details": {
        +      "description": "Additional risk context",
        +      "type": "string"
        +    },
        +    "flags": {
        +      "description": "List of risk flags (e.g. sanctions, exploit, phishing)",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "risk_level": {
        +      "description": "Risk level: low, medium, high, critical",
        +      "type": "string"
        +    },
        +    "risk_score": {
        +      "description": "Numeric risk score (0-100)",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "risk_level",
        +    "risk_score",
        +    "flags"
        +  ],
        +  "type": "object"
        +}
    • Changedget_bridge_stats2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "daily": {
        +      "description": "Daily bridge flow breakdown",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "date": {
        +            "description": "Date in ISO format",
        +            "type": "string"
        +          },
        +          "inflow_usd": {
        +            "description": "Daily inflow in USD",
        +            "type": "number"
        +          },
        +          "outflow_usd": {
        +            "description": "Daily outflow in USD",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "date",
        +          "inflow_usd",
        +          "outflow_usd"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "inflow_usd": {
        +      "description": "Total bridge inflows in USD over the last 7 days",
        +      "type": "number"
        +    },
        +    "net_flow_usd": {
        +      "description": "Net flow (inflow - outflow) in USD",
        +      "type": "number"
        +    },
        +    "outflow_usd": {
        +      "description": "Total bridge outflows in USD over the last 7 days",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "inflow_usd",
        +    "outflow_usd",
        +    "net_flow_usd",
        +    "daily"
        +  ],
        +  "type": "object"
        +}
    • Changedget_deployer_reputation1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Deployer address",
        +      "type": "string"
        +    },
        +    "reputation_score": {
        +      "description": "Reputation score (0-100)",
        +      "type": "number"
        +    },
        +    "rug_pattern": {
        +      "description": "Whether a rug pull pattern is detected",
        +      "type": "boolean"
        +    },
        +    "tokens_dead": {
        +      "description": "Number of tokens that died or were rugged",
        +      "type": "number"
        +    },
        +    "tokens_deployed": {
        +      "description": "Total number of tokens deployed",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "reputation_score",
        +    "tokens_deployed",
        +    "tokens_dead",
        +    "rug_pattern"
        +  ],
        +  "type": "object"
        +}
    • Changedget_funding_tree1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Root wallet address",
        +      "type": "string"
        +    },
        +    "depth": {
        +      "description": "Trace depth level",
        +      "type": "number"
        +    },
        +    "funding_sources": {
        +      "description": "Array of funding sources",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "amount_usd": {
        +            "description": "Funded amount in USD",
        +            "type": "number"
        +          },
        +          "source_address": {
        +            "description": "Funding source address",
        +            "type": "string"
        +          },
        +          "source_type": {
        +            "description": "Source type: wallet, bridge, dex, contract",
        +            "type": "string"
        +          },
        +          "timestamp": {
        +            "description": "Transaction timestamp in ISO format",
        +            "type": "string"
        +          },
        +          "tx_hash": {
        +            "description": "Transaction hash",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "source_address",
        +          "source_type",
        +          "amount_usd",
        +          "tx_hash",
        +          "timestamp"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "depth",
        +    "funding_sources"
        +  ],
        +  "type": "object"
        +}
    • Changedget_holder_leagues1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "symbol": {
        +      "description": "Token symbol",
        +      "type": "string"
        +    },
        +    "tiers": {
        +      "description": "Array of holder tiers",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "holder_count": {
        +            "description": "Number of holders in this tier",
        +            "type": "number"
        +          },
        +          "min_balance_usd": {
        +            "description": "Minimum balance in USD for this tier",
        +            "type": "number"
        +          },
        +          "tier": {
        +            "description": "Tier name: poseidon, whale, shark, dolphin, squid, turtle",
        +            "type": "string"
        +          },
        +          "total_value_usd": {
        +            "description": "Total value held by this tier in USD",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "tier",
        +          "holder_count",
        +          "min_balance_usd",
        +          "total_value_usd"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "symbol",
        +    "tiers"
        +  ],
        +  "type": "object"
        +}
    • Changedget_holder_rank1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Wallet address",
        +      "type": "string"
        +    },
        +    "ranks": {
        +      "description": "Array of holder rankings per token",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "balance_usd": {
        +            "description": "Balance value in USD",
        +            "type": "number"
        +          },
        +          "rank": {
        +            "description": "Holder rank position",
        +            "type": "number"
        +          },
        +          "tier": {
        +            "description": "Tier: poseidon, whale, shark, dolphin, squid, turtle",
        +            "type": "string"
        +          },
        +          "token_symbol": {
        +            "description": "Token symbol",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "token_symbol",
        +          "rank",
        +          "tier",
        +          "balance_usd"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "ranks"
        +  ],
        +  "type": "object"
        +}
    • Changedget_honeypots1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "honeypots": {
        +      "description": "Array of detected honeypot tokens",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "address": {
        +            "description": "Honeypot token address",
        +            "type": "string"
        +          },
        +          "buy_tax": {
        +            "description": "Buy tax percentage",
        +            "type": "number"
        +          },
        +          "detected_at": {
        +            "description": "Detection timestamp in ISO format",
        +            "type": "string"
        +          },
        +          "name": {
        +            "description": "Token name",
        +            "type": "string"
        +          },
        +          "sell_tax": {
        +            "description": "Sell tax percentage (often 100% for honeypots)",
        +            "type": "number"
        +          },
        +          "symbol": {
        +            "description": "Token symbol",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "address",
        +          "name",
        +          "symbol",
        +          "detected_at",
        +          "buy_tax",
        +          "sell_tax"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "honeypots"
        +  ],
        +  "type": "object"
        +}
    • Changedget_market_overview2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "active_tokens": {
        +      "description": "Number of actively traded tokens",
        +      "type": "number"
        +    },
        +    "top_gainers": {
        +      "description": "Tokens with largest 24h gains",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "price_change_24h": {
        +            "description": "24-hour price change percentage",
        +            "type": "number"
        +          },
        +          "symbol": {
        +            "description": "Token symbol",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "symbol",
        +          "price_change_24h"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "top_losers": {
        +      "description": "Tokens with largest 24h losses",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "price_change_24h": {
        +            "description": "24-hour price change percentage",
        +            "type": "number"
        +          },
        +          "symbol": {
        +            "description": "Token symbol",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "symbol",
        +          "price_change_24h"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "tvl_usd": {
        +      "description": "Total value locked in USD",
        +      "type": "number"
        +    },
        +    "volume_24h": {
        +      "description": "Total 24-hour volume in USD",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "tvl_usd",
        +    "volume_24h",
        +    "active_tokens",
        +    "top_gainers",
        +    "top_losers"
        +  ],
        +  "type": "object"
        +}
    • Changedget_recent_swaps1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "swaps": {
        +      "description": "Array of recent swaps",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "amount_usd": {
        +            "description": "Swap value in USD",
        +            "type": "number"
        +          },
        +          "timestamp": {
        +            "description": "Swap timestamp in ISO format",
        +            "type": "string"
        +          },
        +          "token_in": {
        +            "description": "Input token symbol",
        +            "type": "string"
        +          },
        +          "token_out": {
        +            "description": "Output token symbol",
        +            "type": "string"
        +          },
        +          "tx_hash": {
        +            "description": "Transaction hash",
        +            "type": "string"
        +          },
        +          "wallet": {
        +            "description": "Swapper wallet address",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "tx_hash",
        +          "wallet",
        +          "token_in",
        +          "token_out",
        +          "amount_usd",
        +          "timestamp"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "swaps"
        +  ],
        +  "type": "object"
        +}
    • Changedget_scam_alerts1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "alerts": {
        +      "description": "Array of scam alerts",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "alert_type": {
        +            "description": "Type of alert: honeypot, lp_removal, whale_dump",
        +            "type": "string"
        +          },
        +          "details": {
        +            "description": "Additional alert context",
        +            "type": "string"
        +          },
        +          "severity": {
        +            "description": "Alert severity: low, medium, high, critical",
        +            "type": "string"
        +          },
        +          "timestamp": {
        +            "description": "Alert timestamp in ISO format",
        +            "type": "string"
        +          },
        +          "token_address": {
        +            "description": "Affected token address",
        +            "type": "string"
        +          },
        +          "token_symbol": {
        +            "description": "Affected token symbol",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "alert_type",
        +          "token_address",
        +          "token_symbol",
        +          "severity",
        +          "timestamp"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "alerts"
        +  ],
        +  "type": "object"
        +}
    • Changedget_smart_money_feed1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "movements": {
        +      "description": "Array of smart money movements",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "action": {
        +            "description": "Action type: buy, sell, transfer",
        +            "type": "string"
        +          },
        +          "amount_usd": {
        +            "description": "Transaction value in USD",
        +            "type": "number"
        +          },
        +          "timestamp": {
        +            "description": "Transaction timestamp in ISO format",
        +            "type": "string"
        +          },
        +          "token_symbol": {
        +            "description": "Token symbol",
        +            "type": "string"
        +          },
        +          "wallet": {
        +            "description": "Smart money wallet address",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "wallet",
        +          "action",
        +          "token_symbol",
        +          "amount_usd",
        +          "timestamp"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "movements"
        +  ],
        +  "type": "object"
        +}
    • Changedget_token_history1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Token contract address",
        +      "type": "string"
        +    },
        +    "days": {
        +      "description": "Number of days returned",
        +      "type": "number"
        +    },
        +    "history": {
        +      "description": "Array of OHLCV candles",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "close": {
        +            "description": "Closing price in USD",
        +            "type": "number"
        +          },
        +          "date": {
        +            "description": "Date in ISO format",
        +            "type": "string"
        +          },
        +          "high": {
        +            "description": "Highest price in USD",
        +            "type": "number"
        +          },
        +          "low": {
        +            "description": "Lowest price in USD",
        +            "type": "number"
        +          },
        +          "open": {
        +            "description": "Opening price in USD",
        +            "type": "number"
        +          },
        +          "volume": {
        +            "description": "Trading volume in USD",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "date",
        +          "open",
        +          "high",
        +          "low",
        +          "close",
        +          "volume"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "days",
        +    "history"
        +  ],
        +  "type": "object"
        +}
    • Changedget_token_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Token contract address",
        +      "type": "string"
        +    },
        +    "decimals": {
        +      "description": "Token decimal places",
        +      "type": "number"
        +    },
        +    "holder_count": {
        +      "description": "Number of token holders",
        +      "type": "number"
        +    },
        +    "name": {
        +      "description": "Token name",
        +      "type": "string"
        +    },
        +    "symbol": {
        +      "description": "Token ticker symbol",
        +      "type": "string"
        +    },
        +    "total_liquidity_usd": {
        +      "description": "Total liquidity in USD",
        +      "type": "number"
        +    },
        +    "volume_24h": {
        +      "description": "24-hour trading volume in USD",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "name",
        +    "symbol",
        +    "decimals",
        +    "total_liquidity_usd",
        +    "volume_24h",
        +    "holder_count"
        +  ],
        +  "type": "object"
        +}
    • Changedget_token_liquidity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Token contract address",
        +      "type": "string"
        +    },
        +    "pairs": {
        +      "description": "Array of liquidity pairs",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "dex": {
        +            "description": "DEX name (e.g. PulseX)",
        +            "type": "string"
        +          },
        +          "liquidity_usd": {
        +            "description": "Pair liquidity in USD",
        +            "type": "number"
        +          },
        +          "pair_address": {
        +            "description": "DEX pair contract address",
        +            "type": "string"
        +          },
        +          "token0_symbol": {
        +            "description": "First token symbol",
        +            "type": "string"
        +          },
        +          "token1_symbol": {
        +            "description": "Second token symbol",
        +            "type": "string"
        +          },
        +          "volume_24h": {
        +            "description": "24-hour volume in USD",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "pair_address",
        +          "dex",
        +          "token0_symbol",
        +          "token1_symbol",
        +          "liquidity_usd",
        +          "volume_24h"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_liquidity_usd": {
        +      "description": "Total liquidity across all pairs in USD",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "total_liquidity_usd",
        +    "pairs"
        +  ],
        +  "type": "object"
        +}
    • Changedget_token_price1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Token contract address",
        +      "type": "string"
        +    },
        +    "market_cap": {
        +      "description": "Market capitalization in USD",
        +      "type": "number"
        +    },
        +    "price_change_24h": {
        +      "description": "24-hour price change percentage",
        +      "type": "number"
        +    },
        +    "price_usd": {
        +      "description": "Current price in USD",
        +      "type": "number"
        +    },
        +    "volume_24h": {
        +      "description": "24-hour trading volume in USD",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "price_usd",
        +    "price_change_24h",
        +    "volume_24h",
        +    "market_cap"
        +  ],
        +  "type": "object"
        +}
    • Changedget_token_safety1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Token contract address",
        +      "type": "string"
        +    },
        +    "buy_tax": {
        +      "description": "Buy tax percentage",
        +      "type": "number"
        +    },
        +    "grade": {
        +      "description": "Letter grade: A (safest) through F (dangerous)",
        +      "type": "string"
        +    },
        +    "is_honeypot": {
        +      "description": "Whether the token is detected as a honeypot",
        +      "type": "boolean"
        +    },
        +    "ownership_renounced": {
        +      "description": "Whether contract ownership has been renounced",
        +      "type": "boolean"
        +    },
        +    "score": {
        +      "description": "Safety score from 0 (dangerous) to 100 (safe)",
        +      "type": "number"
        +    },
        +    "sell_tax": {
        +      "description": "Sell tax percentage",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "score",
        +    "grade",
        +    "is_honeypot",
        +    "buy_tax",
        +    "sell_tax",
        +    "ownership_renounced"
        +  ],
        +  "type": "object"
        +}
    • Changedget_top_pairs1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "pairs": {
        +      "description": "Array of top trading pairs",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "liquidity_usd": {
        +            "description": "Total pair liquidity in USD",
        +            "type": "number"
        +          },
        +          "pair_address": {
        +            "description": "DEX pair contract address",
        +            "type": "string"
        +          },
        +          "token0_symbol": {
        +            "description": "First token symbol",
        +            "type": "string"
        +          },
        +          "token1_symbol": {
        +            "description": "Second token symbol",
        +            "type": "string"
        +          },
        +          "volume_24h": {
        +            "description": "24-hour volume in USD",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "pair_address",
        +          "token0_symbol",
        +          "token1_symbol",
        +          "volume_24h",
        +          "liquidity_usd"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "pairs"
        +  ],
        +  "type": "object"
        +}
    • Changedget_top_tokens1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "tokens": {
        +      "description": "Array of top tokens",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "address": {
        +            "description": "Token contract address",
        +            "type": "string"
        +          },
        +          "liquidity_usd": {
        +            "description": "Total liquidity in USD",
        +            "type": "number"
        +          },
        +          "name": {
        +            "description": "Token name",
        +            "type": "string"
        +          },
        +          "price_usd": {
        +            "description": "Current price in USD",
        +            "type": "number"
        +          },
        +          "symbol": {
        +            "description": "Token ticker symbol",
        +            "type": "string"
        +          },
        +          "volume_24h": {
        +            "description": "24-hour volume in USD",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "address",
        +          "name",
        +          "symbol",
        +          "price_usd",
        +          "volume_24h",
        +          "liquidity_usd"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "tokens"
        +  ],
        +  "type": "object"
        +}
    • Changedget_wallet_balances1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Wallet address",
        +      "type": "string"
        +    },
        +    "balances": {
        +      "description": "Array of token balances",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "balance": {
        +            "description": "Raw token balance",
        +            "type": "string"
        +          },
        +          "token_address": {
        +            "description": "Token contract address",
        +            "type": "string"
        +          },
        +          "token_symbol": {
        +            "description": "Token symbol",
        +            "type": "string"
        +          },
        +          "value_usd": {
        +            "description": "Balance value in USD",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "token_address",
        +          "token_symbol",
        +          "balance",
        +          "value_usd"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "total_value_usd": {
        +      "description": "Total portfolio value in USD",
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "total_value_usd",
        +    "balances"
        +  ],
        +  "type": "object"
        +}
    • Changedget_wallet_swaps1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": {},
        +  "properties": {
        +    "address": {
        +      "description": "Wallet address",
        +      "type": "string"
        +    },
        +    "swaps": {
        +      "description": "Array of wallet swaps",
        +      "items": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "amount_usd": {
        +            "description": "Swap value in USD",
        +            "type": "number"
        +          },
        +          "timestamp": {
        +            "description": "Swap timestamp in ISO format",
        +            "type": "string"
        +          },
        +          "token_in": {
        +            "description": "Input token symbol",
        +            "type": "string"
        +          },
        +          "token_out": {
        +            "description": "Output token symbol",
        +            "type": "string"
        +          },
        +          "tx_hash": {
        +            "description": "Transaction hash",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "tx_hash",
        +          "token_in",
        +          "token_out",
        +          "amount_usd",
        +          "timestamp"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "address",
        +    "swaps"
        +  ],
        +  "type": "object"
        +}
  4. 20 tool updatesv0.1.1
    • Addedcheck_address_risk
    • Addedget_bridge_stats
    • Addedget_deployer_reputation
    • Addedget_funding_tree
    • Addedget_holder_leagues
    • Addedget_holder_rank
    • Addedget_honeypots
    • Addedget_market_overview
    • Addedget_recent_swaps
    • Addedget_scam_alerts
    • Addedget_smart_money_feed
    • Addedget_token_history
    • Addedget_token_info
    • Addedget_token_liquidity
    • Addedget_token_price
    • Addedget_token_safety
    • Addedget_top_pairs
    • Addedget_top_tokens
    • Addedget_wallet_balances
    • Addedget_wallet_swaps
  5. 20 tool updatesv0.1.0
    • Removedcheck_address_risk
    • Removedget_bridge_stats
    • Removedget_deployer_reputation
    • Removedget_funding_tree
    • Removedget_holder_leagues
    • Removedget_holder_rank
    • Removedget_honeypots
    • Removedget_market_overview
    • Removedget_recent_swaps
    • Removedget_scam_alerts
    • Removedget_smart_money_feed
    • Removedget_token_history
    • Removedget_token_info
    • Removedget_token_liquidity
    • Removedget_token_price
    • Removedget_token_safety
    • Removedget_top_pairs
    • Removedget_top_tokens
    • Removedget_wallet_balances
    • Removedget_wallet_swaps
  6. 17 tool updates
    • Addedcheck_address_risk
    • Addedget_bridge_stats
    • Addedget_deployer_reputation
    • Addedget_funding_tree
    • Addedget_holder_leagues
    • Addedget_holder_rank
    • Addedget_honeypots
    • Addedget_market_overview
    • Addedget_recent_swaps
    • Addedget_scam_alerts
    • Addedget_smart_money_feed
    • Addedget_token_liquidity
    • Addedget_token_safety
    • Addedget_top_pairs
    • Addedget_top_tokens
    • Addedget_wallet_balances
    • Addedget_wallet_swaps
  7. 3 tool updates
    • First observedget_token_history
    • First observedget_token_info
    • First observedget_token_price

TDQS

A3.9/5.0
Disambiguation4/5

Tools are generally distinct but a few have overlapping purposes, e.g., get-token-price and get-token-info both provide price data, and get-market-overview overlaps with get-top-tokens and get-top-pairs. However, most tools target unique aspects such as risk, reputation, or specific analytics.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case (e.g., get-token-info, check-address-risk, get-bridge-stats). The naming is predictable and clear, making it easy for agents to understand the action and target.

Tool Count5/5

20 tools is well-scoped for a blockchain analytics MCP server. Each tool covers a specific analytical need without redundancy, making the set comprehensive yet manageable.

Completeness4/5

The server covers a wide range of analytics: token details, prices, history, liquidity, safety, scams, market overview, wallet balances, swaps, holder data, and advanced features like smart money and funding trees. Minor gaps exist, such as missing raw transaction or block data, but core analytics are well represented.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    A
    quality
    C
    maintenance
    Description: EVM blockchain intelligence toolkit for AI agents. 20 tools for token prices, gas comparison, swap quotes, yield rates, honeypot detection, and transaction simulation across 5 EVM chains. Zero config, no API keys required.
    26
    58
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    AI-powered crypto signal intelligence for 20 assets (BTC, ETH, SOL, etc). 6 scoring dimensions: whale activity, technical analysis, derivatives flow, narrative strength, sentiment, market structure. Market regime detection (TRENDING/RANGING), portfolio optimization, and accuracy tracking. 9 read-only MCP tools. Free via MCP, $0.001 USDC via x402 on Base for REST API.
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Token safety oracle for AI agents. Honeypot detection, 17 scam pattern checks, LP lock verification across 6 EVM chains. Score 0-100 with risk flags. ERC Token Safety Score standard.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that provides AI agents with crypto token safety checks (honeypot, liquidity, rug risk) and alpha signals (smart money buys, fresh rug radar) across PulseChain, Monad, Base, and BSC.
    61
    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/openpulsechain/public'

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