Skip to main content
Glama

Server Details

MCP tools for agents: web research, content extraction, email, DNS, and blockchain intelligence.

Ownership verified
Status
Healthy
Uptime
96.3% over 39 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.5/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct purposes, reinforced by explicit DO NOT USE cross-references. Minor overlap risks remain between adjacent security/decision tools such as domain_risk_trust_decision vs domain_agent_discovery_check and token_security_decision vs defi_route_decision, but descriptions provide useful boundaries.

Naming Consistency4/5

All tool names use consistent snake_case and follow a readable domain/resource/action pattern. The terminal action words vary (decision, lookup, check, detection) but predictably correspond to return types rather than reflecting inconsistent naming.

Tool Count5/5

Fifteen tools is well-scoped for a multi-domain relay covering vendor intelligence, domain trust, EVM read-only lookups, DeFi routing, token security, and x402 preflight. Each tool appears to earn its place without excessive surface area.

Completeness4/5

The surface covers CRUD-like lifecycle needs for vendor-customer intelligence and provides coherent read-only decision and lookup coverage across domains. Some adjacent operations are intentionally absent, such as transaction broadcasting or deeper protocol validation, but they are explicitly out of scope rather than accidental gaps.

Available Tools

15 tools
customer_vendor_detectionCustomer Vendor DetectionAInspect

Scan a customer domain to detect vendors and technologies currently present using deterministic fingerprints; returns detected technologies with supporting evidence and observation details. Results are point-in-time observations; eligible CSI observations may be persisted best-effort. An empty detection means no supported fingerprint was observed in that scan — it does not prove the domain uses no technology. Side effect: eligible CSI observations may be persisted best-effort to maintain customer-vendor evidence. USE WHEN: an agent needs to determine which supported vendors or technologies are currently detected on a specific customer domain. DO NOT USE WHEN: the agent needs confirmed customer base of a vendor (use vendor-customer-confirmed-lookup), historical adoption/removal events (use vendor-customer-adoption-change-lookup), or customer transition signals (use vendor-customer-transition-signal-lookup). Parameter semantics: domain is the customer domain to inspect, not a vendor domain.

NameRequiredDescriptionDefault
domainYesBare public hostname (e.g., example.com). No protocol, path, query, or fragment. Localhost and IP literals rejected.

Output Schema

NameRequiredDescription
domainYesNormalized public domain scanned.
productYesProduct identifier.
observed_atYesUTC timestamp of the scan.
technologiesYesDeterministically detected technologies ordered by canonical key ascending.
technology_countYesNumber of technologies detected as PRESENT.
response_validityYesScanner response validity classification.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations mark this as non-read-only, non-idempotent, and open-world, and the description justifies all three: it discloses that eligible CSI observations may be persisted best-effort, that results are point-in-time, and that an empty result is not proof of absence. That is real value beyond the annotations, though the persistence side effect is stated twice rather than expanded (e.g. failure handling).

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?

Front-loaded with the core action, then caveats, then routing rules — good ordering. It loses a point for redundancy: the "eligible CSI observations may be persisted best-effort" sentence is repeated almost verbatim, and the bold section labels add visual noise without 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?

With an output schema present, the description needn't detail return fields, and it instead covers the things structured data cannot: point-in-time semantics, the false-negative risk of empty results, and the persistence side effect. An agent has everything needed to call this correctly and interpret the result honestly.

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% and the schema already constrains the single domain parameter precisely (bare hostname, no protocol/path, localhost and IPs rejected). The description adds a genuinely non-obvious disambiguation: domain is the customer domain to inspect, not a vendor domain — a distinction the schema cannot express.

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?

States a specific verb and resource ("Scan a customer domain to detect vendors and technologies") plus the mechanism (deterministic fingerprints) and the return content (technologies with supporting evidence). It is clearly distinguishable from the vendor-customer lookup siblings, which answer different questions about the same entities.

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

Usage Guidelines5/5

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

Explicit USE WHEN and DO NOT USE WHEN blocks name three alternative tools and the exact condition that routes to each (confirmed customer base, historical adoption/removal events, transition signals). Nothing about tool selection is left to inference.

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

defi_route_decisionDeFi Route DecisionA
Read-only
Inspect

Compare read-only Base swap quotes obtained from 1inch and KyberSwap, evaluating output, minimum output, fees/gas, price impact, consensus, and divergence to return a deterministic economic route decision (EXECUTE_BEST, WAIT, or INSUFFICIENT_DATA). The product consults external providers during the request; quotes reflect the market state observed at that moment and identical calls can produce different results. Provider unavailability or failure can yield a partial result or insufficient data. The product does not execute, submit, sign, or authorize a swap or transaction. USE WHEN: an agent needs to compare available swap routes on Base and determine whether to execute the best route, wait, or treat the available market data as insufficient. DO NOT USE WHEN: the agent needs to execute or submit a swap, sign a transaction, or perform a transaction-safety authorization.

NameRequiredDescriptionDefault
chainYesBase Mainnet only in this quote-only MVP.
token_inYesInput Base asset symbol.
amount_inYesPositive decimal input amount, converted exactly to raw token units.
token_outYesOutput Base asset symbol; must differ from token_in.
slippage_bpsYesSlippage tolerance in basis points; it is not treated as a cost.
baseline_providerNoOptional provider used only for a direct economic comparison.

Output Schema

NameRequiredDescription
usageYesPer-provider call success, latency, and configured cost-estimate availability.
quotesYesNormalized provider quote evidence in raw token units.
statusYesOutcome of the quote comparison: COMPARISON_AVAILABLE when at least two valid quotes exist, PARTIAL when some but not all providers succeeded, UPSTREAM_UNAVAILABLE when no provider returned a valid quote.
partialYesTrue when one or more providers did not yield a valid quote.
decisionYesDeterministic economic decision: which swap quote the agent should choose right now. Not a safety authorization and does not execute a swap.
consensusYesComparable-output median and comparison basis when two provider quotes are valid.
economicsYesKnown or unknown estimated provider COGS; unknown is never represented as zero.
confidenceYesDeterministic quote-comparison confidence; two providers never produce HIGH in this MVP.
observed_atYesUTC timestamp when the latest provider quote was observed during this request.
best_providerYesBest comparable provider only when at least two valid quotes are available.
decision_reasonYesHuman-readable deterministic reason for the decision.
decision_signalsYesObjective signals used for the decision.
evidence_qualityYesPer-provider reported, calculated, estimated, or unavailable field quality.
provider_failuresYesProviders that failed to return a valid quote, with provider name and failure category.
economic_advantageYesBest quote versus declared baseline or next available quote; never ROI.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already flag readOnlyHint=true and openWorldHint=true, but the description adds non-obvious traits: it consults external providers live, identical calls can return different results (consistent with idempotentHint=false), and provider failure can yield partial or insufficient-data results. It also explicitly disclaims any execution/signing authority, closing the main safety question.

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 core behavior and its external/non-deterministic nature are front-loaded, and the USE/DO NOT USE structure is easy to scan. The first sentence is dense with evaluative dimensions that could be trimmed slightly, but no sentence is filler.

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?

With an output schema, full schema coverage, and rich annotations, the description supplies exactly the missing pieces: live-provider behavior, result variability, partial-failure outcomes, and absence of execution capability. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented, including the optional baseline_provider caveat in the schema itself. The description references the evaluated dimensions (output, fees/gas, price impact, divergence) but adds no per-parameter syntax or format detail beyond the schema, so baseline 3 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 names a specific verb and resource ('Compare read-only Base swap quotes obtained from 1inch and KyberSwap') and states the concrete output taxonomy (EXECUTE_BEST, WAIT, INSUFFICIENT_DATA). It also distinguishes itself from the execution sibling ('does not execute, submit, sign, or authorize a swap').

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

Usage Guidelines5/5

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

Explicit USE WHEN and DO NOT USE WHEN sections define the exact condition for selection and name the alternative scenario (executing/submitting/signing a swap). The routing decision is unambiguous without opening the schema.

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

domain_agent_discovery_checkDomain & Agent Discovery CheckA
Read-only
Inspect

Inspect a public domain across DNS, HTTP/HTTPS/TLS, email posture and AI-agent discovery surfaces, including robots.txt, llms.txt, OpenAPI, MCP, x402 and Agent Card availability. USE WHEN: an agent needs a single-call observational check of a domain's surfaces or wants to compare with a previous state. DO NOT USE WHEN: protocol validation, Agent Card/A2A validation, MCP compliance validation, security certification, or a consumption guarantee. USE domain_risk_trust_decision FOR: merchant/domain trust. Operational behavior: no tool-specific auth or rate limit; remote surfaces may throttle requests.

NameRequiredDescriptionDefault
domainYesBare public domain for consolidated domain health, DNS, TLS, and email-posture inspection; no protocol or path; localhost and IP literals are rejected.
previous_stateNoOptional prior `new_state` returned by this product. Supplied statelessly by the caller; when provided, it is compared against the current observation to populate `changes`. Omit it for a baseline inspection with no change detection.

Output Schema

