# io.github.holistis/capacity-attest (npm · capacity-attest)

Signed delivery claims for x402 capacity trades: GPU-hours, storage, API credits, bandwidth.

- Trust score: 72/100 (medium)
- Change this week: −2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- npm · `capacity-attest`: 72/100 (this document), [markdown](https://verifymcp.io/servers/holistis-capacity-attest/capacity-attest.md), [page](https://verifymcp.io/servers/holistis-capacity-attest/capacity-attest)

## Channel facts

- Registry: `npm`
- Package: `capacity-attest`
- Version: `0.5.0`
- 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-09-20.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 32 of 104 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 19/100
  - Repository presence not verified: we could not reach the forge to check. This is a gap on our side, not a finding about the repository.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 5 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1204 tokens (~401/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 67/100
  - Stability observed for 20 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% 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 3 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 3 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 io.github.holistis/capacity-attest MCP server?

io.github.holistis/capacity-attest runs locally as an npm package, launched with npx -y capacity-attest. 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 holistis-capacity-attest -- npx -y capacity-attest
```

### Cursor

```json
{
  "mcpServers": {
    "holistis-capacity-attest": {
      "command": "npx",
      "args": [
        "-y",
        "capacity-attest"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "holistis-capacity-attest": {
      "command": "npx",
      "args": [
        "-y",
        "capacity-attest"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add holistis-capacity-attest -- npx -y capacity-attest
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add holistis-capacity-attest --command npx --arg -y --arg capacity-attest
```

### Hermes

```yaml
mcp_servers:
  holistis-capacity-attest:
    command: "npx"
    args: ["-y", "capacity-attest"]
```

### Netclaw

```json
{
  "McpServers": {
    "holistis-capacity-attest": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "capacity-attest"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add holistis-capacity-attest -t stdio -c npx -a -y capacity-attest
```

### Other

```json
{
  "mcpServers": {
    "holistis-capacity-attest": {
      "command": "npx",
      "args": [
        "-y",
        "capacity-attest"
      ]
    }
  }
}
```

## 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-20 (score 72, −5)

- [security regression] Provenance: pass → unverified

### 2026-09-19 (score 77, +1)

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

### 2026-09-17 (score 76, +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-15 (score 75, +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-13 (score 74, +1)

- [functional] Package version: 0.1.2 → 0.5.0

### 2026-09-11 (score 73, +1)

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

### 2026-09-08 (score 72, +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-09-07 (score 71, +11)

- [security improvement] Known CVEs: unverified → pass
- [functional improvement] Dependency health: unverified → 0.86

## MCP tools (3)

### `record_delivery` (~552 tokens)

Record a delivery claim

Record a signed delivery claim after an x402 capacity settlement (gpu-hours, storage, api-credits, or bandwidth). The buyer agent calls this AFTER paying, once it knows whether what was promised actually arrived. The claim's schema and signature (must recover to buyerAddress) are validated before it is written to the append-only ledger. This is a factual receipt, not a reputation score — see get_delivery_history for how other agents read it back. OPTIONAL priorClaimId: set it to the claimId of your (this buyer's) previous claim about the SAME sellerAddress, so your claims about that seller form a chain. It is optional and omitted on your first claim about a seller. Chaining lets a reader later detect a host that hides one of your middle claims; it is signed into the claim so a host cannot strip it. See DECISIONS.md D-006.

Input parameters:

- `assetType` (string, required): What kind of capacity this claim is about
- `buyerAddress` (string, required): 0x address of the paying agent — must match the address recovered from `signature`
- `claimId` (string, required): Content-addressed id: sha256 of the canonical JSON of this claim's content fields — see computeClaimId()
- `delivered` (string, required): Whether what was promised actually arrived
- `evidenceHash` (string, required): sha256 hex digest of evidence for this claim (logs, response payload, etc.) — the evidence itself is not stored here
- `externalRefs` (object): Optional, unverified pointers into other agent-economy infrastructure (identity, authority, intent, dispute). Tokenizen never resolves or trusts these — they are citations, not verified facts
- `measured` (object): Optional quantitative record of how much was promised and how much was measured. Presence is the version marker; absence is the only encoding of 'not measured'
- `priorClaimId` (string): Optional chain link: the claimId of this buyer's immediately previous claim about the SAME sellerAddress. Omitted on a buyer's first claim about a seller. Lets a reader detect a host that hides a mid…
- `promisedSpec` (required): What the seller promised to deliver — free text or a structured object
- `sellerAddress` (string, required): 0x address of the agent/service that was paid and was supposed to deliver
- `settlementRef` (string, required): x402 payment reference or on-chain tx hash for the settlement this claim is about
- `signature` (string, required): Buyer's EIP-191 personal-sign signature over claimId
- `timestamp` (string, required): ISO-8601 timestamp of when this claim was made

### `get_delivery_history` (~372 tokens)

Get a seller's delivery history

Return every signature-verified delivery claim recorded against a given sellerAddress in THIS installation's local ledger, oldest first. Purely factual — no aggregate score, rating, or reputation judgment is computed. IMPORTANT, two separate caveats, both repeated in the response's own `note` field: (1) this is scoped to the local ledger only — a different installation may hold other claims against the same seller that this call cannot see, so an empty or short result does NOT mean the seller has a clean record elsewhere, only that no claims have been recorded here; (2) even within this installation, a shown claim's signature is genuinely verified, but nothing proves this is the COMPLETE set of claims the operator actually holds — completeness depends on the operator's honesty, not cryptography. The response's `completeness` field analyzes the per-buyer claim chains (priorClaimId) and flags, in possibleOmissions, any shown claim that links back to a claim NOT in the result — a concrete sign the operator may be hiding a middle claim. IMPORTANT: that field is computed by this same server, so if you do not run it yourself, do NOT trust the field — recompute it locally by calling analyzeCompleteness() over the returned claims, whose priorClaimId links are signed and cannot be forged or stripped. It cannot catch a hidden most-recent claim or a hidden whole buyer, and a dangling link can also just mean the prior claim lives on another installation; see DECISIONS.md D-006. A buying agent can call this BEFORE paying a seller to see that seller's raw delivery history for gpu-hours, storage, api-credits, and bandwidth claims.

Input parameters:

- `sellerAddress` (string, required): 0x address of the agent/service that was paid and was supposed to deliver

### `resolve_agent_identity` (~280 tokens)

Resolve an ERC-8004 agent identity (read-only, on-chain)

Look up an agent's on-chain identity registration in an ERC-8004 Identity Registry: who owns the agentId (ownerOf) and where its registration file lives (tokenURI). Read-only — never writes anything, never touches the delivery ledger. Requires the caller to supply BOTH the registry reference (chain + contract address) AND an RPC endpoint for that chain: this tool does not assume, default, or bundle its own RPC provider or a canonical registry address, since ERC-8004 has independent deployments on multiple chains. This tool does NOT fetch or parse what tokenURI points to — it returns that pointer as-is for the caller to resolve themselves. capacity-attest never verifies or endorses what an ERC-8004 registration claims; see DECISIONS.md D-007.

Input parameters:

- `agentId` (string, required): The ERC-721 tokenId / ERC-8004 agentId, as a decimal string
- `agentRegistryRef` (string, required): Compound ERC-8004 registry reference: "eip155:<chainId>:<registryAddress>", e.g. "eip155:1:0x1234567890123456789012345678901234567890"
- `rpcUrl` (string, required): JSON-RPC endpoint (http:// or https://) for the chain named in agentRegistryRef — never assumed or defaulted

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/holistis-capacity-attest/capacity-attest#diagnostics

## Score history

- 2026-09-20: 72
- 2026-09-19: 77
- 2026-09-18: 76
- 2026-09-17: 76
- 2026-09-16: 75
- 2026-09-15: 75
- 2026-09-14: 74
- 2026-09-13: 74
- 2026-09-12: 73
- 2026-09-11: 73
- 2026-09-10: 72
- 2026-09-09: 72
- 2026-09-08: 72
- 2026-09-07: 71
- 2026-09-06: 60
- 2026-09-05: 71
- 2026-09-04: 71
- 2026-09-03: 70
- 2026-09-02: 70
- 2026-09-01: 69
- 2026-08-31: 38

## Common questions

### What is the io.github.holistis/capacity-attest MCP server?

io.github.holistis/capacity-attest is an MCP server listed in the public MCP registry as io.github.holistis/capacity-attest. Signed delivery claims for x402 capacity trades: GPU-hours, storage, API credits, bandwidth. This page covers its npm package (capacity-attest).

### Is the io.github.holistis/capacity-attest MCP server safe to use?

io.github.holistis/capacity-attest scores 72 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. 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 io.github.holistis/capacity-attest MCP server expose?

io.github.holistis/capacity-attest exposes 3 tools: record_delivery, get_delivery_history, resolve_agent_identity. Their descriptions and schemas cost roughly 1,204 tokens of context every time the server is loaded.

### Is the io.github.holistis/capacity-attest MCP server still maintained?

io.github.holistis/capacity-attest is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.holistis/capacity-attest MCP server under?

io.github.holistis/capacity-attest declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/capacity-attest
- Socket report: https://socket.dev/npm/package/capacity-attest
- Repository: https://github.com/holistis/tokenizen
- Changelog RSS feed: https://verifymcp.io/servers/holistis-capacity-attest/capacity-attest.xml
- Changelog JSON feed: https://verifymcp.io/servers/holistis-capacity-attest/capacity-attest.json
- HTML version of this page: https://verifymcp.io/servers/holistis-capacity-attest/capacity-attest
