Toolbox
by allthepossibles.com · remote · no sign-in to list tools · v1.0.0 · published by com.allthepossibles
Small tools for agent builders: AI-writing tells, tools/list token cost, CLAUDE.md lint, and more.
14 tools: 10 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things10Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http toolbox https://toolbox.allthepossibles.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Highscrub_env
The description refers to ".env" and ".env.example".
What this check looks forMatched text
description: "Scrub a .env file into a safe .env.example: every va..."
- Highscrub_env
The input schema at properties.text.description refers to ".env".
What this check looks forMatched text
inputSchema.properties.text.description: "The .env file contents. Free tier: 20,000 chars."
The server marks "mcp_install_snippets" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "mcp_install_snippets" says "install": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Changes things 10Claude Code: ask
check_sitemapCheck a site's sitemaps: discovers them from robots.txt, /sitemap.xml and /sitemap_index.xml, reads index files one level deep (20 children max), counts URLs per file and per host,…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check a site's sitemaps: discovers them from robots.txt, /sitemap.xml and /sitemap_index.xml, reads index files one level deep (20 children max), counts URLs per file and per host, summarises lastmod, and fetches a sample of URLs (HEAD, then GET) to count the ones that are not 200. Flags a missing sitemap, no robots.txt entry, over 50,000 URLs, other hosts, http URLs on https sites and missing lastmod.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
check_tellsCheck text for AI-writing tells (em-dashes, 'not just X but Y', rule-of-three lists, stock vocabulary like delve or seamlessly, hedge words, smart quotes, hidden Unicode) and retur…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check text for AI-writing tells (em-dashes, 'not just X but Y', rule-of-three lists, stock vocabulary like delve or seamlessly, hedge words, smart quotes, hidden Unicode) and return a score, each tell with its position, and a cleaned copy. Run it on anything you are about to publish on a human's behalf.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
decode_jwtDecode a JWT's header and payload without verifying the signature (it never takes a secret).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Decode a JWT's header and payload without verifying the signature (it never takes a secret). Returns the claims with iat, nbf and exp as ISO times, a plain-text expiresIn, issuer, subject and audience, and findings: alg none, HS* with a URL-like kid, missing or distant exp, expired, nbf or iat in the future, payload over 4 KB, sensitive field names, and jku or x5u pointing off-site.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
json_to_schemaTurn a JSON sample (or an array of samples of the same shape) into a JSON Schema draft 2020-12 and a TypeScript type.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn a JSON sample (or an array of samples of the same shape) into a JSON Schema draft 2020-12 and a TypeScript type. Infers required vs optional keys across samples, nullable fields, integer vs number, date/email/uri/uuid formats, and small enums. Use it to draft an MCP tool inputSchema from an example payload.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
lint_agent_mdLint a CLAUDE.md, AGENTS.md or MEMORY.md: line count against Claude Code's 200-line memory index cap, estimated tokens, duplicate lines, contradicting rules, leftover TODO markers,…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Lint a CLAUDE.md, AGENTS.md or MEMORY.md: line count against Claude Code's 200-line memory index cap, estimated tokens, duplicate lines, contradicting rules, leftover TODO markers, hidden characters, empty headings.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
lint_mcp_toolsLint the tools an MCP server lists, from the model's side of the wire: names that break Claude's ^[a-zA-Z0-9_-]{1,64}$ rule, duplicate names, missing or near-identical descriptions…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Lint the tools an MCP server lists, from the model's side of the wire: names that break Claude's ^[a-zA-Z0-9_-]{1,64}$ rule, duplicate names, missing or near-identical descriptions, instruction-like text in a description, arguments with no description, required arguments missing from properties, destructive-sounding tools with no destructiveHint, and unbounded free-text arguments on them. Pass a live Streamable HTTP endpoint or a tools array.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
manifest_costEstimate what an MCP server's tools/list costs in tokens on every session start, per tool, with the three most expensive tools and flags for oversized descriptions, base64 blobs an…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Estimate what an MCP server's tools/list costs in tokens on every session start, per tool, with the three most expensive tools and flags for oversized descriptions, base64 blobs and echoed schemas. Pass a live Streamable HTTP endpoint or a tools array.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
mcp_install_snippetsGenerate install snippets for an MCP endpoint (Claude Code, Claude Desktop, Cursor, Codex, VS Code, curl) and probe the endpoint once to confirm it answers initialize and tools/lis…1 finding
Why it is in this group
- The name "mcp_install_snippets" says "install": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "mcp_install_snippets" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "mcp_install_snippets" says "install": a word for a change.
Description, as the server wrote it Generate install snippets for an MCP endpoint (Claude Code, Claude Desktop, Cursor, Codex, VS Code, curl) and probe the endpoint once to confirm it answers initialize and tools/list.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
scrub_envScrub a .env file into a safe .env.example: every value is blanked or replaced with a placeholder that keeps its shape (postgres://USER:PASSWORD@HOST/DB).2 findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- High
The description refers to ".env" and ".env.example".
What this check looks forMatched text
description: "Scrub a .env file into a safe .env.example: every va..."
- High
The input schema at properties.text.description refers to ".env".
What this check looks forMatched text
inputSchema.properties.text.description: "The .env file contents. Free tier: 20,000 chars."
Description, as the server wrote it Scrub a .env file into a safe .env.example: every value is blanked or replaced with a placeholder that keeps its shape (postgres://USER:PASSWORD@HOST/DB). Returns the example, the secrets found (AWS, GitHub, Stripe, Slack, Google, OpenAI, Anthropic, Resend, SendGrid, Twilio, Cloudflare, JWTs, private keys, database URLs, high-entropy strings) by key, kind and line with only the first 4 characters and the length, and findings for duplicate keys, non-UPPER_SNAKE names, unbalanced quotes, export prefixes and trailing spaces.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
trace_redirectsTrace a URL's redirect chain hop by hop (up to 10 hops, 8 s each) with status, location, timing and scheme per hop.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Trace a URL's redirect chain hop by hop (up to 10 hops, 8 s each) with status, location, timing and scheme per hop. Flags chains over two redirects, loops, HTTPS-to-HTTP downgrades, 302s used for www or https canonicalisation, dropped paths or query strings, cross-domain moves, meta-refresh or JS redirects on a 200, and a final page that is not 200.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Only reads 4Claude Code: allow
check_ai_crawlersRead a site's robots.txt and report which AI crawlers (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, CCBot, Bytespider and more) are allowed, blocked or partially blocked; che…No findings
Why it is in this group
- The description's first verb is "read": a word for reading.
Description, as the server wrote it Read a site's robots.txt and report which AI crawlers (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, CCBot, Bytespider and more) are allowed, blocked or partially blocked; check for llms.txt and draft one from the site's metadata and sitemap.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
check_headersFetch a URL once and grade its response headers: HSTS, Content-Security-Policy, X-Content-Type-Options, frame control, Referrer-Policy, Permissions-Policy, Cache-Control, cookie Se…No findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
Description, as the server wrote it Fetch a URL once and grade its response headers: HSTS, Content-Security-Policy, X-Content-Type-Options, frame control, Referrer-Policy, Permissions-Policy, Cache-Control, cookie Secure/HttpOnly/SameSite flags, and server version leaks. Returns a grade, a score and the exact header to add for each gap.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
check_page_metaFetch a URL and report what crawlers and link unfurlers see: title and meta description with lengths, canonical, lang, viewport, robots meta, h1s, Open Graph and Twitter card tags,…No findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
Description, as the server wrote it Fetch a URL and report what crawlers and link unfurlers see: title and meta description with lengths, canonical, lang, viewport, robots meta, h1s, Open Graph and Twitter card tags, favicon, JSON-LD types, the resulting preview card, and findings for anything missing or too long.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
explain_cronExplain a five-field cron expression in plain English, list the next runs in UTC, and warn about the cases Cloudflare Workers, GitHub Actions and crontab handle differently (nickna…No findings
Why it is in this group
- The name "explain_cron" says "explain": a word for reading.
Description, as the server wrote it Explain a five-field cron expression in plain English, list the next runs in UTC, and warn about the cases Cloudflare Workers, GitHub Actions and crontab handle differently (nicknames, six fields, day-of-month plus day-of-week, sub-5-minute intervals, day 31).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http toolbox https://toolbox.allthepossibles.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__toolbox__check_ai_crawlers",
"mcp__toolbox__check_headers",
"mcp__toolbox__check_page_meta",
"mcp__toolbox__explain_cron"
],
"ask": [
"mcp__toolbox__check_tells",
"mcp__toolbox__manifest_cost",
"mcp__toolbox__lint_agent_md",
"mcp__toolbox__mcp_install_snippets",
"mcp__toolbox__json_to_schema",
"mcp__toolbox__scrub_env",
"mcp__toolbox__trace_redirects",
"mcp__toolbox__check_sitemap",
"mcp__toolbox__decode_jwt",
"mcp__toolbox__lint_mcp_tools"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as toolbox. Review it before you use it.