# Agent Toolbox (npm · agentoolbox-mcp)

26 deterministic, offline pre-action safety gates for AI agents, each with a signed verdict.

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

## Components

- npm · `agentoolbox-mcp`: 68/100 (this document), [markdown](https://verifymcp.io/servers/solhammer-agent-toolbox/agentoolbox-mcp.md), [page](https://verifymcp.io/servers/solhammer-agent-toolbox/agentoolbox-mcp)

## Channel facts

- Registry: `npm`
- Package: `agentoolbox-mcp`
- Version: `0.1.4`
- 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**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), 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 (94 of 98), 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 16 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 76/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3340 tokens (~128/item across 26 items; 26 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**: 96/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 89% 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 solhammer-agent-toolbox -- npx -y agentoolbox-mcp
```

### Codex

```bash
codex mcp add solhammer-agent-toolbox -- npx -y agentoolbox-mcp
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add solhammer-agent-toolbox --command npx --arg -y --arg agentoolbox-mcp
```

### Hermes

```yaml
mcp_servers:
  solhammer-agent-toolbox:
    command: "npx"
    args: ["-y", "agentoolbox-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "solhammer-agent-toolbox": {
      "command": "npx",
      "args": [
        "-y",
        "agentoolbox-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-02 (score 68, +62)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional regression] Dependency health: partial → unverified
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-08-01 (score 6, −13)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial

### 2026-07-31 (score 19, −7)

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

### 2026-07-30 (score 26, +2)

- [security regression] Malware scan: pass → unverified
- [functional improvement] Tool coverage: unverified → 100

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

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

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

First indexed and scored.

## MCP tools (26)

### `validate_imports` (~111 tokens)

Validates all imports/packages in AI-generated code against live registries (PyPI, npm, crates.io, Go). Returns lists of valid, hallucinated, and unknown packages. Use this before executing any AI-generated code to catch hallucinated package names ('slopsquatting').

Input parameters:

- `code` (string, required): The AI-generated code to validate.
- `language` (string, required): The programming language of the code snippet.
- `timeoutMs` (number): Registry request timeout in ms (default: 5000).

### `verify_output` (~171 tokens)

Runs the hallucination firewall on an LLM output. Checks for hallucinated packages (code), invalid URLs, malformed citations (DOI/arXiv), and numeric contradictions. Returns PASS, FLAG, or BLOCK verdict with a tamper-evident certificate. Use this before accepting any LLM response in a critical pipeline.

Input parameters:

- `enforcementMode` (string): 'block' returns BLOCK verdict on failures (default). 'flag' downgrades BLOCK to FLAG. 'audit' logs only.
- `language` (string): Required when outputType is 'code'.
- `llmResponse` (string, required): The LLM output to verify.
- `outputType` (string, required): The type of LLM output being verified.
- `timeoutMs` (number): Per-check timeout in ms (default: 5000).

### `distill_context` (~106 tokens)

Compresses a conversation context to fit within a target token budget using TF-IDF importance scoring. Use this when your context window is getting large to reduce token costs while preserving the most important content. Keeps system prompts and the most recent messages.

Input parameters:

- `messages` (array, required): The conversation messages to distill.
- `preserveSystemPrompt` (boolean): Always keep the system prompt (default: true).
- `targetTokens` (number): Desired output token budget (default: 4000).

### `scan_secrets` (~94 tokens)

Detects hardcoded secrets and credentials (AWS/GitHub/OpenAI/Anthropic keys, private keys, DB connection strings, passwords) in code before it is committed or executed. Matches are redacted — the raw secret is never returned. Returns findings with type, severity, and line number.

Input parameters:

- `code` (string, required): The code to scan for secrets.
- `filename` (string): Optional filename, echoed back.

### `scan_injection` (~98 tokens)

Detects prompt-injection attacks (instruction overrides, role hijacking, jailbreaks, data exfiltration, encoding tricks) in user-supplied input. Call this before passing any untrusted input to an LLM. Returns a risk band (safe/suspicious/injection), a score, and matched patterns.

Input parameters:

- `context` (string): Optional context label, echoed back.
- `input` (string, required): The user input to screen.

### `count_tokens` (~110 tokens)

Approximate token count and cost estimate for a string or a chat-formatted messages array. Use before an LLM call to budget cost and check context-window fit. Supports gpt-4, gpt-3.5, claude, gemini, and generic.

Input parameters:

- `messages` (array): Chat messages to count (provide this or text).
- `model` (string): Model family for cost/context (default: generic).
- `text` (string): Text to count (provide this or messages).

### `scan_vulnerabilities` (~110 tokens)

Checks package names against the OSV (Open Source Vulnerabilities) database and returns CVEs/GHSAs affecting them. Use after validating imports to catch known-vulnerable dependencies before installing.

Input parameters:

- `language` (string, required): Language → ecosystem (python→PyPI, js/ts→npm, rust→crates.io, go→Go).
- `packages` (array, required): Package names to check.
- `timeoutMs` (number): OSV request timeout in ms (default: 8000).

### `scan_pii` (~146 tokens)

Detects and redacts PII/PHI/PCI (SSNs, credit cards, IBANs, UK NHS numbers, emails, phone numbers, IPs) in text before it is logged, sent to a third party, or persisted. Uses deterministic checksum validation (Luhn, ISO-7064, mod-11). Returns PASS/FLAG/BLOCK, a redacted copy of the text, and a signed certificate. Call this before any egress of user or record data.

Input parameters:

- `filename` (string): Optional source identifier, echoed back.
- `policy` (object): Optional enforcement policy.
- `text` (string, required): The text to scan for personal data.

### `finance_units` (~140 tokens)

Validates that a raw on-chain token amount matches the intended human (UI) amount given the token's authoritative decimals. Catches the catastrophic decimal-scaling error (e.g. sending 1000x too many tokens). Call before building any transfer transaction.

Input parameters:

- `chain` (string, required): Chain the token lives on.
- `rawAmount` (string, required): The integer amount as it will appear on-chain.
- `timeoutMs` (number): Lookup timeout in ms (default: 5000).
- `tokenAddress` (string, required): Mint (Solana) or contract (EVM) address.
- `uiAmount` (number, required): The human-readable amount intended.

### `finance_price` (~164 tokens)

Cross-validates an asset price against two independent live sources (CoinGecko + DexScreener for crypto, yahoo-finance2 for stocks). Blocks stale or divergent data and flags a proposed price that deviates from consensus. Provide symbol or tokenAddress.

Input parameters:

- `assetType` (string, required): Asset type.
- `divergenceThresholdPct` (number): Max allowed divergence between sources (default: 2).
- `maxAgeSeconds` (number): Max acceptable data age (default: 60 crypto / 3600 stock).
- `proposedPrice` (number): Optional price to validate against consensus.
- `symbol` (string): Asset symbol / CoinGecko id (e.g. 'solana', 'AAPL').
- `tokenAddress` (string): Token address (crypto).

### `finance_symbol` (~103 tokens)

Resolves a ticker symbol or token to a confirmed identity and flags ambiguity. For crypto, prefer resolving by address — symbols collide (USDC has 200+ imposters on Solana). Returns matches ranked by liquidity plus a verdict.

Input parameters:

- `assetType` (string, required): Asset type.
- `chain` (string): Optional chain filter for crypto.
- `expectedName` (string): Optional expected name to confirm identity.
- `symbol` (string, required): Symbol / ticker to resolve.

### `finance_token_risk` (~154 tokens)

Rug-pull scanner for Solana tokens: RugCheck.xyz score plus on-chain mint/freeze authority verification. Blocks tokens with active mint authority, unlocked LP, or a risk score above threshold.

Input parameters:

- `address` (string, required): Token mint address.
- `blockIfFreezeAuthority` (boolean): Block if freeze authority active (default: true).
- `blockIfMintAuthority` (boolean): Block if mint authority active (default: true).
- `chain` (string, required): Chain (Solana supported for full checks).
- `maxRugScore` (number): Block above this score, 0–100 (default: 60).
- `requireLpLocked` (boolean): Block if LP not locked (default: true).

### `finance_slippage` (~118 tokens)

Estimates price impact for a trade using DexScreener pool liquidity (constant-product AMM approximation). Prevents draining a thin pool. Flags implausible volume/liquidity ratios (wash trading).

Input parameters:

- `chain` (string, required): Chain the pool lives on.
- `maxPriceImpactPct` (number): Max acceptable price impact % (default: 2).
- `minLiquidityUsd` (number): Minimum acceptable pool liquidity in USD.
- `tokenAddress` (string, required): Token address.
- `tradeUsd` (number, required): Trade size in USD.

### `finance_order_risk` (~164 tokens)

Full pre-trade gate. Runs token risk, slippage, price validation, and position limits in parallel and returns a composite PASS/FLAG/BLOCK with the check that blocked it. One call replaces the individual finance checks.

Input parameters:

- `assetType` (string, required): Asset type.
- `chain` (string): Chain for crypto (default: solana).
- `leverage` (number): Leverage multiplier (default: 1).
- `portfolioValueUsd` (number): Portfolio value (enables position-limit check).
- `side` (string, required): Trade side.
- `symbol` (string): Asset symbol (stocks or crypto).
- `tokenAddress` (string): Token address (enables rug + slippage checks).
- `tradeUsd` (number, required): Trade size in USD.

### `finance_position_check` (~82 tokens)

Deterministic position-limit and kill-switch gate — no external calls, pure arithmetic. Enforces max position size %, daily-loss limits, leverage caps, open-position count, and an asset allowlist. The final non-overridable gate before executing a trade.

Input parameters:

- `portfolio` (object, required)
- `rules` (object)
- `trade` (object, required)

### `screen_sanctions` (~174 tokens)

Screens one or more party names (people, companies, vessels) against bundled OFAC sanctions lists (SDN + Consolidated) using deterministic exact, alias, and fuzzy matching. Returns PASS/FLAG/BLOCK with matched records and a signed certificate. Call before onboarding, paying, shipping to, or contracting with any counterparty.

Input parameters:

- `entityTypes` (array): Restrict to these entity types.
- `fuzzy` (boolean): Enable fuzzy matching (default true).
- `lists` (array): Restrict to source lists (e.g. ['OFAC-SDN']).
- `minScore` (number): Fuzzy reporting floor 0..1 (default 0.85).
- `name` (string): A single party name to screen.
- `names` (array): Multiple names to screen in one call.

### `rx_check` (~92 tokens)

Medication safety gate: deterministic unit-confusion, overdose, and drug-drug interaction checks for a list of medications. Returns PASS/FLAG/BLOCK findings with a signed certificate. Informational only — not medical advice. Call before an agent finalizes any medication list, prescription, or dosing instruction.

Input parameters:

- `medications` (array, required): Medications to evaluate.
- `patient` (object)
- `policy` (object)

### `check_tool_args` (~140 tokens)

Validates a proposed tool/function call's arguments against a caller-supplied schema and policy: types, required fields, enums, numeric ranges, string length/pattern, null-safety, unknown args, unit-coercion (dollars-vs-cents), and cross-field rules. Deterministic and offline. Returns PASS/FLAG/BLOCK with violations. Call before executing a tool call involving money, quantities, or destructive effects.

Input parameters:

- `args` (object, required): The proposed argument map to validate.
- `policy` (object)
- `schema` (object, required): Validation schema.
- `tool` (string): Optional name of the tool being called.

### `check_infra_plan` (~126 tokens)

Static blast-radius / risk analysis of infrastructure-as-code against a bundled CIS/OPA-style ruleset. Accepts a Terraform plan JSON (terraform show -json), an AWS IAM policy JSON, or a Kubernetes manifest JSON. Flags public exposure, IAM wildcards, destroy/replace of stateful resources, privileged pods, and more. Deterministic and offline (no cloud credentials). Returns PASS/FLAG/BLOCK with findings.

Input parameters:

- `document` (object, required): The already-parsed JSON document to analyze.
- `format` (string, required): Document format.
- `policy` (object)

### `check_citation` (~148 tokens)

Validates US case-law citations (volume / reporter / page / year) against a bundled table of reporter abbreviations, flags malformed or implausible citations, and — when source text is supplied — checks quote fidelity to catch fabricated quotes. Deterministic and offline. Returns PASS/FLAG/BLOCK. Call before an agent presents a legal citation or quotation.

Input parameters:

- `citation` (string): A single citation string, e.g. '347 U.S. 483 (1954)'.
- `citations` (array): Multiple citations to validate.
- `quote` (string): Optional quote to locate within sourceText.
- `sourceText` (string): Optional source text to check a quote against.

### `compute_deadline` (~148 tokens)

Computes a legal deadline by counting court days (skipping weekends and US federal holidays) or calendar days from a start date, forwards or backwards. Deterministic and offline. Returns the resolved date and what was skipped. Use for filing deadlines and statute-of-limitations math.

Input parameters:

- `days` (number, required): Number of days to count (>= 0).
- `direction` (string): Count forward or backward (default after).
- `jurisdiction` (string): Reserved; the US federal calendar is used.
- `mode` (string): court skips weekends+holidays; calendar counts all days (default calendar).
- `start` (string, required): Start date, ISO 8601 (YYYY-MM-DD).

### `validate_identifier` (~148 tokens)

Validates structured identifiers (IBAN, ABA routing, SWIFT/BIC, credit card, EIN, EU VAT, VIN, NPI, US SSN, Ethereum/Solana address) via deterministic checksums and format rules. Auto-detects the type when not given. Card and SSN values are masked. Returns PASS/FLAG/BLOCK. Call before an agent stores, pays to, or transacts against an identifier.

Input parameters:

- `type` (string): Identifier type; omit to auto-detect.
- `types` (array): Restrict auto-detection to these types.
- `value` (string): A single identifier to validate.
- `values` (array): Multiple identifiers to validate.

### `validate_schema` (~100 tokens)

Validates a JSON value against a caller-supplied JSON Schema (Draft-07 subset), deterministically and offline. Use to gate an LLM's or a tool's structured output before acting on it. Returns PASS/FLAG/BLOCK with per-error JSON paths.

Input parameters:

- `data`: The JSON value to validate (any type).
- `policy` (object)
- `schema` (object, required): JSON Schema (Draft-07 subset) to validate against.

### `scan_sql` (~99 tokens)

Scans SQL for dangerous patterns before execution — DELETE/UPDATE without WHERE, DROP/TRUNCATE, tautologies (WHERE 1=1), stacked statements, UNION-based injection, and privilege changes. Comment- and string-literal-aware; no database connection. Returns PASS/FLAG/BLOCK with findings.

Input parameters:

- `dialect` (string): SQL dialect (default generic).
- `policy` (object)
- `sql` (string, required): The SQL to scan.

### `scan_command` (~146 tokens)

Scans a shell command for dangerous / destructive patterns before execution — rm -rf /, curl|sh remote-exec, dd/mkfs raw disk writes, fork bombs, chmod 777, privilege escalation, force-push to protected branches, kubectl/docker destroys, firewall/security disables, and data exfiltration. Quote- and substitution-aware (content inside quotes never triggers). Deterministic and offline — never executes the command. Returns PASS/FLAG/BLOCK with findings. Call before an agent runs any shell command.

Input parameters:

- `command` (string, required): The shell command line to scan.
- `policy` (object)
- `shell` (string): Target shell (default generic).

### `scan_url` (~148 tokens)

Scans a URL / host for SSRF and egress-policy violations before an outbound request or browser navigation — cloud instance-metadata endpoints (169.254.169.254), private/loopback/link-local targets, decimal/octal/hex IP obfuscation, denied schemes (file:, gopher:), credentials-in-URL, punycode/homograph hosts, and allow/deny-list + port policy. Deterministic and offline by default; optional DNS resolution detects DNS-rebinding when resolve=true. Returns PASS/FLAG/BLOCK with findings. Call before an agent fetches a URL.

Input parameters:

- `policy` (object)
- `url` (string, required): The URL to scan.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/solhammer-agent-toolbox/agentoolbox-mcp#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 68
- 2026-08-01: 6
- 2026-07-31: 19
- 2026-07-30: 26
- 2026-07-28: 24
- 2026-07-27: 44

## Links

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