NameRequiredDescription
dnsYesObserved DNS records and diagnostics.
domainYesValidated public domain.
healthYesObserved domain health: DNS, HTTP, HTTPS, redirects, TLS, and latency.
issuesYesDetected issues from the inspection: unresolved DNS, unavailable HTTPS, missing SPF/DMARC, TLS expiring soon, or unavailable agent-discovery signals. Each item includes a code, severity, message, and evidence references. Empty when no issues are found. Not a safety or security verdict.
actionsYesRecommended remediation actions derived from detected issues. Each item includes a code and a human-readable action. The tool does not execute these actions; they are recommendations only.
changesYesMaterial field-level differences between `previous_state` and the current observation. Each item names a changed field with its previous and current values. Empty when `previous_state` is omitted or no field differs. Requires `previous_state` to produce non-empty results.
evidenceYesObserved evidence from DNS, HTTP/HTTPS, and agent-discovery checks. Each item names a source, the observation timestamp, the observed value, and freshness. Contains live remote observations; does not guarantee proof or validation.
new_stateYesCurrent observation state, structured identically to `current_state`. Can be supplied as `previous_state` in a subsequent call to enable change detection. Not persisted server-side; the caller stores and passes it back.
observed_atYesUTC timestamp when the inspection observation was generated, in ISO 8601 format with Z suffix. Reflects the local observation time, not a provider timestamp.
data_qualityYesObservation quality summary: checks requested, completed, and failed, plus coverage (complete or partial). Reflects partial failures and missing surfaces. Not a score or verdict.
current_stateYesStructured snapshot of the current observation: domain, DNS, health, email posture, and agent readiness. Identical to `new_state`. Compared against `previous_state` to produce `changes` when supplied. Not persisted server-side.
email_postureYesObserved email posture including MX, SPF, and DMARC.
agent_readinessYesObserved agent discovery signals.
security_postureYesObserved HTTPS/TLS security posture; not a safety verdict.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=true, destructiveHint=false), and the description adds genuinely new operational context: no tool-specific auth or rate limit, but remote surfaces may throttle. It also implies observations can differ between calls, consistent with idempotentHint=false. Minor gap: it does not say what happens when a surface is unreachable, though the output schema covers return structure.

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?

Purpose sentence first, then clearly delimited USE WHEN / DO NOT USE WHEN / alternative / operational notes. Every line carries routing or constraint value; the enumeration of surfaces is long but load-bearing.

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?

With an output schema present, return values need no explanation, and the description covers the remaining burden: scope, exclusions, the sibling alternative, auth/rate-limit posture, and the fact that throttling can occur. Nothing an agent needs in order to call this correctly is absent.

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 both parameters are documented in the schema (domain constraints, previous_state semantics). The description only reinforces that this is a public-domain, observation-only check and that comparison requires a prior state; it adds no format or edge-case detail beyond the schema, so the baseline 3 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?

Opens with a specific verb+resource ('Inspect a public domain') and enumerates exactly which surfaces are covered (DNS, HTTP/TLS, email posture, robots.txt, llms.txt, OpenAPI, MCP, x402, Agent Card). This is clearly distinguished from the trust-oriented sibling domain_risk_trust_decision, which is named explicitly.

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

Usage Guidelines5/5

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

Explicit USE WHEN (single-call observational check, or comparison against a previous state) and DO NOT USE WHEN (protocol/Agent Card/MCP validation, security certification, consumption guarantee) sections, plus a pointed redirect to domain_risk_trust_decision for merchant/domain trust. Nothing is left to inference.

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

domain_risk_trust_decisionDomain Risk & Trust DecisionA
Read-only
Inspect

Deterministic domain risk and trust evaluation returning ALLOW / REVIEW / BLOCK. Decision for observed evidence; external evidence may change between calls. Uses DNS, RDAP, TLS, HTTP/redirect, URLhaus threat reputation, local indicators. Read-only: external read queries only, no action on domain, no persistence, limited cache. USE WHEN: decide whether domain is safe enough for interaction, onboarding, outreach, or payment. DO NOT USE WHEN: consolidated domain health/operational inspection (use domain_agent_discovery_check) or email validation (use email_suitability_decision). Example: domain='example.com'.

NameRequiredDescriptionDefault
domainYesBare public hostname (e.g., example.com). No protocol, path, query, or fragment. Localhost and IP literals rejected.

Output Schema

NameRequiredDescription
aYesObserved DNS A (IPv4) records.
mxYesObserved DNS MX records.
nsYesObserved DNS NS records.
spfYesSPF records derived from observed DNS TXT records (v=spf1).
txtYesObserved DNS TXT records.
aaaaYesObserved DNS AAAA (IPv6) records.
dmarcYesDMARC records derived from observed DNS TXT records (v=dmarc1).
domainYesValidated public domain.
signalsYesEvidence source states (DNS, RDAP, TLS, HTTP, threat intel).
decisionYesTrust decision for the domain.
confidenceYesConfidence in the decision from 0 to 100.
indicatorsYesObserved risk indicators.
risk_levelYesRisk level derived from observed signals.
risk_scoreYesRisk score from 0 to 100.
diagnosticsYesDeterministic missing-record diagnostics.
evidence_completeYesWhether all evidence sources were available.
recommended_actionYesSuggested action for the agent.
structured_reasonsYesHuman-readable explanation for the decision.

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations, the description discloses the external data sources queried, the read-only/no-action/no-persistence posture, and limited caching. It also resolves the apparent tension between 'deterministic' and idempotentHint=false by explaining that external evidence may change between calls — context the annotation alone would leave confusing, though the response shape is left to the output schema.

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

Conciseness5/5

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

Front-loaded with the decision outcome and behavior, then labeled USE WHEN / DO NOT USE WHEN sections and a concrete example. Dense but every clause contributes routing or behavioral information; no filler.

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 single-parameter decision tool with a full output schema and rich annotations, the description covers purpose, exclusions, data provenance, side-effect profile, and volatility caveat. Nothing an agent needs to select or call it correctly is missing.

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 itself already spells out the bare-hostname constraint, rejection of localhost/IP literals, and length cap. The description adds only a worked example ('domain=example.com'), which is marginal value over the schema — baseline 3 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 names a specific verb and resource ('domain risk and trust evaluation'), states the decision vocabulary (ALLOW / REVIEW / BLOCK), and enumerates the evidence sources used (DNS, RDAP, TLS, HTTP/redirect, URLhaus, local indicators). An agent can distinguish it from siblings like domain_agent_discovery_check without opening either schema.

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

Usage Guidelines5/5

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

Explicit USE WHEN (interaction, onboarding, outreach, payment) and DO NOT USE WHEN clauses that name the correct alternative tool for each excluded case (domain_agent_discovery_check for health inspection, email_suitability_decision for email validation). Routing is fully determined.

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

email_suitability_decisionEmail Suitability DecisionA
Read-only
Inspect

Evaluate whether an email address is suitable for a specified use case using syntax, MX, SPF, DMARC, disposable-domain, and role-account signals. Decision for observed evidence; external DNS evidence may change between calls. Returns an ALLOW, REVIEW, or REJECT decision with deliverability score, risk level, confidence, checks, and reasons. Does not send email, probe the mailbox via SMTP, verify that the mailbox exists or is owned by a specific person, or guarantee delivery. Read-only DNS lookups may affect latency or availability; no tool-specific rate limit. USE WHEN: an agent needs to decide whether an email address is suitable for outbound sales, account signup, transactional email, CRM import, lead qualification, or another supported use case. DO NOT USE WHEN: the agent needs domain-level risk and trust assessment or proof that a mailbox exists. USE domain_risk_trust_decision FOR: domain-level risk and trust assessment.

NameRequiredDescriptionDefault
emailYesEmail address for suitability decision.
use_caseNoIntended sending context; when provided, the decision accounts for context-specific risk. Omitted for a baseline decision without contextual adjustments.

Output Schema

NameRequiredDescription
emailYesValidated email address (domain-lowercased).
validYesBackward-compatible validity summary based on deliverability score >= 60. Does not prove mailbox existence or delivery.
checksYesPer-signal check results keyed by check name: syntax, domain, mx, spf, dmarc, disposable, role_account. Each value is a machine-readable result string (e.g. 'syntax:valid', 'mx:found', 'spf:pass', 'disposable:no'). Partial when a DNS lookup is unavailable.
domainYesLowercased domain part.
reasonsYesMachine-readable reason codes explaining the decision and corresponding to observed checks.
decisionYesContext-aware suitability decision for the given use case.
mx_foundNoBackward-compatible MX result; null means lookup unavailable.
use_caseNoThe validated use case echoed from the input; null when omitted. Affects contextual decision adjustments such as role-account tolerance and SPF/DMARC weighting.
confidenceYesConfidence in the decision from 0 to 100.
risk_levelYesRisk level derived from observed signals.
deliverability_scoreYesDeliverability score from 0 to 100.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only/non-destructive/open-world, and the description adds substantial context beyond them: no SMTP probing, no mailbox-existence proof, no delivery guarantee, DNS evidence drift between calls (explaining the non-idempotent hint), latency/availability impact, and no tool-specific rate limit.

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?

