# io.github.vdappdev2/marketplace (npm · @verusidx/marketplace-mcp)

MCP server for Verus on-chain marketplace — create, browse, accept, and close offers

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

## Components

- npm · `@verusidx/marketplace-mcp`: 66/100 (this document), [markdown](https://verifymcp.io/servers/vdappdev2-marketplace/verusidx-marketplace-mcp.md), [page](https://verifymcp.io/servers/vdappdev2-marketplace/verusidx-marketplace-mcp)

## Channel facts

- Registry: `npm`
- Package: `@verusidx/marketplace-mcp`
- Version: `0.1.7`
- 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**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (96 of 100), 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 84 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1278 tokens (~255/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 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.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add vdappdev2-marketplace -- npx -y @verusidx/marketplace-mcp
```

### Codex

```bash
codex mcp add vdappdev2-marketplace -- npx -y @verusidx/marketplace-mcp
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add vdappdev2-marketplace --command npx --arg -y --arg @verusidx/marketplace-mcp
```

### Hermes

```yaml
mcp_servers:
  vdappdev2-marketplace:
    command: "npx"
    args: ["-y", "@verusidx/marketplace-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "vdappdev2-marketplace": {
      "command": "npx",
      "args": [
        "-y",
        "@verusidx/marketplace-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 66, +3)

- [functional improvement] Stability: unverified → 0.23

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

- [security regression] Provenance: fail → unverified
- [security regression] Install scripts: pass → unverified
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] License: pass → unverified
- [functional regression] Maintenance: pass → unverified
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-08-01 (score 26, +8)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional] Licence: MIT

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

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

### 2026-07-30 (score 24, −18)

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

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

First indexed and scored.

## MCP tools (5)

### `getoffers` (~176 tokens)

Get all open offers for a specific currency or identity. Returns both buy and sell offers — offers of the asset and offers for the asset. Use iscurrency to switch between currency offers and identity offers. Response keys are dynamic and generated by the daemon based on the queried asset — parse them dynamically. Use this to discover what's available on the market before making or taking offers.

Input parameters:

- `chain` (string, required): Chain to query (e.g., "VRSC", "vrsctest")
- `currencyorid` (string, required): Currency name/i-address or identity name/i-address to check for offers
- `iscurrency` (boolean): If true, look for currency offers. If false (default), look for identity offers.
- `withtx` (boolean): If true, include serialized hex of the exchange transaction for signing. Default: false.

### `listopenoffers` (~113 tokens)

List open offers from the current wallet. Shows what this wallet has offered on-chain. Can filter by expired/unexpired status. Use this to check the status of offers the agent has created, or to find offers that need to be closed.

Input parameters:

- `chain` (string, required): Chain to query (e.g., "VRSC", "vrsctest")
- `expired` (boolean): Include expired offers. Default: true.
- `unexpired` (boolean): Include unexpired (active) offers. Default: true.

### `makeoffer` (~426 tokens)

Create a new on-chain atomic swap offer. Offers are fully decentralized — no intermediary, no escrow. The offer transaction locks the offered asset on-chain until the offer is taken, expires, or is closed. Supports currency-for-currency, currency-for-identity, identity-for-currency, and identity-for-identity swaps. For currency offers, use {"currency": "name", "amount": n}. For identity offers (without control tokens), use {"identity": "name@"} or a full identity definition. If an identity has a control token (flags: 5), offer/request the control token as a currency instead: {"currency": "idname.parent", "amount": 0.00000001}. Always include parent in identity definitions.

Input parameters:

- `chain` (string, required): Chain to transact on (e.g., "VRSC", "vrsctest")
- `changeaddress` (string, required): Transparent address or VerusID ("ID@") for change.
- `expiryheight` (number): Block height at which this offer expires. Default: current height + 20 (~20 minutes). Set higher for marketplace listings.
- `feeamount` (number): Custom fee amount. Default: 0.0001.
- `for` (object, required): What to accept in return — {"currency": "name", "amount": n, "address": "dest"} for currency (address is REQUIRED — can be R-address, VerusID name@, or i-address), or full identity definition (with p…
- `fromaddress` (string, required): Source address for funds. If the user has not specified a preferred address, ask which address to use or if they prefer a wildcard ("*", "R*", "i*", or "z*" for private txs).
- `offer` (object, required): What to offer — {"currency": "name", "amount": n} for currency, or {"identity": "name@"} / full identity definition for identity.
- `returntx` (boolean): If true, return signed transaction hex instead of broadcasting. Default: false.

### `takeoffer` (~407 tokens)

Accept an existing on-chain offer. Creates and posts a transaction that atomically executes the exchange — both sides swap in a single transaction, or neither does. The offer transaction must have at least 1 confirmation before it can be taken. Before taking, verify the offer hasn't expired by checking blockexpiry against current block height. deliver is what you give, accept is what you get. For currency: deliver {"currency": "name", "amount": n}, accept {"address": "addr", "currency": "name", "amount": n}. For identity: deliver "name@" (string), accept is full identity definition with parent. If the identity has a control token, use control token currency instead.

Input parameters:

- `accept` (object, required): What the taker receives — {"address": "addr", "currency": "name", "amount": n} (currency) or full identity definition (identity).
- `chain` (string, required): Chain to transact on (e.g., "VRSC", "vrsctest")
- `changeaddress` (string, required): Transparent address or VerusID for change.
- `deliver` (required): What the taker delivers — "name@" (identity) or {"currency": "name", "amount": n} (currency).
- `feeamount` (number): Custom fee amount. Default: 0.0001.
- `fromaddress` (string, required): Source address for funds. If the user has not specified a preferred address, ask which address to use or if they prefer a wildcard ("*", "R*", "i*", or "z*" for private txs).
- `returntx` (boolean): If true, return signed transaction hex instead of broadcasting. Default: false.
- `tx` (string): Hex transaction to complete (from makeoffer with returntx=true). Either txid or tx is required.
- `txid` (string): Transaction ID of the offer to accept (from getoffers or makeoffer). Either txid or tx is required.

### `closeoffers` (~156 tokens)

Close (cancel) open offers and reclaim the locked funds. Returns null on success. Always closes expired offers automatically, even if no parameters are given. When specific offer txids are provided, closes only those offers. Use this to cancel offers that are no longer wanted, or as periodic cleanup to reclaim funds from expired offers.

Input parameters:

- `chain` (string, required): Chain to transact on (e.g., "VRSC", "vrsctest")
- `destination` (string): Transparent or private address to send reclaimed funds to.
- `privatefundsdestination` (string): Private (Sapling) address for native funds only.
- `txids` (array): Array of offer transaction IDs to close. If omitted, closes all expired offers.

## Diagnostics

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

## Score history

- 2026-08-03: 66
- 2026-08-02: 63
- 2026-08-01: 26
- 2026-07-31: 18
- 2026-07-30: 24
- 2026-07-28: 42
- 2026-07-27: 42

## Links

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