Agent Toolbox
NPM · AGENTOOLBOX-MCP · SCANNED SEP 20
26 deterministic, offline pre-action safety gates for AI agents, each with a signed verdict.
Available components
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. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 64 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
- AI-judged instruction clarity (excellent).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage96
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 89% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 26 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Agent Toolbox MCP server?
Agent Toolbox runs locally as an npm package, launched with npx -y agentoolbox-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · agentoolbox-mcp
claude mcp add solhammer-agent-toolbox -- npx -y agentoolbox-mcp
{
"mcpServers": {
"solhammer-agent-toolbox": {
"command": "npx",
"args": [
"-y",
"agentoolbox-mcp"
]
}
}
} {
"servers": {
"solhammer-agent-toolbox": {
"command": "npx",
"args": [
"-y",
"agentoolbox-mcp"
]
}
}
} codex mcp add solhammer-agent-toolbox -- npx -y agentoolbox-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"solhammer-agent-toolbox": {
"type": "local",
"command": [
"npx",
"-y",
"agentoolbox-mcp"
],
"enabled": true
}
}
} openclaw mcp add solhammer-agent-toolbox --command npx --arg -y --arg agentoolbox-mcp
mcp_servers:
solhammer-agent-toolbox:
command: "npx"
args: ["-y", "agentoolbox-mcp"] {
"McpServers": {
"solhammer-agent-toolbox": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"agentoolbox-mcp"
]
}
}
} assistant mcp add solhammer-agent-toolbox -t stdio -c npx -a -y agentoolbox-mcp
{
"mcpServers": {
"solhammer-agent-toolbox": {
"command": "npx",
"args": [
"-y",
"agentoolbox-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 0
- Security disclosure: unverified → fail ▼ functional
- 16 Sept 26 −3
- Security disclosure: fail → unverified ▼ functional
- Stability: pass → 0.80 functional
- 15 Sept 26 +1
- Stability: 0.97 → pass security
- 14 Sept 26 0
- Security disclosure: unverified → fail ▼ functional
- 13 Sept 26 +1
- Security disclosure: fail → unverified ▼ functional
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/agentoolbox-mcp@0.1.4
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_citation ~148
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
No output schema declared.
No examples provided.
check_infra_plan ~126
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.
| Name | Type | Req | Description |
|---|---|---|---|
| document | object | yes | The already-parsed JSON document to analyze. |
| format | string | yes | Document format. |
| policy | object | – | – |
No output schema declared.
No examples provided.
check_tool_args ~140
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.
| Name | Type | Req | Description |
|---|---|---|---|
| args | object | yes | The proposed argument map to validate. |
| policy | object | – | – |
| schema | object | yes | Validation schema. |
| tool | string | – | Optional name of the tool being called. |
No output schema declared.
No examples provided.
compute_deadline ~148
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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | yes | 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 | yes | Start date, ISO 8601 (YYYY-MM-DD). |
No output schema declared.
No examples provided.
count_tokens ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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). |
No output schema declared.
No examples provided.
distill_context ~106
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.
| Name | Type | Req | Description |
|---|---|---|---|
| messages | array | yes | The conversation messages to distill. |
| preserveSystemPrompt | boolean | – | Always keep the system prompt (default: true). |
| targetTokens | number | – | Desired output token budget (default: 4000). |
No output schema declared.
No examples provided.
finance_order_risk ~164
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.
| Name | Type | Req | Description |
|---|---|---|---|
| assetType | string | yes | 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 | yes | Trade side. |
| symbol | string | – | Asset symbol (stocks or crypto). |
| tokenAddress | string | – | Token address (enables rug + slippage checks). |
| tradeUsd | number | yes | Trade size in USD. |
No output schema declared.
No examples provided.
finance_position_check ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio | object | yes | – |
| rules | object | – | – |
| trade | object | yes | – |
No output schema declared.
No examples provided.
finance_price ~164
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.
| Name | Type | Req | Description |
|---|---|---|---|
| assetType | string | yes | 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). |
No output schema declared.
No examples provided.
finance_slippage ~118
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).
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain the pool lives on. |
| maxPriceImpactPct | number | – | Max acceptable price impact % (default: 2). |
| minLiquidityUsd | number | – | Minimum acceptable pool liquidity in USD. |
| tokenAddress | string | yes | Token address. |
| tradeUsd | number | yes | Trade size in USD. |
No output schema declared.
No examples provided.
finance_symbol ~103
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.
| Name | Type | Req | Description |
|---|---|---|---|
| assetType | string | yes | Asset type. |
| chain | string | – | Optional chain filter for crypto. |
| expectedName | string | – | Optional expected name to confirm identity. |
| symbol | string | yes | Symbol / ticker to resolve. |
No output schema declared.
No examples provided.
finance_token_risk ~154
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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Token mint address. |
| blockIfFreezeAuthority | boolean | – | Block if freeze authority active (default: true). |
| blockIfMintAuthority | boolean | – | Block if mint authority active (default: true). |
| chain | string | yes | 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). |
No output schema declared.
No examples provided.
finance_units ~140
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.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain the token lives on. |
| rawAmount | string | yes | The integer amount as it will appear on-chain. |
| timeoutMs | number | – | Lookup timeout in ms (default: 5000). |
| tokenAddress | string | yes | Mint (Solana) or contract (EVM) address. |
| uiAmount | number | yes | The human-readable amount intended. |
No output schema declared.
No examples provided.
rx_check ~92
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.
| Name | Type | Req | Description |
|---|---|---|---|
| medications | array | yes | Medications to evaluate. |
| patient | object | – | – |
| policy | object | – | – |
No output schema declared.
No examples provided.
scan_command ~146
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.
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | The shell command line to scan. |
| policy | object | – | – |
| shell | string | – | Target shell (default generic). |
No output schema declared.
No examples provided.
scan_injection ~98
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.
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Optional context label, echoed back. |
| input | string | yes | The user input to screen. |
No output schema declared.
No examples provided.
scan_pii ~146
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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | – | Optional source identifier, echoed back. |
| policy | object | – | Optional enforcement policy. |
| text | string | yes | The text to scan for personal data. |
No output schema declared.
No examples provided.
scan_secrets ~94
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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The code to scan for secrets. |
| filename | string | – | Optional filename, echoed back. |
No output schema declared.
No examples provided.
scan_sql ~99
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dialect | string | – | SQL dialect (default generic). |
| policy | object | – | – |
| sql | string | yes | The SQL to scan. |
No output schema declared.
No examples provided.
scan_url ~148
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.
| Name | Type | Req | Description |
|---|---|---|---|
| policy | object | – | – |
| url | string | yes | The URL to scan. |
No output schema declared.
No examples provided.
scan_vulnerabilities ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | yes | Language → ecosystem (python→PyPI, js/ts→npm, rust→crates.io, go→Go). |
| packages | array | yes | Package names to check. |
| timeoutMs | number | – | OSV request timeout in ms (default: 8000). |
No output schema declared.
No examples provided.
screen_sanctions ~174
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
No output schema declared.
No examples provided.
validate_identifier ~148
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
No output schema declared.
No examples provided.
validate_imports ~111
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').
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The AI-generated code to validate. |
| language | string | yes | The programming language of the code snippet. |
| timeoutMs | number | – | Registry request timeout in ms (default: 5000). |
No output schema declared.
No examples provided.
validate_schema ~100
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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | The JSON value to validate (any type). |
| policy | object | – | – |
| schema | object | yes | JSON Schema (Draft-07 subset) to validate against. |
No output schema declared.
No examples provided.
verify_output ~171
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | The LLM output to verify. |
| outputType | string | yes | The type of LLM output being verified. |
| timeoutMs | number | – | Per-check timeout in ms (default: 5000). |
No output schema declared.
No examples provided.
What is the Agent Toolbox MCP server?
Agent Toolbox is an MCP server listed in the public MCP registry as io.github.solhammer/agent-toolbox. 26 deterministic, offline pre-action safety gates for AI agents, each with a signed verdict. This page covers its npm package (agentoolbox-mcp).
Is the Agent Toolbox MCP server safe to use?
Agent Toolbox scores 83 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 Agent Toolbox MCP server expose?
Agent Toolbox exposes 26 tools: validate_imports, verify_output, distill_context, scan_secrets, scan_injection, and 21 more. Their descriptions and schemas cost roughly 3,340 tokens of context every time the server is loaded.
Is the Agent Toolbox MCP server still maintained?
Agent Toolbox 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 Agent Toolbox MCP server under?
Agent Toolbox declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.