# io.github.gitwormq/datasieve (npm · datasieve-mcp)

On-chain watches, web-page monitors, dead-man switches, cron, and agent coordination, paid via x402.

- Trust score: 64/100 (medium)
- Change this week: +23
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `datasieve-mcp`: 64/100 (this document), [markdown](https://verifymcp.io/servers/gitwormq-datasieve/datasieve-mcp.md), [page](https://verifymcp.io/servers/gitwormq-datasieve/datasieve-mcp)

## Channel facts

- Registry: `npm`
- Package: `datasieve-mcp`
- Version: `0.4.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-08-03.

- **Supply Chain Security**: 83/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (115 of 119), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 22 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1471 tokens (~77/item across 19 items; 19 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 66/100
  - 89% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 18% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add gitwormq-datasieve -- npx -y datasieve-mcp
```

### Codex

```bash
codex mcp add gitwormq-datasieve -- npx -y datasieve-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gitwormq-datasieve": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "datasieve-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gitwormq-datasieve --command npx --arg -y --arg datasieve-mcp
```

### Hermes

```yaml
mcp_servers:
  gitwormq-datasieve:
    command: "npx"
    args: ["-y", "datasieve-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "gitwormq-datasieve": {
      "command": "npx",
      "args": [
        "-y",
        "datasieve-mcp"
      ]
    }
  }
}
```

## 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-08-03 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 63, +15)

- [security regression] Known CVEs: fail → unverified
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Dependency health: partial → unverified
- [functional regression] Tool coverage: 89 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional improvement] Stability: unverified → 0.23

### 2026-08-01 (score 48, +30)

- [security regression] GHSA-frvp-7c67-39w9 affects this package: medium
- [security regression] Provenance: unverified → fail
- [security regression] Known CVEs: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: MIT

### 2026-07-31 (score 18, −23)

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

### 2026-07-30 (score 41, +17)

- [functional improvement] Tool coverage: unverified → 89

### 2026-07-28 (score 24, −17)

- [functional regression] Tool coverage: 89 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 41)

First indexed and scored.

## MCP tools (19)

### `create_watch` (~212 tokens)

Create a watch (paid via x402)

