Toolbox

Small tools for agent builders: AI-writing tells, tools/list token cost, CLAUDE.md lint, and more.

Should I use this

Quality & Safety

B
Description quality
95%
Schema completeness
98%
Naming quality
89%
Poisoning risk
40%
Permission match
100%
Protocol compliance
100%

Findings (6)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'lint_agent_md' description contains placeholder textin lint_agent_md
  • MEDIUMTool 'scrub_env' description contains placeholder textin scrub_env
  • LOWTool description contains role marker that could confuse chat modelsin scrub_env
  • INFOTool description contains placeholder or incomplete textin lint_agent_md
  • INFOTool description contains placeholder or incomplete textin scrub_env

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,978Tokens (tool definitions)
~536 BTypical response size
Moderate attention impact (1.55% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "toolbox": {
      "url": "https://toolbox.allthepossibles.com/mcp"
    }
  }
}

Remote endpoints

https://toolbox.allthepossibles.com/mcpstreamable-http

What it can do

Tool inventory

Tools (13)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_tells(text)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "The text to check. Free tier: 3,000 chars."
    }
  },
  "required": [
    "text"
  ]
}
🟢manifest_cost(url, tools)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Streamable HTTP MCP endpoint"
    },
    "tools": {
      "type": "array",
      "description": "Tool definitions, if the server is not reachable over HTTP",
      "items": {
        "type": "object"
      }
    }
  }
}
🟢lint_agent_md(text, filename)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "File contents"
    },
    "filename": {
      "type": "string",
      "description": "e.g. CLAUDE.md or MEMORY.md; changes the severity of the line cap"
    }
  },
  "required": [
    "text"
  ]
}
🟢mcp_install_snippets(url, name, headerName, headerValue, probe)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "name": {
      "type": "string",
      "description": "Server name to use in configs"
    },
    "headerName": {
      "type": "string"
    },
    "headerValue": {
      "type": "string"
    },
    "probe": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "url"
  ]
}
🟢check_ai_crawlers(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Any URL on the site"
    }
  },
  "required": [
    "url"
  ]
}
🟢check_headers(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The page to fetch"
    }
  },
  "required": [
    "url"
  ]
}
🟢check_page_meta(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "The page to fetch"
    }
  },
  "required": [
    "url"
  ]
}
🟢json_to_schema(json, name)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "json": {
      "type": "string",
      "description": "The JSON text. Free tier: 20,000 chars."
    },
    "name": {
      "type": "string",
      "description": "Type name, default Root"
    }
  },
  "required": [
    "json"
  ]
}
🟢explain_cron(expression, count, from)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string",
      "description": "e.g. 0 */6 * * 1-5"
    },
    "count": {
      "type": "integer",
      "description": "How many next runs to list, 1 to 20, default 5"
    },
    "from": {
      "type": "string",
      "description": "ISO date to compute next runs from, default now"
    }
  },
  "required": [
    "expression"
  ]
}
🟢scrub_env(text)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "The .env file contents. Free tier: 20,000 chars."
    }
  },
  "required": [
    "text"
  ]
}
🟢trace_redirects(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "URL to trace, e.g. http://example.com"
    }
  },
  "required": [
    "url"
  ]
}
🟢check_sitemap(url, sample)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Any URL on the site"
    },
    "sample": {
      "type": "integer",
      "description": "How many sitemap URLs to fetch, default 10, max 25 on free and 100 on Pro"
    }
  },
  "required": [
    "url"
  ]
}
🟢decode_jwt(token)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "The JWT, three dot-separated parts. A leading Bearer is ignored."
    }
  },
  "required": [
    "token"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools