# aiworker-data (remote · aiworker.duckdns.org)

Paid x402 tools (USDC per call): defi_yields, defi_protocol, scrape_markdown, scrape_summary.

- Trust score: 73/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-27

## Components

- remote · `aiworker.duckdns.org`: 73/100 (this document), [markdown](https://verifymcp.io/servers/org-duckdns-aiworker-aiworker-data/aiworker.md), [page](https://verifymcp.io/servers/org-duckdns-aiworker-aiworker-data/aiworker)

## Channel facts

- Endpoint: `https://aiworker.duckdns.org/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.2.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-27.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - 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.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 70/100
  - Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 97/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 90% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### 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.

### Claude

```bash
claude mcp add --transport http org-duckdns-aiworker-aiworker-data 'https://aiworker.duckdns.org/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "org-duckdns-aiworker-aiworker-data": {
      "url": "https://aiworker.duckdns.org/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "org-duckdns-aiworker-aiworker-data": {
      "type": "http",
      "url": "https://aiworker.duckdns.org/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.org-duckdns-aiworker-aiworker-data]
url = "https://aiworker.duckdns.org/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "org-duckdns-aiworker-aiworker-data": {
      "type": "remote",
      "url": "https://aiworker.duckdns.org/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add org-duckdns-aiworker-aiworker-data --url 'https://aiworker.duckdns.org/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  org-duckdns-aiworker-aiworker-data:
    url: "https://aiworker.duckdns.org/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "org-duckdns-aiworker-aiworker-data": {
      "Transport": "http",
      "Url": "https://aiworker.duckdns.org/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add org-duckdns-aiworker-aiworker-data -t streamable-http -u 'https://aiworker.duckdns.org/mcp'
```

### Other

```json
{
  "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.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-27 (score 73, +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.

### 2026-09-25 (score 72, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-23 (score 71, +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.

### 2026-09-21 (score 70, +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.

### 2026-09-20 (score 69, +56)

- [security regression] HSTS header: unverified → fail
- [security improvement] Injection markers: unverified → pass
- [security improvement] TLS certificate: unverified → pass
- [security improvement] 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.
- [functional improvement] Endpoint reachability: unreachable → reachable
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.47
- [functional improvement] MCP protocol: unverified → pass
- [functional] New tool “swap_precheck”

### 2026-09-19 (score 13, −13)

The score moved with no change recorded against any check. We would rather say so than guess.

### 2026-09-18 (score 26, −14)

The score moved with no change recorded against any check. We would rather say so than guess.

### 2026-09-17 (score 40, −13)

The score moved with no change recorded against any check. We would rather say so than guess.

## MCP tools (21)

### `defi_yields` (~132 tokens)

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.

Input parameters:

- `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)

### `defi_protocol` (~89 tokens)

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.

Input parameters:

- `slug` (string, required): DefiLlama protocol slug, e.g. aave-v3

### `scrape_markdown` (~81 tokens)

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.

Input parameters:

- `max_chars` (integer)
- `url` (string, required): absolute https url of a public page

### `scrape_summary` (~79 tokens)

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.

Input parameters:

- `max_chars` (integer)
- `url` (string, required): absolute https url of a public page

### `yield_report` (~176 tokens)

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.

Input parameters:

- `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

### `claim_check` (~168 tokens)

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.

Input parameters:

- `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

### `token_check` (~140 tokens)

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.

Input parameters:

- `address` (string, required): a Base (chain id 8453) token contract address
- `chain` (string): chain to check; only "base" is supported in v1

### `token_info` (~156 tokens)

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.

Input parameters:

- `address` (string, required): a Base (chain id 8453) token contract address
- `chain` (string): chain to look up; only "base" is supported in v1

### `wallet_check` (~144 tokens)

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.

Input parameters:

- `address` (string, required): a Base (chain id 8453) address — an EOA or a contract

### `resolution_check` (~201 tokens)

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.

Input parameters:

- `market` (string, required): a Polymarket market slug, a 0x-prefixed 64-hex condition id, or the market question as free text

### `market_odds` (~189 tokens)

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.

Input parameters:

- `market` (string, required): a Polymarket market slug, a 0x-prefixed 64-hex condition id, or the market question as free text

### `rule_backtest` (~317 tokens)

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.

Input parameters:

- `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, required): 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

### `odds_history` (~216 tokens)

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.

Input parameters:

- `days` (integer): 1–365 daily closes ending at the store's data cut-off (default 90)
- `market` (string, required): a Polymarket market slug, 0x condition id or numeric id held by the store

### `market_screener` (~260 tokens)

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.

Input parameters:

- `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

### `topic_brief` (~164 tokens)

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.

Input parameters:

- `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, required): the topic to brief, as a phrase of at most 200 characters; not a url

### `token_report` (~222 tokens)

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.

Input parameters:

- `address` (string, required): 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

### `news_search` (~202 tokens)

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.

Input parameters:

- `hours` (integer): look back this many hours (default 48)
- `limit` (integer): maximum headlines (default 20)
- `query` (string, required): search words, matched whole-word and case-insensitively against titles and summaries

### `social_mentions` (~196 tokens)

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.

Input parameters:

- `hours` (integer): look back this many hours (default 48)
- `limit` (integer): maximum items (default 20)
- `query` (string, required): search words, matched whole-word and case-insensitively against posts and comments

### `trade_gate` (~132 tokens)

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.

Input parameters:

- `address` (string, required): a Base (chain id 8453) token contract address
- `chain` (string): only base

### `airdrop_scan` (~131 tokens)

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.

Input parameters:

- `address` (string, required): a Base (chain id 8453) wallet address

### `swap_precheck` (~148 tokens)

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.

Input parameters:

- `token` (string, required): The token contract to gate
- `wallet` (string): The buyer's own wallet to scan for airdrop spam

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/org-duckdns-aiworker-aiworker-data/aiworker#diagnostics

## Score history

- 2026-09-27: 73
- 2026-09-26: 72
- 2026-09-25: 72
- 2026-09-24: 71
- 2026-09-23: 71
- 2026-09-22: 70
- 2026-09-21: 70
- 2026-09-20: 69
- 2026-09-19: 13
- 2026-09-18: 26
- 2026-09-17: 40
- 2026-09-16: 53
- 2026-09-15: 66
- 2026-09-14: 66
- 2026-09-13: 66
- 2026-09-12: 65
- 2026-09-11: 65
- 2026-09-10: 65
- 2026-09-09: 64
- 2026-09-08: 64
- 2026-09-07: 63
- 2026-09-06: 63

## Common questions

### 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.

## Links

- Remote endpoint: https://aiworker.duckdns.org/mcp
- Website: https://aiworker.duckdns.org/
- Changelog RSS feed: https://verifymcp.io/servers/org-duckdns-aiworker-aiworker-data/aiworker.xml
- Changelog JSON feed: https://verifymcp.io/servers/org-duckdns-aiworker-aiworker-data/aiworker.json
- HTML version of this page: https://verifymcp.io/servers/org-duckdns-aiworker-aiworker-data/aiworker