Buy a standing watch from DataSieve (https://api.datasieve.xyz). standard = $0.10/7d, 1 condition, 50 triggers; composite = $0.25/7d, up to 5 any-match conditions (e.g. 5 heartbeat dead-man switches), 200 triggers; standard30 = $0.35/30d and composite30 = $0.85/30d — one payment covers the month, for agents that will not be awake to renew weekly. Payment is a gasless USDC transfer signed locally. Events go to your webhookUrl (HMAC-signed) if set, and always to a server-side mailbox drained with drain_events; every event carries a signed Ed25519 observation receipt you can replay to third parties. Failed calls are never billed. The watch id + secret are remembered locally so later calls need only the id.

Input parameters:

- `conditions` (array, required)
- `tier` (string)
- `webhookUrl` (string)

### `watch_status` (~69 tokens)

Watch status (free)

State, heartbeat lastCheckedAt, triggersUsed/cap, expiry, delivery stats, and for dead-man switches: up/down, lastPingAt, nextDeadline, pingUrl. Secret is looked up from local state if omitted.

Input parameters:

- `secret` (string)
- `watchId` (string, required)

### `drain_events` (~58 tokens)

Drain held events (free)

Collect everything the watch caught — works with zero infrastructure (the mailbox pattern). Pass `since` = last seen event id for incremental drains.

Input parameters:

- `secret` (string)
- `since` (string)
- `watchId` (string, required)

### `renew_watch` (~64 tokens)

Renew a watch (paid via x402)

Extends the watch one more period (7 days, or 30 on the *30 tiers) at its tier price and resets the trigger budget. Renewing a paused watch also reactivates it.

Input parameters:

- `tier` (string)
- `watchId` (string, required)

### `delete_watch` (~20 tokens)

Cancel a watch (free, no refund)

Input parameters:

- `secret` (string)
- `watchId` (string, required)

### `pause_watch` (~62 tokens)

Pause a watch (free)

Stop a watch firing (chain, web, heartbeat, schedule) without deleting it. The expiry clock keeps running. Use before a planned agent shutdown so your dead-man switch does not cry wolf.

Input parameters:

- `secret` (string)
- `watchId` (string, required)

### `resume_watch` (~52 tokens)

Resume a paused watch (free)

Backlog-free resume: heartbeat deadlines restart from now and schedules jump to their next FUTURE slot — nothing that elapsed during the pause replays.

Input parameters:

- `secret` (string)
- `watchId` (string, required)

### `cron_next` (~111 tokens)

Parse a cron expression (paid via x402, $0.001)

Next N run times for a cron expression in any IANA timezone, plus seconds-until-next. If the goal is for something to HAPPEN at those times, create_watch with a schedule condition instead — DataSieve fires the cron as signed webhooks for the life of the watch.

Input parameters:

- `count` (integer)
- `cron` (string, required): 5- or 6-field cron expression, e.g. "0 9 * * 1-5"
- `tz` (string)

### `x402_ping` (~46 tokens)

Test the payment stack end-to-end (paid via x402, $0.001)

The cheapest possible real x402 purchase: proves this wallet + client can pay a production seller before you point it at anything expensive. Returns payer + network; failed calls are never billed.

### `verify_receipt` (~80 tokens)

Verify a signed observation receipt (free)

Every DataSieve event carries receipt {alg, keyId, statement, sig} — an Ed25519 attestation that DataSieve observed the event. This checks it against the service key, so an agent can validate evidence handed to it by ANOTHER agent without trusting that agent.

Input parameters:

- `receipt` (object, required): the receipt object from an event

### `ping_heartbeat` (~61 tokens)

Heartbeat check-in (free)

Keep a dead-man switch alive. Pass the pingUrl from create_watch (or a watchId whose ping URLs are in local state). Call this at least once per intervalSeconds.

Input parameters:

- `pingUrl` (string)
- `watchId` (string)

### `service_health` (~24 tokens)

DataSieve service heartbeat (free, public)

Scanner cursor lag vs chain head — verify the watcher is alive before you buy.

### `payment_status` (~54 tokens)

Can I buy? (free) — wallet, balance, prices

Check whether a buying key is configured and whether it can afford a watch. Reports the wallet address, its USDC balance on the configured network, and what each tier costs. Call this before create_watch; it never spends anything.

### `coord_workspace` (~97 tokens)

Buy a coordination workspace (paid via x402)

Buy a coordination workspace ($0.25 / 7 days, 1000 ops) — the only x402 seller of multi-agent primitives. After this ONE payment, every barrier and lock operation is FREE and FAST (no per-op settlement). Use it to fan-in sub-agents (coord_barrier) and to stop two agents doing the same irreversible thing (coord_lock).

Input parameters:

- `webhookUrl` (string): default webhook for coordination events

### `coord_barrier` (~149 tokens)

Create a barrier / fan-in (free — workspace op)

BARRIER: "wake me when all N of my sub-agents finish." Returns an arriveUrl — hand it to each sub-agent (it is a capability: they can arrive but cannot read or delete your workspace). When the N-th part arrives we fire ONE webhook carrying every part's collected context. If the TTL passes first you get a "partial" event naming exactly who never showed. Timeout is a feature, not an error.

Input parameters:

- `label` (string)
- `parts` (integer, required): how many sub-agents must arrive
- `secret` (string)
- `ttlSeconds` (integer)
- `webhookUrl` (string)
- `workspaceId` (string, required)

### `coord_arrive` (~100 tokens)

Arrive at a barrier (free, no auth — the URL is the capability)

Report that this part is done. Pass the arriveUrl from coord_barrier plus a part name and optional ctx (whatever you want handed to whoever consumes the released barrier). Idempotent per part: a retrying agent cannot inflate the count.

Input parameters:

- `arriveUrl` (string, required)
- `ctx`: this part's result, collected into the release event
- `part` (string, required): unique name for this part, e.g. "scout"

### `coord_lock` (~133 tokens)

Acquire a lock / lease (free — workspace op)

LOCK: "only one agent does this irreversible thing." Returns a leaseId, or 409 with who holds it. The lease AUTO-EXPIRES after ttlSeconds, so a crashed agent can never deadlock your fleet. Call coord_release when done (or just let it expire).

Input parameters:

- `holder` (string): who you are — echoed in 409s so debugging works
- `key` (string, required): what you are locking, e.g. "deploy" or "wallet:0xabc"
- `secret` (string)
- `ttlSeconds` (integer)
- `workspaceId` (string, required)

### `coord_release` (~35 tokens)

Release a lock (free — workspace op)

Input parameters:

- `key` (string, required)
- `leaseId` (string, required)
- `secret` (string)
- `workspaceId` (string, required)

### `coord_events` (~44 tokens)

Drain coordination events (free) — the mailbox for agents with no server

Collect barrier releases/partials that happened while nothing of yours was running.

Input parameters:

- `secret` (string)
- `since` (string)
- `workspaceId` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/gitwormq-datasieve/datasieve-mcp#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 63
- 2026-08-01: 48
- 2026-07-31: 18
- 2026-07-30: 41
- 2026-07-28: 24
- 2026-07-27: 41

## Links

- npm package: https://www.npmjs.com/package/datasieve-mcp
- Socket report: https://socket.dev/npm/package/datasieve-mcp
- Repository: https://github.com/gitwormq/datasieve-mcp
- Website: https://datasieve.xyz/
- Changelog RSS feed: https://verifymcp.io/servers/gitwormq-datasieve/datasieve-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/gitwormq-datasieve/datasieve-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/gitwormq-datasieve/datasieve-mcp