Front-loads mechanics and return shape before the bolded routing headers, and each block is scannable. Slight redundancy between the negative-capability sentence and the DO NOT USE WHEN clause (mailbox existence is stated twice) keeps it from a 5.

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 two-parameter read-only decision tool with an output schema, the description covers scope, exclusions, return structure, operational caveats, and sibling routing. An agent has everything needed to select and call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the use_case enum plus its default-null semantics are already documented in the schema, so the description adds nothing about parameters beyond restating 'specified use case'. Baseline 3 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?

First sentence states a specific verb+resource (evaluate an email address's suitability) plus the exact signal set used (syntax, MX, SPF, DMARC, disposable-domain, role-account) and the decision output (ALLOW/REVIEW/REJECT). It explicitly separates itself from domain_risk_trust_decision, the nearest sibling.

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

Usage Guidelines5/5

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

Provides an explicit USE WHEN list with concrete scenarios (outbound sales, signup, transactional, CRM import, lead qualification), a DO NOT USE WHEN clause covering domain-level assessment and mailbox proof, and names the alternative tool to use instead.

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

evm_gas_price_lookupEVM Gas Price LookupA
Read-only
Inspect

Retrieve the current gas price for Ethereum or Base for transaction planning. Returns wei and gwei from a single eth_gasPrice JSON-RPC call; live network result may change between calls and does not estimate total transaction cost, submit a transaction, or provide execution authorization. USE WHEN: an agent needs the current EVM gas price before estimating fees or preparing a transaction. DO NOT USE WHEN: the agent needs to inspect an existing transaction by hash (use evm_transaction_hash_lookup) or retrieve a wallet balance (use evm_wallet_balance_lookup).

NameRequiredDescriptionDefault
chainYesEVM network to query for the current gas price.

Output Schema

NameRequiredDescription
chainYesEVM network queried.
observed_atYesUTC observation time.
gas_price_weiYesCurrent gas price in wei (atomic units).
gas_price_gweiYesCurrent gas price in gwei.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only, open-world, and non-idempotent behavior, but the description adds meaningful context beyond them: it specifies a single `eth_gasPrice` JSON-RPC call, explains that live results may change between calls (justifying non-idempotency), and explicitly states it does not estimate total cost, submit transactions, or authorize execution.

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 front-loaded with purpose and well-organized into USE WHEN / DO NOT USE WHEN blocks. There is minor redundancy between 'for transaction planning' and the later 'before estimating fees or preparing a transaction,' but overall it is 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?

For a single-parameter read tool with an output schema and rich annotations, the description covers purpose, usage boundaries, alternatives, and behavioral limits. Nothing needed to call it correctly is missing.

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 single `chain` parameter has a clear enum and description. The tool description mentions 'Ethereum or Base' but adds no syntax or format details beyond what the schema already provides, so the 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?

States a specific verb and resource ('Retrieve the current gas price for Ethereum or Base') and explicitly scopes it to transaction planning. It clearly distinguishes itself from the named sibling tools for transaction inspection and wallet balance.

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

Usage Guidelines5/5

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

Provides explicit 'USE WHEN' and 'DO NOT USE WHEN' sections with named alternatives (`evm_transaction_hash_lookup`, `evm_wallet_balance_lookup`) and the conditions that select each. Nothing is left to inference.

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

evm_latest_block_lookupEVM Latest Block LookupA
Read-only
Inspect

Retrieve the latest block number for Ethereum or Base using a single eth_blockNumber JSON-RPC call; live chain state may change between calls. USE WHEN: an agent needs the current chain height for Ethereum or Base as a synchronization, sequencing, or transaction-context reference. DO NOT USE WHEN: the agent needs block contents, transactions, wallet balances, gas prices, historical blocks, confirmations, or finality. Parameter semantics: chain accepts exactly ethereum or base and is case-sensitive. Returns chain, block_number as a decimal integer, and observed_at as a UTC timestamp.

NameRequiredDescriptionDefault
chainYesEVM network to query for the latest block number.

Output Schema

NameRequiredDescription
chainYesEVM network queried.
observed_atYesUTC timestamp of the query.
block_numberYesLatest block number as a decimal integer.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly=true, openWorld=true, idempotent=false; the description adds the reason behind non-idempotency ('live chain state may change between calls') and the single-RPC cost profile, which is real added context. It stops short of disclosing rate limits, error/failure behavior, or authentication requirements, so it is strong but not exhaustive.

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

Conciseness4/5

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

Front-loaded with purpose, then cleanly segmented into USE WHEN / DO NOT USE WHEN / parameter semantics, so an agent can scan it quickly. The closing sentence restating chain, block_number, and observed_at duplicates the existing output schema and is the one piece that does not earn 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?

For a single-parameter read tool with full annotation coverage and an output schema, the description supplies everything else an agent needs: scope, exclusions, case sensitivity, volatility of the returned value. No material gap remains.

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% and the enum is already constrained, so the baseline is 3; the description goes further by stating the values are case-sensitive, a constraint the schema does not express. The only gap is that it does not say what happens on a case mismatch or invalid value.

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?

States a specific verb and resource ('Retrieve the latest block number') plus the exact mechanism ('single eth_blockNumber JSON-RPC call') and the supported chains. It is clearly distinguishable from siblings like evm_gas_price_lookup, evm_wallet_balance_lookup, and evm_transaction_hash_lookup.

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

Usage Guidelines5/5

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

Provides an explicit USE WHEN clause (synchronization, sequencing, transaction-context reference) and an explicit DO NOT USE WHEN clause enumerating the alternatives' territory: block contents, transactions, balances, gas prices, historical blocks, confirmations, finality. Nothing is left to inference.

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

evm_transaction_execution_decisionEVM Transaction Execution DecisionA
Read-only
Inspect

Evaluate an intended EVM transaction before submission using deterministic RPC simulation signals and return a machine-readable STRAELO execution decision. The decision engine is deterministic for the same observed RPC evidence; live chain state may change between calls. USE WHEN: an agent needs to evaluate an EVM transaction before deciding whether to submit it. DO NOT USE WHEN: the transaction has already been submitted and the agent needs to look it up by transaction hash; use evm_transaction_hash_lookup instead. This product does not broadcast transactions and does not guarantee that an allowed transaction will execute successfully when later submitted. from_address is the sender whose execution context is simulated; to_address/data/value together form the intended transaction form. INCOMPLETE means simulation/provider evidence was insufficient for a conclusive execution decision and must not be treated as ALLOW. Returns ALLOW, WARN, BLOCK, or INCOMPLETE with the simulation evidence and execution signals produced by the current decision engine.

NameRequiredDescriptionDefault
dataNoEVM calldata hex for contract interaction. Must start with 0x. Empty calldata is represented as "0x".
chainYesEVM network where the transaction would be executed.
valueNoNative value in hex wei (atomic units, 10^18 wei = 1 ETH). Zero means no native value transfer.
to_addressNoIntended recipient address or contract target for the transaction.
from_addressYesActual EVM sender address whose execution context should be simulated. Required because contract behavior may depend on msg.sender, balances, permissions, ownership, or allowlists.

Output Schema

NameRequiredDescription
chainYesSelected EVM network.
reasonsYesHuman-readable reasons for the decision.
decisionYesPre-execution decision: ALLOW means simulation succeeded with no blocking signals; WARN means simulation succeeded with cautionary findings (e.g., approvals); BLOCK means deterministic simulation indicates execution would revert; INCOMPLETE means a technical/provider error prevented a conclusive decision.
findingsYesDeterministic factual findings.
providerYesRPC provider identifier.
latency_msYesObserved RPC latency in milliseconds.
counterpartyYesRecipient / counterparty address.
native_valueYesNative value in decimal wei.
estimated_gasNoEstimated gas from eth_estimateGas.
decoded_actionNoDecoded ERC20/ERC1155 action when recognized.
method_selectorYesFirst 4 bytes of calldata.
interaction_typeYesRecognized interaction type.
simulation_statusYesRPC simulation outcome.

TDQS

A4.6/5.0
Behavior4/5

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

It adds real context beyond the annotations: the engine is deterministic for identical RPC evidence, but live chain state may change between calls (which explains idempotentHint=false), and the tool never broadcasts. It also warns that ALLOW is not a guarantee of successful execution and that INCOMPLETE must not be read as ALLOW. The only gap is that it does not describe latency, rate limits, or provider failure behavior, which matter for an openWorldHint tool.

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 purpose is front-loaded, followed by clearly labelled use/don't-use blocks and caveats, so an agent can scan it quickly. It runs long and the parameter-roles sentence restates ground already covered by the schema descriptions, which trims a point.

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 decision tool with an output schema, the description covers everything the schema cannot: the meaning and risk asymmetry of ALLOW/WARN/BLOCK/INCOMPLETE, determinism versus live-state drift, and the no-broadcast/no-guarantee boundary. An agent can call it and interpret results correctly without further context.

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%, so the baseline is 3; the description earns an extra point by explaining the compositional relationship — that from_address defines the simulated msg.sender context while to_address/data/value jointly form the intended transaction. Most per-field detail (hex wei units, calldata format, address patterns) is already in the schema, so no more credit is warranted.

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 opens with a specific verb and resource — 'Evaluate an intended EVM transaction before submission' — and states the output form (a machine-readable STRAELO execution decision). It is immediately distinguishable from evm_transaction_hash_lookup, which it explicitly names as the post-submission lookup path.

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

Usage Guidelines5/5

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

It provides explicit 'USE WHEN' and 'DO NOT USE WHEN' sections, and the exclusion names the alternative tool (evm_transaction_hash_lookup) plus the condition that selects it (transaction already submitted, lookup by hash). The pre-submission gating context is unambiguous.

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

evm_transaction_hash_lookupEVM Transaction Hash LookupA
Read-only
Inspect

Look up an EVM transaction by transaction hash and return normalized transaction facts, including status, block number, sender, recipient, value, gas usage, and contract method selector. This is a factual post-transaction lookup on Ethereum or Base; live chain state may change between calls and does not simulate, send, sign, or evaluate whether the transaction was safe or appropriate to execute. USE WHEN: an agent already has an EVM transaction hash and needs to inspect the corresponding on-chain transaction. DO NOT USE WHEN: the agent needs a pre-execution transaction decision, a gas-price lookup, a wallet-balance lookup, or the latest block. A syntactically valid hash that is not found on the selected network returns NOT_FOUND as a factual result rather than a validation error.

NameRequiredDescriptionDefault
chainYesEVM network to query.
tx_hashYesTransaction hash (0x + exactly 64 hex chars).

Output Schema

NameRequiredDescription
gasYesGas usage and fee details of the transaction.
chainYesEVM network queried.
statusYesTransaction execution status.
tx_hashYesTransaction hash that was queried.
contractYesContract interaction details detected from calldata.
value_weiYesTransaction value in wei.
to_addressYesTransaction recipient address (null for contract creation).
observed_atYesUTC observation timestamp in ISO-8601 format with Z suffix.
block_numberYesBlock number where the transaction was included.
from_addressYesTransaction sender address.
value_nativeYesTransaction value in native units (ETH).
transaction_typeYesType of transaction.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, it discloses that live chain state may change between calls, that it does not simulate, send, sign, or assess safety, and that NOT_FOUND is a factual result. These details add meaningful behavioral context for an open-world read-only lookup.

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 front-loaded with the core purpose, then cleanly separates scope, usage conditions, exclusions, and error semantics. Despite its length, each sentence contributes useful selection or behavioral context.

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?

With only two fully documented parameters, existing annotations, and an output schema, the description supplies everything needed for correct selection and invocation. It also covers the key edge case of a valid but absent hash.

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 already documents the chain enum and the tx_hash pattern. The description reinforces that chain selects Ethereum or Base and that lookup is scoped to the selected network, but it does not add much parameter-level detail beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource: look up an EVM transaction by hash and return normalized transaction facts. It explicitly distinguishes this tool from sibling decision, gas-price, balance, and latest-block tools by describing it as a factual post-transaction lookup and listing what it does not do.

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

Usage Guidelines5/5

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

It provides explicit USE WHEN and DO NOT USE WHEN sections, naming the conditions that select this tool and the conditions that should route to alternatives. It also clarifies that a syntactically valid but missing hash returns NOT_FOUND rather than a validation error.

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

evm_wallet_balance_lookupEVM Wallet Balance LookupA
Read-only
Inspect

Retrieve the current native ETH balance of a wallet on Ethereum or Base and, optionally, balances for up to 20 specified ERC-20 token contracts. Results are point-in-time observations of live chain state and may change between calls. Does not evaluate wallet ownership, solvency, transaction safety, or whether a transaction should be executed. USE WHEN: an agent needs the current ETH balance or balances of specific ERC-20 tokens for an EVM address. DO NOT USE WHEN: the agent needs transaction details (evm_transaction_hash_lookup), current gas price (evm_gas_price_lookup), historical balances, or a transaction execution decision.

NameRequiredDescriptionDefault
chainYesEVM network containing the wallet.
tokensNoUp to 20 ERC-20 token contract addresses to query balances for.
addressYesOne EVM wallet address to inspect.

Output Schema

NameRequiredDescription
chainYesEVM network queried.
addressYesEVM wallet address inspected.
observed_atYesUTC observation time.
native_balanceYesCurrent native ETH balance observed at request time.
token_balancesYesBalances for each requested ERC-20 token contract address.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, it discloses that results are point-in-time observations of live chain state that may change between calls, which explains the idempotentHint=false setting, and it enumerates negative capability boundaries (no solvency, ownership, or transaction-safety judgment). This is exactly the extra context annotations cannot convey.

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?

Front-loaded with the core action and scope, then usage routing and exclusions; every sentence carries distinct information with no filler. The do-not-use list adds the historical-balance exclusion that the schema cannot express.

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 read-only, three-parameter lookup with a full output schema and complete annotation coverage, nothing an agent needs to call it correctly is missing. Response format is intentionally left to the output schema.

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

Parameters3/5

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

Schema description coverage is 100%, including the 20-item cap, address pattern, and chain enum, so the schema carries the parameter burden. The description adds only the semantic distinction that ETH is always returned while the token list is optional, which is marginal beyond what the schema already states.

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?

Names a specific verb and resource (retrieve native ETH balance for an EVM wallet), states the supported chains, and clarifies the optional expansion to up to 20 ERC-20 contracts. It also explicitly bounds the scope (no ownership, solvency, or safety evaluation), which separates it from the decision-oriented siblings.

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

Usage Guidelines5/5

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

Provides explicit USE WHEN and DO NOT USE WHEN sections and names the sibling tools to route to instead (evm_transaction_hash_lookup, evm_gas_price_lookup) plus the excluded cases of historical balances and execution decisions. An agent can select or reject this tool without any inference.

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

token_security_decisionToken Security DecisionA
Read-only
Inspect

Evaluate a crypto token for agent interaction using security evidence from GoPlus (primary) and Honeypot.is (complementary, EVM chains only) and return a STRAELO decision that is deterministic for the same observed provider evidence; provider evidence can change between calls and external provider calls may affect latency and availability. There is no tool-specific rate limit. USE WHEN: an agent needs a machine-readable security decision before interacting with a token on Base, Ethereum, BSC, or Solana. DO NOT USE WHEN: the agent needs a guarantee that a token is safe, legitimate, scam-free, or risk-free; provider evidence may be unavailable or incomplete. Returns ALLOW, REVIEW, AVOID, or INCOMPLETE with supporting evidence. Missing or insufficient provider evidence fails closed and never produces ALLOW.

NameRequiredDescriptionDefault
chainYesBlockchain containing the token. Accepts base, ethereum, bsc, or solana. Input is normalized to lowercase.
token_addressYesToken identifier to evaluate. For base, ethereum, or bsc, provide an EVM contract address (0x followed by 40 hexadecimal characters). For solana, provide the token mint address as a base58 public key.

Output Schema

NameRequiredDescription
chainYesBlockchain network queried.
productYesProduct identifier.
reasonsYesShort, objective, machine-readable reasons supporting the decision.
decisionYesToken security decision: ALLOW, REVIEW, AVOID or INCOMPLETE.
evidenceYesProvider evidence that supported the decision.
confidenceYesConfidence in the decision.
risk_scoreYesRisk score from 0 to 100.
observed_atYesUTC timestamp of the decision.
token_addressYesToken address/mint inspected.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: declares the decision is deterministic for identical evidence, that evidence can change between calls (consistent with idempotentHint=false), that external provider latency/availability is a factor, that there is no tool-specific rate limit, and that insufficient evidence fails closed and never yields ALLOW. That failure-mode disclosure is exactly the context annotations cannot express.

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?

Dense but purposeful, with usage and exclusion blocks clearly labeled. Slight cost: the opening sentence carries nested parentheticals, and the closing 'fails closed / never produces ALLOW' partially restates the earlier evidence-availability warning, so it is a sentence longer than strictly needed.

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 read-only, open-world decision tool with an output schema, the description supplies the missing pieces: provider provenance, determinism semantics, chain coverage, failure behavior, and explicit non-guarantees. An agent can decide whether to call it and how to interpret INCOMPLETE without further context.

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 already documents chain normalization and the address format per chain, so the code-level semantics are covered. The description adds only a provider-level nuance (Honeypot.is is EVM-only, GoPlus primary), without per-parameter format or constraint detail beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb+resource ('Evaluate a crypto token for agent interaction'), names the evidence providers, the supported chains, and the exact output vocabulary (ALLOW/REVIEW/AVOID/INCOMPLETE). This clearly separates it from sibling tools, which are all *other* decision types (domain_risk_trust_decision, x402_payment_preflight_decision, etc.).

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

Usage Guidelines5/5

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

Explicit 'USE WHEN' names the triggering condition and the four chains; explicit 'DO NOT USE WHEN' excludes safety/legitimacy guarantees and warns about unavailable or incomplete evidence. That is the full when/when-not pair an agent needs to route correctly.

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

vendor_customer_adoption_change_lookupVendor Customer Adoption Change LookupA
Read-only
Inspect

Retrieve confirmed customer adoption changes for a specified vendor within a UTC time window, returning customer domains with ADDED or REMOVED events, supporting evidence, and timestamps. ADDED represents a confirmed ABSENT -> PRESENT transition and REMOVED represents a confirmed PRESENT -> ABSENT transition in STRAELO CSI observations; REMOVED does not by itself prove a vendor switch or contract cancellation. USE WHEN: an agent needs historical evidence of customers adopting or removing a specific vendor during a period. DO NOT USE WHEN: the agent needs customers currently confirmed as using a vendor (vendor_customer_confirmed_lookup), vendors currently detected on a specific customer domain (customer_vendor_detection), or potential vendor replacement signals (vendor_customer_transition_signal_lookup). Results reflect persisted CSI history and may change as new transitions are recorded; the tool does not perform live scans or modify state.

NameRequiredDescriptionDefault
endYesExclusive UTC end boundary (ISO-8601, timezone-aware); must be later than start.
limitNoMaximum confirmed changes to return (1-100; default 100). No pagination; change_count reflects the number returned after this limit.
startYesInclusive UTC start boundary (ISO-8601, timezone-aware).
vendorYesTechnology/vendor to query; canonical names are accepted, with judge.me normalized to judgeme.

Output Schema

NameRequiredDescription
endYesExclusive UTC end boundary queried.
startYesInclusive UTC start boundary queried.
vendorYesNormalized vendor/technology key queried.
changesYesConfirmed ADDED/REMOVED changes ordered by changed_at DESC, domain ASC.
productYesProduct identifier.
observed_atYesUTC timestamp of the query response generation.
change_countYesNumber of confirmed changes returned after applying the limit.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true, idempotentHint=false), and the description adds genuinely non-obvious behavior: results come from persisted CSI history and may change as new transitions are recorded, no live scans are performed, and no state is modified — which also explains the non-idempotent hint. It further guards against misreading `REMOVED` as proof of a vendor switch or cancellation.

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?

