MCP tools for agents: web research, content extraction, email, DNS, and blockchain intelligence.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Inspect exactly one Base or Ethereum transaction, address, or contract with bounded read-only RPC calls and return deterministic context, observed signals, evidence, coverage, and recommended follow-up. USE WHEN: agent needs broader deterministic investigation of a transaction hash, EVM address, or contract address. DO NOT USE WHEN: agent only needs a single read-only smart-contract call; use chain-contract-call instead. Parameter semantics: `chain` is required; exactly one of `transaction_hash`, `address`, or `contract_address` must be provided.
EVM network containing the target.
One EVM address to inspect.
Optional prior new_state for stateless change detection.
One EVM contract address to inspect.
One transaction hash to inspect.
Inspect exactly one Base or Ethereum transaction, address, or contract with bounded read-only RPC calls and return deterministic context, observed signals, evidence, coverage, and recommended follow-up. USE WHEN: agent needs broader deterministic investigation of a transaction hash, EVM address, or contract address. DO NOT USE WHEN: agent only needs a single read-only smart-contract call; use chain-contract-call instead. Parameter semantics: `chain` is required; exactly one of `transaction_hash`, `address`, or `contract_address` must be provided.
| Argument | Type | Description |
|---|---|---|
| chain* | string | EVM network containing the target. |
| address | string | One EVM address to inspect. |
| previous_state | object | Optional prior new_state for stateless change detection. |
| contract_address | string | One EVM contract address to inspect. |
| transaction_hash | string | One transaction hash to inspect. |
{
"type": "object",
"title": "handlerArguments",
"required": [
"chain"
],
"properties": {
"chain": {
"enum": [
"ethereum",
"base"
],
"type": "string",
"title": "Chain",
"description": "EVM network containing the target."
},
"address": {
"type": "string",
"title": "Address",
"default": null,
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "One EVM address to inspect."
},
"previous_state": {
"type": "object",
"title": "Previous State",
"default": null,
"description": "Optional prior new_state for stateless change detection."
},
"contract_address": {
"type": "string",
"title": "Contract Address",
"default": null,
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "One EVM contract address to inspect."
},
"transaction_hash": {
"type": "string",
"title": "Transaction Hash",
"default": null,
"pattern": "^0x[a-fA-F0-9]{64}$",
"description": "One transaction hash to inspect."
}
}
}Execute one read-only EVM smart contract call on Ethereum or Base and return the normalized result without managing an RPC provider. USE WHEN: agent needs one read-only smart-contract call on a supported chain. DO NOT USE WHEN: agent needs broader transaction, address, or contract investigation with evidence and context. USE blockchain-intelligence FOR: broader deterministic inspection of a transaction, address, or contract.
| Argument | Type | Description |
|---|---|---|
| data* | string | Read-only hexadecimal ABI calldata. |
| chain* | string | EVM network for the read-only call. |
| contract_address* | string | Target EVM contract address. |
{
"type": "object",
"title": "handlerArguments",
"required": [
"chain",
"contract_address",
"data"
],
"properties": {
"data": {
"type": "string",
"title": "Data",
"description": "Read-only hexadecimal ABI calldata."
},
"chain": {
"enum": [
"ethereum",
"base"
],
"type": "string",
"title": "Chain",
"description": "EVM network for the read-only call."
},
"contract_address": {
"type": "string",
"title": "Contract Address",
"description": "Target EVM contract address."
}
}
}Return durable historical ADDED (ABSENT -> PRESENT) and REMOVED (PRESENT -> ABSENT) customer-domain changes for a vendor in a UTC time window; REMOVED does not prove contract cancellation and ADDED does not prove commercial purchase. USE WHEN: agent needs durable historical ADDED/REMOVED customer-domain changes for a vendor in a UTC time window. DO NOT USE WHEN: current confirmed customer base; technologies on one domain; competitor replacement/switch inference. USE installed-base-intelligence FOR: confirmed customer domains currently known for a technology/vendor. USE technology-intelligence FOR: technologies detected on a public domain. USE competitor-switch-intelligence FOR: competitor replacement/switch signals.
| Argument | Type | Description |
|---|---|---|
| end* | string | Exclusive UTC end boundary (ISO-8601, timezone-aware). |
| limit | integer | Maximum confirmed changes to return (1-100). |
| start* | string | Inclusive UTC start boundary (ISO-8601, timezone-aware). |
| vendor* | string | Technology/vendor to query confirmed changes for (e.g., klaviyo, yotpo, judge.me). |
{
"type": "object",
"title": "handlerArguments",
"required": [
"vendor",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"title": "End",
"format": "date-time",
"description": "Exclusive UTC end boundary (ISO-8601, timezone-aware)."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": null,
"maximum": 100,
"minimum": 1,
"description": "Maximum confirmed changes to return (1-100)."
},
"start": {
"type": "string",
"title": "Start",
"format": "date-time",
"description": "Inclusive UTC start boundary (ISO-8601, timezone-aware)."
},
"vendor": {
"type": "string",
"title": "Vendor",
"maxLength": 50,
"minLength": 1,
"description": "Technology/vendor to query confirmed changes for (e.g., klaviyo, yotpo, judge.me)."
}
}
}Return existing STRAELO competitor-switch/replacement signals and prioritized leads for supported competitors (yotpo, judge.me); unsupported competitors return UNSUPPORTED_COMPETITOR with charged=false. USE WHEN: agent needs competitor replacement/switch signals and prioritized leads for yotpo or judge.me. DO NOT USE WHEN: agent needs confirmed customer domains, vendor ADDED/REMOVED history, or technology detection on one domain. USE installed-base-intelligence FOR: confirmed customer domains currently known for a technology/vendor. USE change-intelligence FOR: durable ADDED/REMOVED changes for a vendor within a UTC time window. USE technology-intelligence FOR: technologies detected on a public domain.
| Argument | Type | Description |
|---|---|---|
| competitor* | string | Competitor technology to prospect against (yotpo, judge.me). |
{
"type": "object",
"title": "handlerArguments",
"required": [
"competitor"
],
"properties": {
"competitor": {
"enum": [
"yotpo",
"judgeme"
],
"type": "string",
"title": "Competitor",
"description": "Competitor technology to prospect against (yotpo, judge.me)."
}
}
}Compare read-only Base swap quotes from 1inch and KyberSwap, returning normalized comparable output, consensus, dispersion, quote evidence, and provider limitations without executing a swap. USE WHEN: agent needs comparative swap-quote intelligence before executing a trade. DO NOT USE WHEN: agent wants actual swap or transaction execution. Parameter semantics: `chain` is Base-only; `token_in`/`token_out` are symbols from USDC, USDT, ETH, WETH; `amount_in` is a positive decimal; `slippage_bps` is required (0-10000); optional `baseline_provider` selects oneinch or kyberswap for direct economic comparison.
| Argument | Type | Description |
|---|---|---|
| chain* | string | Base Mainnet only in this quote-only MVP. |
| token_in* | string | Input Base asset symbol. |
| amount_in* | string | Positive decimal input amount, converted exactly to raw token units. |
| token_out* | string | Output Base asset symbol; must differ from token_in. |
| slippage_bps* | integer | Slippage tolerance in basis points; it is not treated as a cost. |
| baseline_provider | string | Optional provider used only for a direct economic comparison. |
Inspect consolidated domain health — DNS, HTTP, HTTPS, TLS, redirects, MX, SPF, DMARC, email posture, security posture, and agent readiness — returning structured issues, evidence, actions, and stateless changes. USE WHEN: agent needs a comprehensive single-call domain inspection across DNS, web, email, security, and agent-readiness signals. DO NOT USE WHEN: agent only needs DNS records; narrower domain/DNS products are not exposed through MCP. Parameter semantics: `domain` is required; optional `previous_state` enables stateless change detection against a prior `new_state`.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Public domain name for consolidated domain health, DNS, TLS, and email-posture inspection; localhost and IP literals are rejected. |
| previous_state | object | Optional prior new_state for stateless change detection. |
{
"type": "object",
"title": "handlerArguments",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"title": "Domain",
"description": "Public domain name for consolidated domain health, DNS, TLS, and email-posture inspection; localhost and IP literals are rejected."
},
"previous_state": {
"type": "object",
"title": "Previous State",
"default": null,
"description": "Optional prior new_state for stateless change detection."
}
}
}Validate email syntax, domain, and MX records for basic automated checks without SMTP mailbox verification; cannot prove a mailbox exists or can receive mail. USE WHEN: agent needs inexpensive structural and mail-domain validation before using an email address. DO NOT USE WHEN: agent requires proof that a mailbox exists or can receive mail.
| Argument | Type | Description |
|---|---|---|
| email* | string | Email address for syntax, domain and MX validation. |
{
"type": "object",
"title": "handlerArguments",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"title": "Email",
"format": "email",
"description": "Email address for syntax, domain and MX validation."
}
}
}Return confirmed customer domains currently known for a specified technology/vendor; STRAELO-confirmed coverage, not a complete global installed base. USE WHEN: agent needs confirmed customer domains currently known for a specified technology/vendor. DO NOT USE WHEN: domain -> technologies; vendor + time -> ADDED/REMOVED; competitor switch/replacement signals. USE technology-intelligence FOR: technologies detected on a public domain. USE change-intelligence FOR: durable ADDED/REMOVED changes for a vendor within a UTC time window. USE competitor-switch-intelligence FOR: competitor switch/replacement signals.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum confirmed customers to return (1-100). |
| vendor* | string | Technology/vendor to query confirmed customers for (e.g., klaviyo, yotpo, judge.me). |
{
"type": "object",
"title": "handlerArguments",
"required": [
"vendor"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": null,
"maximum": 100,
"minimum": 1,
"description": "Maximum confirmed customers to return (1-100)."
},
"vendor": {
"type": "string",
"title": "Vendor",
"maxLength": 50,
"minLength": 1,
"description": "Technology/vendor to query confirmed customers for (e.g., klaviyo, yotpo, judge.me)."
}
}
}Compare one supplied x402 v2 exact Base USDC payment requirement against declared intent and return deterministic consistency, mismatch, change, fingerprint, and coverage evidence without executing a payment. 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. Parameter semantics: supply `intent` (seller, service, resource, plus optional expected fields) and `payment_required` (decoded x402 challenge); optional `previous_snapshot` enables stateless material-change detection against a prior result.
| Argument | Type | Description |
|---|---|---|
| intent* | object | |
| payment_required* | object | Observed x402 v2 PAYMENT-REQUIRED challenge decoded as JSON. |
| previous_snapshot | object | Optional prior snapshot for stateless material-change detection. |
{
"type": "object",
"title": "handlerArguments",
"required": [
"intent",
"payment_required"
],
"properties": {
"intent": {
"type": "object",
"title": "Intent",
"required": [
"seller",
"service",
"resource"
],
"properties": {
"seller": {
"type": "string",
"description": "Caller-supplied seller label included in the fingerprint; identity is not externally verified."
},
"service": {
"type": "string",
"description": "Expected resource.serviceName."
},
"resource": {
"type": "string",
"format": "uri",
"description": "Expected exact absolute HTTP(S) resource URL."
},
"expected_asset": {
"type": "string",
"description": "Optional expected EVM asset address."
},
"expected_amount": {
"type": "string",
"description": "Optional expected USDC decimal amount, not atomic units."
},
"expected_pay_to": {
"type": "string",
"description": "Optional expected EVM payment destination."
},
"amount_tolerance": {
"type": "string",
"description": "Optional permitted USDC decimal increase."
},
"expected_network": {
"type": "string",
"description": "Optional expected CAIP-2 network."
}
}
},
"payment_required": {
"type": "object",
"title": "Payment Required",
"description": "Observed x402 v2 PAYMENT-REQUIRED challenge decoded as JSON."
},
"previous_snapshot": {
"type": "object",
"title": "Previous Snapshot",
"default": null,
"description": "Optional prior snapshot for stateless material-change detection."
}
}
}Return technologies deterministically detected on one specified public domain; deterministic observations, not an exhaustive proof that no other technology exists. USE WHEN: agent needs technologies currently detected on one specific public domain. DO NOT USE WHEN: vendor -> current confirmed customers; vendor + time -> ADDED/REMOVED; competitor replacement/switch signals. USE installed-base-intelligence FOR: confirmed customer domains using a technology/vendor. USE change-intelligence FOR: durable ADDED/REMOVED changes for a vendor within a UTC time window. USE competitor-switch-intelligence FOR: competitor replacement/switch signals.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Public domain to scan for detectable technologies; localhost and IP literals are rejected. |
{
"type": "object",
"title": "handlerArguments",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"title": "Domain",
"maxLength": 253,
"description": "Public domain to scan for detectable technologies; localhost and IP literals are rejected."
}
}
}Extract clean, boilerplate-free readable text from one known public HTTP(S) URL for LLM research or RAG ingestion; private, local, authenticated, paywalled, or blocked resources are not supported. USE WHEN: agent already knows the URL and needs clean page text. DO NOT USE WHEN: agent needs web search, multi-page research, comparison, structured web workflow, or change detection. USE web-intelligence FOR: those broader live-web operations.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public HTTP(S) page URL to fetch. Private, local, authenticated, paywalled, or blocked resources are not supported. |
{
"type": "object",
"title": "handlerArguments",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"title": "Url",
"format": "uri",
"description": "Public HTTP(S) page URL to fetch. Private, local, authenticated, paywalled, or blocked resources are not supported."
}
}
}Execute one live-web operation — search, read, extract, evidence, research, compare, or changes — in a single paid request without orchestrating multiple web APIs. USE WHEN: agent needs a live web search, multi-page read, structured extraction, comparative research, evidence gathering, or web change detection. DO NOT USE WHEN: agent already has a single known URL and only needs its clean readable text; use url-clean-content instead. Parameter semantics: supply `intent` plus only that intent's fields; without `intent`, supply legacy `topic` and `objective` together.
| Argument | Type | Description |
|---|---|---|
| url | string | Public HTTP(S) URL for read or changes. |
| query | string | Live-web query for search, extract, evidence, or compare. |
| topic | string | Legacy structured-research topic, used with objective only when intent is omitted. |
| fields | array | Unique source fields for extract. |
| intent | string | Selected Web Intelligence operation. |
| targets | array | Two to five named targets for compare. |
| question | string | Natural-language question for research. |
{
"type": "object",
"title": "handlerArguments",
"required": [
"chain",
"token_in",
"token_out",
"amount_in",
"slippage_bps"
],
"properties": {
"chain": {
"enum": [
"base"
],
"type": "string",
"title": "Chain",
"description": "Base Mainnet only in this quote-only MVP."
},
"token_in": {
"enum": [
"USDC",
"USDT",
"ETH",
"WETH"
],
"type": "string",
"title": "Token In",
"description": "Input Base asset symbol."
},
"amount_in": {
"type": "string",
"title": "Amount In",
"description": "Positive decimal input amount, converted exactly to raw token units."
},
"token_out": {
"enum": [
"USDC",
"USDT",
"ETH",
"WETH"
],
"type": "string",
"title": "Token Out",
"description": "Output Base asset symbol; must differ from token_in."
},
"slippage_bps": {
"type": "integer",
"title": "Slippage Bps",
"maximum": 10000,
"minimum": 0,
"description": "Slippage tolerance in basis points; it is not treated as a cost."
},
"baseline_provider": {
"enum": [
"oneinch",
"kyberswap"
],
"type": "string",
"title": "Baseline Provider",
"default": null,
"description": "Optional provider used only for a direct economic comparison."
}
}
}| objective |
| string |
| Legacy structured-research objective, used with topic only when intent is omitted. |
| previous_state | object | Optional client-supplied prior read state for stateless changes detection. |
{
"type": "object",
"title": "handlerArguments",
"properties": {
"url": {
"type": "string",
"title": "Url",
"format": "uri",
"default": null,
"description": "Public HTTP(S) URL for read or changes."
},
"query": {
"type": "string",
"title": "Query",
"default": null,
"description": "Live-web query for search, extract, evidence, or compare."
},
"topic": {
"type": "string",
"title": "Topic",
"default": null,
"description": "Legacy structured-research topic, used with objective only when intent is omitted."
},
"fields": {
"type": "array",
"items": {
"enum": [
"title",
"url",
"snippet",
"text"
],
"type": "string"
},
"title": "Fields",
"default": null,
"description": "Unique source fields for extract."
},
"intent": {
"enum": [
"search",
"read",
"extract",
"evidence",
"research",
"compare",
"changes"
],
"type": "string",
"title": "Intent",
"default": null,
"description": "Selected Web Intelligence operation."
},
"targets": {
"type": "array",
"items": {
"type": "string"
},
"title": "Targets",
"default": null,
"maxItems": 5,
"minItems": 2,
"description": "Two to five named targets for compare."
},
"question": {
"type": "string",
"title": "Question",
"default": null,
"description": "Natural-language question for research."
},
"objective": {
"type": "string",
"title": "Objective",
"default": null,
"description": "Legacy structured-research objective, used with topic only when intent is omitted."
},
"previous_state": {
"type": "object",
"title": "Previous State",
"default": null,
"description": "Optional client-supplied prior read state for stateless changes detection."
}
}
}