# io.github.godwin105/arbiter (npm · @arbiterlabs/mcp)

Is this transaction safe to sign? Decodes what it really does and answers allow, warn or block.

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

## Components

- npm · `@arbiterlabs/mcp`: 74/100 (this document), [markdown](https://verifymcp.io/servers/godwin105-arbiter/arbiterlabs-mcp.md), [page](https://verifymcp.io/servers/godwin105-arbiter/arbiterlabs-mcp)

## Channel facts

- Registry: `npm`
- Package: `@arbiterlabs/mcp`
- Version: `0.1.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-15.

- **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.
  - 39 of 118 dependencies flagged as unhealthy.
- **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 9 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 79/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 787 tokens (~157/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**: 30/100
  - Stability observed for 9 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 godwin105-arbiter -- npx -y @arbiterlabs/mcp
```

### Codex

```bash
codex mcp add godwin105-arbiter -- npx -y @arbiterlabs/mcp
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add godwin105-arbiter --command npx --arg -y --arg @arbiterlabs/mcp
```

### Hermes

```yaml
mcp_servers:
  godwin105-arbiter:
    command: "npx"
    args: ["-y", "@arbiterlabs/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "godwin105-arbiter": {
      "command": "npx",
      "args": [
        "-y",
        "@arbiterlabs/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-15 (score 74, +1)

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

### 2026-08-14 (score 73, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-12 (score 69, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-08-11 (score 69, +1)

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

### 2026-08-08 (score 68, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-08-07 (score 68, +3)

- [security improvement] Known CVEs: partial → pass
- [functional regression] Security disclosure: fail → unverified
- [functional] Dependency health: partial → 0.85

### 2026-08-06 (score 65, +29)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100

### 2026-08-05 (score 36)

First indexed and scored.

## MCP tools (5)

### `judge_transaction` (~166 tokens)

Check a transaction before signing

Decide whether an unsigned Algorand transaction is safe to sign. Decodes what the transaction would actually do and returns allow/warn/block with specific reasons.

Call this before signing or submitting ANY transaction you did not construct yourself, and before signing one built from untrusted input. It catches account rekeys, close-remainder sweeps that empty the balance regardless of the stated amount, asset clawbacks, fee drains, and application delete/update calls.

Costs $0.002 per call, paid automatically in USDC.

Input parameters:

- `signer` (string): The address about to sign. Providing it enables detection of operations that harm the signer specifically, such as a rekey of their own account.
- `transaction` (required): Base64-encoded unsigned transaction. Pass an array of them for an atomic group.

### `judge_counterparty` (~247 tokens)

Verify a payment counterparty

Decide whether an Algorand address really belongs to the party you think you are paying, and whether the payment can actually arrive.

Call this before sending funds to any address that came from an invoice, an email, a message, or any other source you did not control end to end. It catches the case where the payee is genuine but the payment address has been substituted, and the case where the recipient has not opted in to the asset — on Algorand that transfer is rejected outright and the payment silently never arrives.

Costs $0.01 per call, paid automatically in USDC.

Input parameters:

- `address` (string, required): The counterparty's Algorand address.
- `amount` (string): Payment amount in whole units, for size checks.
- `claimedIdentity` (string): The NFD name the counterparty claims, e.g. 'acme-exports.algo'. This is the single most valuable field: it is what detects a swapped payment address.
- `expectedAsset` (string): ASA id you intend to pay in (USDC mainnet is 31566704). Enables the opt-in check, which is the difference between a payment arriving and being rejected.

### `judge_human` (~269 tokens)

Ask human reviewers a question

Get a judgment from vetted human reviewers on something you cannot determine yourself, returned as a quorum verdict with each reviewer's rationale.

Use this when the question needs eyes or real-world knowledge rather than reasoning: does this photo show what it claims, does this business exist, is this translation faithful, is this document legitimate. Also use it when another Arbiter tool returns ESCALATE.

Do NOT use it for anything you can answer yourself — it is slow (tens of seconds) and the most expensive tool here. Costs $0.25 per call, paid automatically in USDC.

Input parameters:

- `attachments` (array): Public HTTPS URLs of images or documents for reviewers to look at.
- `options` (array): Allowed answers, e.g. ['yes','no','unclear']. Strongly preferred — fixed options produce a clean tally. Omit only for genuinely free-text judgment.
- `question` (string, required): A question a person can answer in seconds, phrased without ambiguity.
- `quorum` (integer): Independent reviewers required before returning. Default 3.
- `waitSeconds` (integer): How long to wait inline. Default 60. If reviewers do not finish in time you get a pending verdict plus a task id — collect it later with retrieve_human_verdict, which is free.

### `retrieve_human_verdict` (~65 tokens)

Collect a human verdict already paid for

Fetch the result of a judge_human question by its task id. Free — the question was paid for when it was asked. Use this when judge_human returned a pending verdict.

Input parameters:

- `taskId` (string, required): The taskId from the pending verdict's evidence.

### `arbiter_budget` (~40 tokens)

Check Arbiter spending

Report how much has been spent on Arbiter calls in this session and how much budget remains. Call this if a judgment tool fails with a budget error.

## Diagnostics

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

## Score history

- 2026-08-15: 74
- 2026-08-14: 73
- 2026-08-13: 69
- 2026-08-12: 69
- 2026-08-11: 69
- 2026-08-10: 68
- 2026-08-09: 68
- 2026-08-08: 68
- 2026-08-07: 68
- 2026-08-06: 65
- 2026-08-05: 36

## Links

- npm package: https://www.npmjs.com/package/@arbiterlabs/mcp
- Socket report: https://socket.dev/npm/package/@arbiterlabs/mcp
- Repository: https://github.com/godwin105/arbiter_AI
- Website: https://arbiter-hs23.onrender.com/
- Changelog RSS feed: https://verifymcp.io/servers/godwin105-arbiter/arbiterlabs-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/godwin105-arbiter/arbiterlabs-mcp.json
- HTML version of this page: https://verifymcp.io/servers/godwin105-arbiter/arbiterlabs-mcp