Front-loaded with the verb and resource, then the event definitions, then clearly delineated USE WHEN / DO NOT USE WHEN blocks, then freshness caveats. Every sentence carries distinct information; the enumerated siblings are dense but each is necessary for routing.

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 read-only lookup with a full output schema, rich annotations, and 100% schema coverage, the description supplies everything else an agent needs: what counts as an event, what it does not prove, when to prefer a sibling tool, and the data-freshness caveat. No material gaps remain.

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%: start/end boundaries, the 1-100 limit with default 100 and no pagination, and vendor normalization (judge.me -> judgeme) are all documented in the schema itself. The description only restates the UTC time-window framing, so baseline 3 applies — it adds no parameter detail beyond structured fields.

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?

States a specific verb (Retrieve) and resource (confirmed customer adoption changes for a vendor in a UTC window) and then defines the two event types with precise domain semantics (`ADDED` = `ABSENT -> PRESENT`, `REMOVED` = `PRESENT -> ABSENT` in STRAELO CSI observations). It also explicitly rules out the two most confusable siblings, so the agent can distinguish this from vendor_customer_confirmed_lookup and vendor_customer_transition_signal_lookup without opening schemas.

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

Usage Guidelines5/5

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

Contains an explicit USE WHEN clause (historical evidence of adoption/removal during a period) and a DO NOT USE WHEN clause naming three concrete alternative tools with the condition that selects each. Nothing about tool choice is left to inference.

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

