aiworker-data
REMOTE · AIWORKER.DUCKDNS.ORG · SCANNED SEP 27
Paid x402 tools (USDC per call): defi_yields, defi_protocol, scrape_markdown, scrape_summary.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 21 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability68
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3543 tokens (~168/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
- Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 90% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the aiworker-data MCP server?
aiworker-data is a hosted endpoint at https://aiworker.duckdns.org/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · aiworker.duckdns.org
claude mcp add --transport http org-duckdns-aiworker-aiworker-data 'https://aiworker.duckdns.org/mcp'
{
"mcpServers": {
"org-duckdns-aiworker-aiworker-data": {
"url": "https://aiworker.duckdns.org/mcp"
}
}
} {
"servers": {
"org-duckdns-aiworker-aiworker-data": {
"type": "http",
"url": "https://aiworker.duckdns.org/mcp"
}
}
} [mcp_servers.org-duckdns-aiworker-aiworker-data] url = "https://aiworker.duckdns.org/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"org-duckdns-aiworker-aiworker-data": {
"type": "remote",
"url": "https://aiworker.duckdns.org/mcp",
"enabled": true
}
}
} openclaw mcp add org-duckdns-aiworker-aiworker-data --url 'https://aiworker.duckdns.org/mcp' --transport streamable-http
mcp_servers:
org-duckdns-aiworker-aiworker-data:
url: "https://aiworker.duckdns.org/mcp" {
"McpServers": {
"org-duckdns-aiworker-aiworker-data": {
"Transport": "http",
"Url": "https://aiworker.duckdns.org/mcp"
}
}
} assistant mcp add org-duckdns-aiworker-aiworker-data -t streamable-http -u 'https://aiworker.duckdns.org/mcp'
{
"mcpServers": {
"org-duckdns-aiworker-aiworker-data": {
"type": "http",
"url": "https://aiworker.duckdns.org/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 27 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 25 Sept 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 23 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Sept 26 +56
- HSTS header: unverified → fail ▼ security
- Injection markers: unverified → pass ▲ security
- TLS certificate: unverified → pass ▲ security
- Transport: fail → pass ▲ security
- Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 21 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
- Endpoint reachability: unreachable → reachable ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Stability: unverified → 0.47 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- New tool “swap_precheck” functional
- 19 Sept 26 −13
The score moved with no change recorded against any check. We would rather say so than guess.
- 18 Sept 26 −14
The score moved with no change recorded against any check. We would rather say so than guess.
- 17 Sept 26 −13
The score moved with no change recorded against any check. We would rather say so than guess.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 27 Sept 2026 · Probed https://aiworker.duckdns.org/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=aiworker.duckdns.org | CN=YE2,O=Let's Encrypt,C=US | 4 Sept 2026 | 3 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 6aab08007a278646e5be667bc2636c133d8 |
| SANs: aiworker.duckdns.org | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of aiworker.duckdns.org. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| org. | present | 26974 | 8 | Verified |
| duckdns.org. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://aiworker.duckdns.org/mcp | Verified | 200 | |
| http (plaintext) | http://aiworker.duckdns.org/mcp | HTTPS enforced | 308 | https://aiworker.duckdns.org/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
airdrop_scan ~131
Wallet hygiene for one Base address: every token it holds, each marked honeypot, dust, batch-airdropped, name-spoofed, ok or unknown, with the reasons (Honeypot.is simulation per token, capped at 25; pool liquidity; holder counts; the sender that batch-delivered them). Tells an agent which balances to ignore and never approve. Deterministic, no LLM. Price $0.05 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | a Base (chain id 8453) wallet address |
No output schema declared.
No examples provided.
claim_check ~168
Extract checkable factual claims from buyer-submitted text or a public URL, and verdict each one — supported, contradicted, unsupported or unverifiable — against Wikipedia and any buyer-supplied source URLs, with verbatim quoted evidence and links. Informational only. Price $0.05 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| max_claims | integer | – | maximum claims to extract and verdict; default 5 |
| sources | array | – | up to 5 https urls the model may cite as evidence, in addition to Wikipedia |
| text | string | – | buyer text to check, at most 8 000 characters; exactly one of text or url is required |
| url | string | – | a public https url whose page is fetched and checked instead of text |
No output schema declared.
No examples provided.
defi_protocol ~89
Snapshot of one DeFi protocol by DefiLlama slug: TVL by chain, category, 1d/7d change, audits, refreshed every 5 minutes from DefiLlama's protocol summary. Price $0.01 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | DefiLlama protocol slug, e.g. aave-v3 |
No output schema declared.
No examples provided.
defi_yields ~132
DeFi yield pools from DefiLlama, normalized and filterable by chain, project, symbol, stablecoin and min TVL; refreshed every 5 minutes. Price $0.02 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | – | chain name, e.g. base, ethereum, solana |
| limit | integer | – | – |
| min_tvl_usd | number | – | – |
| project | string | – | DefiLlama project slug, e.g. aave-v3 |
| stablecoin | boolean | – | – |
| symbol | string | – | – |
No output schema declared.
No examples provided.
market_odds ~189
The current odds of one Polymarket market and how they moved: give a market slug, a 0x condition id or the question as free text and get the YES and NO prices, the last trade, the implied probability, liquidity and volume, and the 24-hour and 7-day change against the derived store's daily closes, from Polymarket's public Gamma API. Deterministic, no LLM, seconds per call; a keyed market that does not exist is refused before payment, a free-text question that matches nothing is answered as not_found with the nearest candidates. A market price is not a forecast; informational only. Price $0.01 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| market | string | yes | a Polymarket market slug, a 0x-prefixed 64-hex condition id, or the market question as free text |
No output schema declared.
No examples provided.
market_screener ~260
A ranked list of Polymarket markets from a derived store under deterministic filters: status (open, resolved or all), a category (an event tag with at least 200 resolved markets), a minimum lifetime volume, closing within N days, or the biggest 7-day movers up or down; sorted by volume, closing date or move; up to 50 rows with the question, tags, end date, resolution, volume, last close, 7-day change and days to the end. At most 500 candidates are ranked per request. No LLM, no free text. History and current prices, not advice. Price $0.05 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | "all" or an event tag with at least 200 resolved markets |
| closing_within_days | integer | – | open only: 1–365 |
| limit | integer | – | 1–50, default 20 |
| min_volume_usd | number | – | 0–10000000, default 1000 |
| movers | string | – | open only: sort by the 7-day change |
| sort | string | – | default volume |
| status | string | – | default open |
No output schema declared.
No examples provided.
news_search ~202
Crypto and markets headlines matching your words, from twelve fixed public RSS/Atom feeds (CoinDesk, The Block, Decrypt, Cointelegraph, The Defiant, DL News, Blockworks, Bankless, Polymarket, CNBC, Bloomberg, Financial Times) refreshed every ten minutes: whole-word, case-insensitive search over titles and summaries within the last 1-168 hours (default 48), newest first, deduplicated, up to 50 items with title, link, publisher, published time and a short summary. Headlines as published, links to the source, no LLM. Informational only. Price $0.01 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| hours | integer | – | look back this many hours (default 48) |
| limit | integer | – | maximum headlines (default 20) |
| query | string | yes | search words, matched whole-word and case-insensitively against titles and summaries |
No output schema declared.
No examples provided.
odds_history ~216
The daily YES-price history of one Polymarket market from a derived store of on-chain fills (the MIT-licensed dump before 2026-07-21, the public daily API after): give a market slug, a 0x condition id or a numeric id and a number of days (1-365, default 90) and get the series of daily closes with fill counts and volume, plus a summary: open, high, low, last, 1-day and 1-week change, days to the end date and the volume over the window. A market the store does not hold is refused before payment. Deterministic, no LLM. History, not a prediction. Price $0.02 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | 1–365 daily closes ending at the store's data cut-off (default 90) |
| market | string | yes | a Polymarket market slug, 0x condition id or numeric id held by the store |
No output schema declared.
No examples provided.
resolution_check ~201
Has a Polymarket market resolved, and how? Give a market slug, a 0x condition id, or the question as free text: you get the status (open, resolved, voided, unknown, not_found), the winning outcome and payout vector, when it closed and by which mechanism (UMA status, resolver), how many days after its end date, the last traded price and best bid/ask, and the event's categories, from Polymarket's public Gamma API. Deterministic, no LLM, seconds per call; a free-text question that matches no market is answered as not_found with the nearest candidates. A record of what happened, not a prediction; informational only. Price $0.05 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| market | string | yes | a Polymarket market slug, a 0x-prefixed 64-hex condition id, or the market question as free text |
No output schema declared.
No examples provided.
rule_backtest ~317
Replay one fixed, published rule over resolved Polymarket markets from a derived store of on-chain daily closes: favorite_hold (buy the side at or above p on its first such day), longshot_hold (buy the side at or below p), late_entry (buy the favourite N days before the end date) or momentum_1w (buy in the direction of a one-week move). Pick a category (an event tag) and a date range; you get hit rate, mean and median return, drawdown, Brier score, a calibration table by entry price, results by year, a sample of matched markets and the exact method. Deterministic, no LLM, no buyer code. History, not a prediction; informational only. Price $0.25 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | "all" or an event tag with at least 200 resolved markets |
| days_before_end | integer | – | late_entry only: 1–60 |
| from | string | – | YYYY-MM-DD, first resolution day |
| min_volume_usd | number | – | 1000–10000000 |
| rule | string | yes | the rule to replay (see the route description) |
| threshold | number | – | favorite_hold 0.55–0.99, longshot_hold 0.01–0.45, momentum_1w 0.02–0.50 |
| to | string | – | YYYY-MM-DD, last resolution day |
No output schema declared.
No examples provided.
scrape_markdown ~81
Fetch one public web page (buyer-supplied URL, no login walls, robots.txt honoured) and return its main content as clean Markdown with title and word count. Price $0.02 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| max_chars | integer | – | – |
| url | string | yes | absolute https url of a public page |
No output schema declared.
No examples provided.
scrape_summary ~79
Same as /v1/scrape/markdown plus a structured summary (≤200 words), key points and entities produced by an LLM from the page text. Price $0.04 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| max_chars | integer | – | – |
| url | string | yes | absolute https url of a public page |
No output schema declared.
No examples provided.
social_mentions ~196
What people are saying about your words on two public forums, deterministic and without an LLM: Hacker News stories and comments (via the Algolia HN Search API) and Polymarket event comments (via the Gamma API) within the last 1-168 hours (default 48), whole-word and case-insensitive, newest first, deduplicated, up to 50 items with the text (at most 300 characters), a link, the author's public handle and the time; counts per source and each source's ok flag. Public posts as written by their authors; not advice. Price $0.01 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| hours | integer | – | look back this many hours (default 48) |
| limit | integer | – | maximum items (default 20) |
| query | string | yes | search words, matched whole-word and case-insensitively against posts and comments |
No output schema declared.
No examples provided.
swap_precheck ~148
Everything to check before one swap on Base, in one call: the rule-based trade gate on the token (pass, caution or block with every reason), a scan of the buyer's own wallet for airdrop spam, honeypots and lookalikes when a wallet is given, and whether the token sits among the trending pools right now. The verdict is the gate's; the rest is context beside it. Deterministic, no LLM. Price $0.10 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| token | string | yes | The token contract to gate |
| wallet | string | – | The buyer's own wallet to scan for airdrop spam |
No output schema declared.
No examples provided.
token_check ~140
A deterministic Base token safety card from Blockscout, DexScreener (derived) and Honeypot.is plus the Base RPC: what the contract is, who controls it, who holds it, where it trades, and whether a simulated buy/sell round-trips, with rule-based risk flags and a 0-100 score. No LLM. Informational only. Price $0.05 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | a Base (chain id 8453) token contract address |
| chain | string | – | chain to check; only "base" is supported in v1 |
No output schema declared.
No examples provided.
token_info ~156
The cheapest way to look up a Base token: name, symbol, decimals, total supply, holder count, price, liquidity, pool count, largest pool, FDV and 24h volume, from Blockscout and DexScreener. Deterministic, no LLM, seconds per call. It is the data half of token_check; for contract ownership, holder concentration and a honeypot simulation, buy that instead. Informational only. Price $0.005 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | a Base (chain id 8453) token contract address |
| chain | string | – | chain to look up; only "base" is supported in v1 |
No output schema declared.
No examples provided.
token_report ~222
Everything an agent needs before touching a Base token, in one call: the deterministic safety card (contract, ownership, holder concentration, market, honeypot simulation, rule-based risk flags and a 0-100 score), the DefiLlama pools its symbol appears in with their TVL and APY, a sourced brief on the project written from its own site and Wikipedia with verbatim quotes (or none, when nothing verifiable is found), and a written verdict — avoid, caution or acceptable — whose reasons must each name a field of this report, checked in code, and whose verdict is overruled when it contradicts the risk score. Ask an optional question and it is answered from the same data. Informational only, not investment advice. Price $1.00 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | a Base (chain id 8453) token contract address |
| question | string | – | optional question about this token, at most 300 characters, answered from the report's own data |
No output schema declared.
No examples provided.
topic_brief ~164
A sourced brief on any topic: 150-500 words of Markdown in which every paragraph cites the pages it was written from, plus the key facts as verbatim quotes with the URL each came from. Sources are up to 5 public pages you name plus Wikipedia; a fact whose quote is not found word for word in a fetched page is dropped. Informational only. Price $0.10 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| max_words | integer | – | maximum words in the brief; default 300 |
| sources | array | – | up to 5 public https urls to brief from, in addition to Wikipedia |
| topic | string | yes | the topic to brief, as a phrase of at most 200 characters; not a url |
No output schema declared.
No examples provided.
trade_gate ~132
One rule-based verdict before a swap on one Base token: pass, caution or block, with the reasons and the numbers that tripped them — Honeypot.is buy/sell simulation and taxes, pool liquidity and age, holder concentration, contract verification and ownership, and a name-spoof check against the canonical tokens. Deterministic, no LLM; a pass is not a guarantee. Price $0.05 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | a Base (chain id 8453) token contract address |
| chain | string | – | only base |
No output schema declared.
No examples provided.
wallet_check ~144
A deterministic Base wallet card for any address: EOA or contract, ETH balance, first seen and last activity, transaction and token-transfer counts, up to 20 ERC-20 holdings by value, and rule-based flags (fresh wallet under 7 days, dormant over 180 days, no ETH, single token, contract address), from Blockscout and the Base RPC. No labels, no scoring, no LLM. Facts an agent can act on; informational only. Price $0.05 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | a Base (chain id 8453) address — an EOA or a contract |
No output schema declared.
No examples provided.
yield_report ~176
An LLM-written read of DeFi yield pools from DefiLlama matching a filter: a headline verdict, key points, risks, a best-fit pool if any, and caveats, alongside the underlying pool rows. Price $0.10 per call, paid with USDC over x402.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | – | chain name, e.g. base, ethereum, solana |
| limit | integer | – | maximum pools to include; default 10 |
| min_tvl_usd | number | – | minimum pool TVL in USD; default 1000000 |
| project | string | – | DefiLlama project slug, e.g. aave-v3 |
| stablecoin | boolean | – | restrict to stablecoin pools only |
| symbol | string | – | token symbol, e.g. USDC |
No output schema declared.
No examples provided.
What is the aiworker-data MCP server?
aiworker-data is an MCP server listed in the public MCP registry as org.duckdns.aiworker/aiworker-data. Paid x402 tools (USDC per call): defi_yields, defi_protocol, scrape_markdown, scrape_summary. This page covers its hosted endpoint (https://aiworker.duckdns.org/mcp).
Is the aiworker-data MCP server safe to use?
aiworker-data scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the aiworker-data MCP server expose?
aiworker-data exposes 21 tools: defi_yields, defi_protocol, scrape_markdown, scrape_summary, yield_report, and 16 more. Their descriptions and schemas cost roughly 3,543 tokens of context every time the server is loaded.
Does the aiworker-data MCP server require authentication?
No. We connected to aiworker-data without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the aiworker-data MCP server still maintained?
aiworker-data is still listed as active in the MCP registry. We last reached this channel on 27 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.