vendor_customer_confirmed_lookupVendor Customer Confirmed LookupA
Read-only
Inspect

Retrieve confirmed customer domains currently using a specified vendor from STRAELO's persisted CSI coverage. Returns only confirmed PRESENT customer-vendor relationships with supporting evidence and confirmation timestamps, normalized and deduplicated. Results represent STRAELO's currently confirmed coverage, not the vendor's complete global customer base; an empty result means no confirmed customers are available within STRAELO coverage for that vendor, not that the vendor has no customers. USE WHEN: an agent needs to identify which customers are currently confirmed as using a specific vendor. DO NOT USE WHEN: scanning a specific customer domain for detectable vendors (customer_vendor_detection), retrieving historical adoption/removal events (vendor_customer_adoption_change_lookup), or identifying customer transition signals (vendor_customer_transition_signal_lookup).

NameRequiredDescriptionDefault
limitNoMaximum confirmed customers to return (1-100; default 100). No pagination; limits customers and returned_count, not confirmed_customer_count.
vendorYesTechnology/vendor to query; canonical names are accepted, with judge.me normalized to judgeme.

Output Schema

NameRequiredDescription
vendorYesNormalized vendor/technology key queried.
productYesProduct identifier.
customersYesConfirmed customer relationships, ordered by confirmation freshness.
returned_countYesNumber of customers returned in this response (bounded by limit).
confirmed_customer_countYesTotal confirmed PRESENT customers for the vendor.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds non-obvious interpretive context: results are confined to STRAELO's confirmed coverage rather than the vendor's global customer base, and an empty result must not be read as the vendor having no customers. It also discloses returned evidence/confirmation timestamps and normalization/deduplication behavior, which materially affects how the agent should trust and present results.

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?

Front-loaded with the core operation, then the coverage caveat, then bolded routing blocks — well structured and mostly earn-your-place. Some repetition of 'currently confirmed' and 'STRAELO coverage' across sentences costs a point but doesn't obscure anything.

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 an output schema (so return shape needn't be described), full schema coverage, and strong annotations, the description supplies exactly what structured fields cannot: coverage limits, empty-result semantics, and sibling routing. Nothing an agent needs to call and interpret it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with the limit and vendor parameters fully documented in the schema (max 100, no pagination, canonical name normalization). The description adds no parameter-level meaning beyond that, so the baseline of 3 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?

States a specific verb and resource ('Retrieve confirmed customer domains currently using a specified vendor') plus the data source (STRAELO's persisted CSI coverage). It explicitly bounds the result set (only confirmed PRESENT relationships, normalized and deduplicated), which distinguishes it from the detection and history siblings.

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

Usage Guidelines5/5

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

Provides explicit USE WHEN and DO NOT USE WHEN blocks, naming three concrete alternatives (customer_vendor_detection, vendor_customer_adoption_change_lookup, vendor_customer_transition_signal_lookup) with the condition that selects each. The direction of the lookup — vendor to customers, not customer to vendors — is unambiguous.

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

vendor_customer_transition_signal_lookupVendor Customer Transition Signal LookupAInspect

Find customer domains with observed technology transition signals involving a specified vendor and return prioritized signals with supporting evidence. USE WHEN: an agent needs to identify customer-level technology transition signals related to a vendor for prospecting or change analysis. DO NOT USE WHEN: the agent needs confirmed proof that a customer switched from one vendor to another (vendor_customer_confirmed_lookup), historical ADDED/REMOVED adoption events (vendor_customer_adoption_change_lookup), or vendors currently detected on a specific customer domain (customer_vendor_detection); POSSIBLE_REPLACEMENT is a correlated signal, not a confirmed switch. Side effect: unsupported-vendor requests may persist aggregated demand telemetry. Results reflect CSI snapshots and may change between calls.

NameRequiredDescriptionDefault
vendorYesVendor whose customer technology transition signals should be evaluated. Supported values: yotpo, judge.me.

Output Schema

NameRequiredDescription
errorNoError type name on pipeline/discovery error, otherwise null.
leadsYesPrioritized transition signals when available.
demandNoDemand telemetry for unsupported vendors.
reasonNoHuman-readable reason for the status, when applicable.
statusYesMachine-readable outcome status for the request.
vendorYesNormalized vendor/technology key queried.
chargedYesWhether payment was settled for this chargeable CSI delivery; false for unsupported or non-chargeable outcomes.
targetsYesValidated target domains scanned.
supportedYesWhether the queried vendor is supported by this capability.

TDQS

A4.7/5.0
Behavior5/5

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

The description adds important behavior beyond the annotations: unsupported vendors may persist aggregated demand telemetry, results reflect CSI snapshots, and outputs may change between calls. These details are consistent with the non-read-only, non-idempotent annotations and help an agent understand side effects and result volatility.

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 front-loaded with the core action, then layers usage rules, exclusions, side effects, and snapshot caveats without wasted prose. Every sentence contributes distinct operational 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 single fully documented parameter, an existing output schema, and clear sibling differentiation, the description provides everything needed to select and invoke the tool correctly. It also covers the side-effect and non-determinism concerns that annotations alone would not fully explain.

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 fully documents the single vendor parameter, including its enum values, so the schema carries the detailed semantics. The description only adds "specified vendor" context and does not provide additional syntax, defaults, or constraints beyond what the schema already states, which is the expected baseline when schema coverage is high.

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

Purpose5/5

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

The description states a specific verb and resource: find customer domains with observed technology transition signals involving a specified vendor, returning prioritized signals with evidence. It also names sibling tools and explains how this tool differs from them, so an agent can distinguish it without opening other schemas.

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

Usage Guidelines5/5

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

It gives explicit USE WHEN and DO NOT USE WHEN guidance, naming the exact alternative tools for confirmed switches, adoption events, and current vendor detection. The POSSIBLE_REPLACEMENT caveat further clarifies the boundary between correlated signals and confirmed switches.

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

x402_payment_preflight_decisionx402 Payment Preflight DecisionA
Read-onlyIdempotent
Inspect

Check an x402 payment request before signing or paying and return a deterministic PAY, REVIEW or DO_NOT_PAY decision. USE WHEN: agent needs deterministic verification of a payment requirement before deciding whether to pay. DO NOT USE WHEN: agent expects this tool to execute the payment. Offline/read-only preflight: no network calls, signing, settlement, or payment execution. Decision derives from comparing declared intent against the supplied x402 v2 PAYMENT-REQUIRED; mismatches yield DO_NOT_PAY, material snapshot changes yield REVIEW, consistency yields PAY.

NameRequiredDescriptionDefault
intentYesBuyer-declared payment policy: expected seller label, service, resource URL, and optional payment constraints (asset, network, destination, amount, tolerance) used to evaluate consistency against the observed x402 challenge.
payment_requiredYesObserved x402 v2 PAYMENT-REQUIRED challenge decoded as JSON.
previous_snapshotNoOptional prior snapshot for stateless material-change detection against a prior result.

Output Schema

NameRequiredDescription
changesYesMaterial changes between current result and previous_snapshot; any change drives REVIEW when no mismatch exists.
matchedYesIntent fields that matched the observed x402 payment requirement.
coverageYesScope of the offline comparison: what is and is not evaluated by this preflight.
decisionYesDeterministic preflight payment decision: PAY when intent matches the observed requirement and no material change; REVIEW when consistent but materially changed from previous_snapshot; DO_NOT_PAY when any intent field mismatches the observed requirement.
evidenceYesDerived solely from the supplied intent and payment_required; contains the parsed payment requirement, seller label, and resource domain.
snapshotYesReusable stateless comparison state for detecting material changes on a subsequent call.
assessmentYesConsistency decision only; never a safety rating.
mismatchedYesIntent fields that mismatched the observed x402 payment requirement; any mismatch drives DO_NOT_PAY.
reason_codesYesMachine-readable codes explaining the decision; mismatch codes when DO_NOT_PAY, change codes when REVIEW.
checks_skippedYesChecks skipped because the corresponding expected field was not declared in intent.
external_callsYesAlways empty in this offline MVP.
checks_performedYesConsistency checks actually executed for this request.
payment_fingerprintYesSHA-256 of canonical material payment fields.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only and idempotency, yet the description adds what the annotations cannot: no network calls, no signing, no settlement, and the decision derivation rule (mismatch to DO_NOT_PAY, material snapshot change to REVIEW, consistency to PAY). Determinism and offline semantics are exactly the behavioral context an agent needs before trusting the result.

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?

Front-loads purpose in the first sentence, then structured USE WHEN / DO NOT USE WHEN / behavior blocks. Dense but every sentence carries distinct information; only the final derivation sentence is slightly compressed rather than wasted.

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 values need no explanation, and the decision enum semantics are still spelled out. Nested intent parameters, the snapshot mechanism, and the offline safety profile are all covered, leaving nothing an agent needs in order to call this 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% and nested fields are thoroughly documented, so the baseline is 3. The description earns an increment by explaining the relationship between inputs: the declared intent is compared against the supplied x402 v2 PAYMENT-REQUIRED, and previous_snapshot drives stateless material-change detection, which clarifies the third optional parameter's role.

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?

States a specific verb and resource ('Check an x402 payment request before signing or paying') and names the concrete output (deterministic PAY, REVIEW or DO_NOT_PAY decision). The DO_NOT_USE_WHEN line separates it from execution/payment siblings such as evm_transaction_execution_decision.

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

Usage Guidelines5/5

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

Explicit USE WHEN and DO NOT USE WHEN clauses give both the trigger condition and the exclusion, so an agent knows this is a verification gate, not a payment action. The boundary against execution is stated outright rather than left to inference.

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.

  1. 2 tool updates
    • Changedvendor_customer_adoption_change_lookup2 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum confirmed changes to return (1-100)."New value: +"Maximum confirmed changes to return (1-100; default 100). No pagination; change_count reflects the number returned after this limit."
      • changedInput schema / properties / vendor / description
        Previous value: -"Technology/vendor to query confirmed changes for (e.g., klaviyo, yotpo, judge.me); canonical vendor names and supported aliases are accepted."New value: +"Technology/vendor to query; canonical names are accepted, with judge.me normalized to judgeme."
    • Changedvendor_customer_confirmed_lookup2 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum confirmed customers to return (1-100)."New value: +"Maximum confirmed customers to return (1-100; default 100). No pagination; limits customers and returned_count, not confirmed_customer_count."
      • changedInput schema / properties / vendor / description
        Previous value: -"Technology/vendor to query confirmed customers for (e.g., klaviyo, yotpo, judge.me); canonical vendor names and supported aliases are accepted."New value: +"Technology/vendor to query; canonical names are accepted, with judge.me normalized to judgeme."
  2. 6 tool updates
    • Changeddefi_route_decision3 fields changed
      • addedOutput schema / properties / observed_at / description
        Added value: +"UTC timestamp when the latest provider quote was observed during this request."
      • addedOutput schema / properties / provider_failures / description
        Added value: +"Providers that failed to return a valid quote, with provider name and failure category."
      • addedOutput schema / properties / status / description
        Added value: +"Outcome of the quote comparison: COMPARISON_AVAILABLE when at least two valid quotes exist, PARTIAL when some but not all providers succeeded, UPSTREAM_UNAVAILABLE when no provider returned a valid quote."
    • Changeddomain_agent_discovery_check9 fields changed
      • changedInput schema / properties / previous_state / description
        Previous value: -"Optional prior new_state returned by this product for stateless change detection."New value: +"Optional prior `new_state` returned by this product. Supplied statelessly by the caller; when provided, it is compared against the current observation to populate `changes`. Omit it for a baseline inspection with no change detection."
      • addedOutput schema / properties / actions / description
        Added value: +"Recommended remediation actions derived from detected issues. Each item includes a code and a human-readable action. The tool does not execute these actions; they are recommendations only."
      • addedOutput schema / properties / changes / description
        Added value: +"Material field-level differences between `previous_state` and the current observation. Each item names a changed field with its previous and current values. Empty when `previous_state` is omitted or no field differs. Requires `previous_state` to produce non-empty results."
      • addedOutput schema / properties / current_state / description
        Added value: +"Structured snapshot of the current observation: domain, DNS, health, email posture, and agent readiness. Identical to `new_state`. Compared against `previous_state` to produce `changes` when supplied. Not persisted server-side."
      • addedOutput schema / properties / data_quality / description
        Added value: +"Observation quality summary: checks requested, completed, and failed, plus coverage (complete or partial). Reflects partial failures and missing surfaces. Not a score or verdict."
      • addedOutput schema / properties / evidence / description
        Added value: +"Observed evidence from DNS, HTTP/HTTPS, and agent-discovery checks. Each item names a source, the observation timestamp, the observed value, and freshness. Contains live remote observations; does not guarantee proof or validation."
      • addedOutput schema / properties / issues / description
        Added value: +"Detected issues from the inspection: unresolved DNS, unavailable HTTPS, missing SPF/DMARC, TLS expiring soon, or unavailable agent-discovery signals. Each item includes a code, severity, message, and evidence references. Empty when no issues are found. Not a safety or security verdict."
      • addedOutput schema / properties / new_state / description
        Added value: +"Current observation state, structured identically to `current_state`. Can be supplied as `previous_state` in a subsequent call to enable change detection. Not persisted server-side; the caller stores and passes it back."
      • addedOutput schema / properties / observed_at / description
        Added value: +"UTC timestamp when the inspection observation was generated, in ISO 8601 format with Z suffix. Reflects the local observation time, not a provider timestamp."
    • Changeddomain_risk_trust_decision7 fields changed
      • addedOutput schema / properties / a / description
        Added value: +"Observed DNS A (IPv4) records."
      • addedOutput schema / properties / aaaa / description
        Added value: +"Observed DNS AAAA (IPv6) records."
      • addedOutput schema / properties / dmarc / description
        Added value: +"DMARC records derived from observed DNS TXT records (v=dmarc1)."
      • addedOutput schema / properties / mx / description
        Added value: +"Observed DNS MX records."
      • addedOutput schema / properties / ns / description
        Added value: +"Observed DNS NS records."
      • addedOutput schema / properties / spf / description
        Added value: +"SPF records derived from observed DNS TXT records (v=spf1)."
      • addedOutput schema / properties / txt / description
        Added value: +"Observed DNS TXT records."
    • Changedemail_suitability_decision4 fields changed
      • changedInput schema / properties / use_case / description
        Previous value: -"Intended sending context; when provided, the decision accounts for context-specific risk."New value: +"Intended sending context; when provided, the decision accounts for context-specific risk. Omitted for a baseline decision without contextual adjustments."
      • addedOutput schema / properties / checks / description
        Added value: +"Per-signal check results keyed by check name: syntax, domain, mx, spf, dmarc, disposable, role_account. Each value is a machine-readable result string (e.g. 'syntax:valid', 'mx:found', 'spf:pass', 'disposable:no'). Partial when a DNS lookup is unavailable."
      • addedOutput schema / properties / reasons / description
        Added value: +"Machine-readable reason codes explaining the decision and corresponding to observed checks."
      • addedOutput schema / properties / use_case / description
        Added value: +"The validated use case echoed from the input; null when omitted. Affects contextual decision adjustments such as role-account tolerance and SPF/DMARC weighting."
    • Changedevm_transaction_hash_lookup1 field changed
      • changedOutput schema / properties / observed_at / description
        Previous value: -"UTC observation timestamp (milliseconds since epoch)."New value: +"UTC observation timestamp in ISO-8601 format with Z suffix."
    • Changedx402_payment_preflight_decision12 fields changed
      • addedInput schema / properties / intent / description
        Added value: +"Buyer-declared payment policy: expected seller label, service, resource URL, and optional payment constraints (asset, network, destination, amount, tolerance) used to evaluate consistency against the observed x402 challenge."
      • changedInput schema / properties / previous_snapshot / description
        Previous value: -"Optional prior snapshot for stateless material-change detection."New value: +"Optional prior snapshot for stateless material-change detection against a prior result."
      • addedOutput schema / properties / changes / description
        Added value: +"Material changes between current result and previous_snapshot; any change drives REVIEW when no mismatch exists."
      • addedOutput schema / properties / checks_performed / description
        Added value: +"Consistency checks actually executed for this request."
      • addedOutput schema / properties / checks_skipped / description
        Added value: +"Checks skipped because the corresponding expected field was not declared in intent."
      • addedOutput schema / properties / coverage / description
        Added value: +"Scope of the offline comparison: what is and is not evaluated by this preflight."
      • changedOutput schema / properties / decision / description
        Previous value: -"Deterministic preflight payment decision."New value: +"Deterministic preflight payment decision: PAY when intent matches the observed requirement and no material change; REVIEW when consistent but materially changed from previous_snapshot; DO_NOT_PAY when any intent field mismatches the observed requirement."
      • addedOutput schema / properties / evidence / description
        Added value: +"Derived solely from the supplied intent and payment_required; contains the parsed payment requirement, seller label, and resource domain."
      • addedOutput schema / properties / matched / description
        Added value: +"Intent fields that matched the observed x402 payment requirement."
      • addedOutput schema / properties / mismatched / description
        Added value: +"Intent fields that mismatched the observed x402 payment requirement; any mismatch drives DO_NOT_PAY."
      • addedOutput schema / properties / reason_codes / description
        Added value: +"Machine-readable codes explaining the decision; mismatch codes when DO_NOT_PAY, change codes when REVIEW."
      • changedOutput schema / properties / snapshot / description
        Previous value: -"Reusable stateless comparison state."New value: +"Reusable stateless comparison state for detecting material changes on a subsequent call."
  3. 2 tool updates
    • Changedvendor_customer_confirmed_lookup1 field changed
      • changedInput schema / properties / vendor / description
        Previous value: -"Technology/vendor to query confirmed customers for (e.g., klaviyo, yotpo, judge.me)."New value: +"Technology/vendor to query confirmed customers for (e.g., klaviyo, yotpo, judge.me); canonical vendor names and supported aliases are accepted."
    • Changedvendor_customer_transition_signal_lookup8 fields changed
      • changedInput schema / properties / vendor / description
        Previous value: -"Vendor whose customer technology transition signals should be evaluated."New value: +"Vendor whose customer technology transition signals should be evaluated. Supported values: yotpo, judge.me."
      • addedOutput schema / properties / charged / description
        Added value: +"Whether payment was settled for this chargeable CSI delivery; false for unsupported or non-chargeable outcomes."
      • addedOutput schema / properties / error / description
        Added value: +"Error type name on pipeline/discovery error, otherwise null."
      • addedOutput schema / properties / reason / description
        Added value: +"Human-readable reason for the status, when applicable."
      • addedOutput schema / properties / status / description
        Added value: +"Machine-readable outcome status for the request."
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "OK",
        -  "UNSUPPORTED_VENDOR",
        -  "NO_TARGETS_FOUND",
        -  "PIPELINE_ERROR",
        -  "INVALID_INPUT"
        -]New value: +[
        +  "OK",
        +  "UNSUPPORTED_VENDOR",
        +  "NO_TARGETS_FOUND",
        +  "PIPELINE_ERROR",
        +  "INVALID_INPUT",
        +  "UNKNOWN_PAYMENT_STATE",
        +  "REFRESH_REQUIRED",
        +  "DISCOVERY_REQUIRED",
        +  "DISCOVERY_COOLDOWN"
        +]
      • addedOutput schema / properties / supported / description
        Added value: +"Whether the queried vendor is supported by this capability."
      • addedOutput schema / properties / vendor / description
        Added value: +"Normalized vendor/technology key queried."
  4. 3 tool updates
    • Changedevm_transaction_hash_lookup2 fields changed
      • addedOutput schema / properties / contract / description
        Added value: +"Contract interaction details detected from calldata."
      • addedOutput schema / properties / gas / description
        Added value: +"Gas usage and fee details of the transaction."
    • Changedevm_wallet_balance_lookup2 fields changed
      • addedOutput schema / properties / native_balance / description
        Added value: +"Current native ETH balance observed at request time."
      • addedOutput schema / properties / token_balances / description
        Added value: +"Balances for each requested ERC-20 token contract address."
    • Changedvendor_customer_adoption_change_lookup3 fields changed
      • changedInput schema / properties / end / description
        Previous value: -"Exclusive UTC end boundary (ISO-8601, timezone-aware)."New value: +"Exclusive UTC end boundary (ISO-8601, timezone-aware); must be later than start."
      • changedInput schema / properties / vendor / description
        Previous value: -"Technology/vendor to query confirmed changes for (e.g., klaviyo, yotpo, judge.me)."New value: +"Technology/vendor to query confirmed changes for (e.g., klaviyo, yotpo, judge.me); canonical vendor names and supported aliases are accepted."
      • changedOutput schema / properties / change_count / description
        Previous value: -"Total confirmed changes for the vendor in the window."New value: +"Number of confirmed changes returned after applying the limit."
  5. 13 tool updates
    • Removedchange_intelligence
    • Removedcompetitor_switch_intelligence
    • Addeddomain_agent_discovery_check
    • Removeddomain_agent_readiness_check
    • Addedemail_suitability_decision
    • Removedemail_validator_basic
    • Addedevm_latest_block_lookup
    • Addedevm_transaction_execution_decision
    • Removedlatest_block_number
    • Changedtoken_security_decision2 fields changed
      • changedInput schema / properties / chain / description
        Previous value: -"Blockchain network where the token is deployed."New value: +"Blockchain containing the token. Accepts base, ethereum, bsc, or solana. Input is normalized to lowercase."
      • changedInput schema / properties / token_address / description
        Previous value: -"Token contract address (EVM) or token mint address (Solana)."New value: +"Token identifier to evaluate. For base, ethereum, or bsc, provide an EVM contract address (0x followed by 40 hexadecimal characters). For solana, provide the token mint address as a base58 public key."
    • Removedtransaction_intelligence
    • Addedvendor_customer_adoption_change_lookup
    • Addedvendor_customer_transition_signal_lookup
  6. 1 tool update
    • Changedcustomer_vendor_detection1 field changed
      • changedInput schema / properties / domain / description
        Previous value: -"Public domain to scan for detectable technologies; localhost and IP literals are rejected."New value: +"Bare public hostname (e.g., example.com). No protocol, path, query, or fragment. Localhost and IP literals rejected."
  7. 2 tool updates
    • Removeddns_intelligence
    • Addeddomain_risk_trust_decision
  8. 2 tool updates
    • Removeddefi_execution_snapshot
    • Addeddefi_route_decision
  9. 2 tool updates
    • Removedinstalled_base_intelligence
    • Addedvendor_customer_confirmed_lookup
  10. 2 tool updates
    • Addedcustomer_vendor_detection
    • Removedtechnology_intelligence
  11. 1 tool update
    • Addedevm_transaction_hash_lookup
  12. 1 tool update
    • Addedevm_gas_price_lookup
  13. 1 tool update
    • Addedtoken_security_decision
  14. 10 tool updates
    • Removedblockchain_intelligence
    • Changeddefi_execution_snapshot4 fields changed
      • addedOutput schema / properties / decision
        Added value: +{
        +  "description": "Deterministic economic decision: which swap quote the agent should choose right now. Not a safety authorization and does not execute a swap.",
        +  "enum": [
        +    "EXECUTE_BEST",
        +    "WAIT",
        +    "INSUFFICIENT_DATA"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / decision_reason
        Added value: +{
        +  "description": "Human-readable deterministic reason for the decision.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / decision_signals
        Added value: +{
        +  "description": "Objective signals used for the decision.",
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "status",
        -  "best_provider",
        -  "confidence",
        -  "quotes",
        -  "consensus",
        -  "economic_advantage",
        -  "partial",
        -  "provider_failures",
        -  "evidence_quality",
        -  "usage",
        -  "economics",
        -  "observed_at"
        -]New value: +[
        +  "status",
        +  "best_provider",
        +  "confidence",
        +  "quotes",
        +  "consensus",
        +  "economic_advantage",
        +  "partial",
        +  "provider_failures",
        +  "evidence_quality",
        +  "usage",
        +  "economics",
        +  "decision",
        +  "decision_reason",
        +  "decision_signals",
        +  "observed_at"
        +]
    • Addeddomain_agent_readiness_check
    • Removeddomain_intelligence
    • Addedevm_wallet_balance_lookup
    • Addedlatest_block_number
    • Removedpay_decision_snapshot
    • Changedtransaction_intelligence11 fields changed
      • addedInput schema / properties / chain / default
        Added value: +null
      • addedInput schema / properties / data
        Added value: +{
        +  "default": null,
        +  "description": "Calldata hex for contract calls.",
        +  "pattern": "^0x(?:[a-fA-F0-9]{2})*$",
        +  "title": "Data",
        +  "type": "string"
        +}
      • addedInput schema / properties / from_address
        Added value: +{
        +  "default": null,
        +  "description": "Sender address for pre-execution simulation.",
        +  "pattern": "^0x[a-fA-F0-9]{40}$",
        +  "title": "From Address",
        +  "type": "string"
        +}
      • addedInput schema / properties / to_address
        Added value: +{
        +  "default": null,
        +  "description": "Recipient/target address for pre-execution simulation.",
        +  "pattern": "^0x[a-fA-F0-9]{40}$",
        +  "title": "To Address",
        +  "type": "string"
        +}
      • addedInput schema / properties / tx_hash / default
        Added value: +null
      • changedInput schema / properties / tx_hash / description
        Previous value: -"32-byte EVM transaction hash."New value: +"32-byte EVM transaction hash (legacy post-execution mode)."
      • addedInput schema / properties / value
        Added value: +{
        +  "default": null,
        +  "description": "Native value in hex wei.",
        +  "pattern": "^0x[0-9a-fA-F]*$",
        +  "title": "Value",
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "chain",
        -  "tx_hash"
        -]
      • addedOutput schema / oneOf
        Added value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "analysis": {
        +        "description": "Deterministic execution, classification, selector, value, gas, fee, logs, and creation analysis.",
        +        "type": "object"
        +      },
        +      "chain": {
        +        "description": "Selected EVM network.",
        +        "type": "string"
        +      },
        +      "latency_ms": {
        +        "description": "Observed RPC latency in milliseconds.",
        +        "type": "integer"
        +      },
        +      "provider": {
        +        "description": "RPC provider identifier.",
        +        "type": "string"
        +      },
        +      "receipt": {
        +        "description": "Raw RPC receipt, or null when pending or unavailable.",
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "transaction": {
        +        "description": "Raw RPC transaction, or null when unavailable.",
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "tx_hash": {
        +        "description": "Requested transaction hash.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "chain",
        +      "tx_hash",
        +      "analysis",
        +      "transaction",
        +      "receipt",
        +      "provider",
        +      "latency_ms"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "chain": {
        +        "description": "Selected EVM network.",
        +        "type": "string"
        +      },
        +      "counterparty": {
        +        "description": "Recipient / counterparty address.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "decision": {
        +        "description": "Pre-execution decision.",
        +        "enum": [
        +          "ALLOW",
        +          "WARN",
        +          "BLOCK",
        +          "INCOMPLETE"
        +        ],
        +        "type": "string"
        +      },
        +      "decoded_action": {
        +        "description": "Decoded ERC20/ERC1155 action when recognized.",
        +        "type": [
        +          "object",
        +          "null"
        +        ]
        +      },
        +      "estimated_gas": {
        +        "description": "Estimated gas from eth_estimateGas.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "findings": {
        +        "description": "Deterministic factual findings.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "interaction_type": {
        +        "description": "Recognized interaction type.",
        +        "type": "string"
        +      },
        +      "latency_ms": {
        +        "description": "Observed RPC latency in milliseconds.",
        +        "type": "integer"
        +      },
        +      "method_selector": {
        +        "description": "First 4 bytes of calldata.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "native_value": {
        +        "description": "Native value in decimal wei.",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "provider": {
        +        "description": "RPC provider identifier.",
        +        "type": "string"
        +      },
        +      "reasons": {
        +        "description": "Human-readable reasons for the decision.",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "simulation_status": {
        +        "description": "RPC simulation outcome.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "chain",
        +      "decision",
        +      "simulation_status",
        +      "method_selector",
        +      "interaction_type",
        +      "counterparty",
        +      "native_value",
        +      "findings",
        +      "reasons",
        +      "provider",
        +      "latency_ms"
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties
        Removed value: -{
        -  "analysis": {
        -    "description": "Deterministic execution, classification, selector, value, gas, fee, logs, and creation analysis.",
        -    "type": "object"
        -  },
        -  "chain": {
        -    "description": "Selected EVM network.",
        -    "type": "string"
        -  },
        -  "latency_ms": {
        -    "description": "Observed RPC latency in milliseconds.",
        -    "type": "integer"
        -  },
        -  "provider": {
        -    "description": "RPC provider identifier.",
        -    "type": "string"
        -  },
        -  "receipt": {
        -    "description": "Raw RPC receipt, or null when pending or unavailable.",
        -    "type": [
        -      "object",
        -      "null"
        -    ]
        -  },
        -  "transaction": {
        -    "description": "Raw RPC transaction, or null when unavailable.",
        -    "type": [
        -      "object",
        -      "null"
        -    ]
        -  },
        -  "tx_hash": {
        -    "description": "Requested transaction hash.",
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "chain",
        -  "tx_hash",
        -  "analysis",
        -  "transaction",
        -  "receipt",
        -  "provider",
        -  "latency_ms"
        -]
    • Removedweb_intelligence
    • Addedx402_payment_preflight_decision
  15. 4 tool updates
    • Removedchain_contract_call
    • Addeddns_intelligence
    • Addedtransaction_intelligence
    • Removedurl_clean_content
  16. 1 tool update
    • Changedemail_validator_basic13 fields changed
      • changedInput schema / properties / email / description
        Previous value: -"Email address for syntax, domain and MX validation."New value: +"Email address for deliverability validation."
      • addedInput schema / properties / use_case
        Added value: +{
        +  "default": null,
        +  "description": "Intended sending context; when provided, the decision accounts for context-specific risk.",
        +  "enum": [
        +    "outbound_sales",
        +    "account_signup",
        +    "transactional_email",
        +    "crm_import",
        +    "lead_qualification"
        +  ],
        +  "title": "Use Case",
        +  "type": "string"
        +}
      • addedOutput schema / properties / checks
        Added value: +{
        +  "properties": {
        +    "disposable": {
        +      "type": "string"
        +    },
        +    "dmarc": {
        +      "type": "string"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "mx": {
        +      "type": "string"
        +    },
        +    "role_account": {
        +      "type": "string"
        +    },
        +    "spf": {
        +      "type": "string"
        +    },
        +    "syntax": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / confidence
        Added value: +{
        +  "description": "Confidence in the decision from 0 to 100.",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / decision
        Added value: +{
        +  "description": "Context-aware send decision for the given use case.",
        +  "enum": [
        +    "ALLOW",
        +    "REVIEW",
        +    "REJECT"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / deliverability_score
        Added value: +{
        +  "description": "Deliverability score from 0 to 100.",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / domain / description
        Added value: +"Lowercased domain part."
      • addedOutput schema / properties / email
        Added value: +{
        +  "description": "Validated email address (domain-lowercased).",
        +  "type": "string"
        +}
      • addedOutput schema / properties / mx_found / description
        Added value: +"Backward-compatible MX result; null means lookup unavailable."
      • addedOutput schema / properties / risk_level
        Added value: +{
        +  "description": "Risk level derived from observed signals.",
        +  "enum": [
        +    "LOW",
        +    "MEDIUM",
        +    "HIGH"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / use_case
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / valid / description
        Added value: +"Backward-compatible validity summary."
      • changedOutput schema / required
        Previous value: -[
        -  "valid",
        -  "domain",
        -  "mx_found",
        -  "reasons"
        -]New value: +[
        +  "valid",
        +  "email",
        +  "domain",
        +  "deliverability_score",
        +  "risk_level",
        +  "decision",
        +  "confidence",
        +  "checks",
        +  "reasons"
        +]
  17. 1 tool update
    • Addedcompetitor_switch_intelligence

Publisher details

Operator
STRAELO · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
Some tools require x402 pay-per-use payment. No subscription or admin approval is required. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables AI agents to perform general-purpose open-source intelligence lookups across domains, infrastructure, identity, social media, and threat/breach sources through a unified MCP interface, with most tools free and no API keys required.
    32
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Web intelligence MCP server for AI agents. 7 tools for SERP analysis, competitor research, market trends, content gap analysis, keyword insights, audience discovery, and citation tracking.
    7
    17 PyPI
    2
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents and analysts to gather public web information through seven MCP tools, including compliant search across 360/Bing/Sogou, reading pages and documents as Markdown, mapping sitemaps, scholarly lookups, and resumable link-by-link browsing with robots checks and rate limiting.
    1
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI coding agents and LLMs to scrape web pages into clean Markdown, audit email deliverability and authentication records, and verify email signup fraud risk through MCP tools.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources