Benchline
What it is
A free, open-source directory of 61 browser tools for developers, SEO and files, where every tool is also callable by AI agents through a stateless MCP server.
I built Benchline, a free directory of browser tools for the small, exact jobs around shipping software: JSON, PDFs, images, tokens, headers, and the files an AI crawler can cite. Each tool is a pure function with a page on the site and the same function on a stateless MCP server. Nothing is stored, and a tool runs in the browser unless its job is to read a public URL.
Problem
Developer utilities are usually scattered across ad-heavy sites that upload your files, and none of them can be used by an AI coding agent. I wanted one fast directory where files stay on the device, and where Cursor, Claude or VS Code could call the exact same tools without an API key.
What I built
- 61 tools across developer, data and formats, SEO and AI search, image and media, PDF, security, design, text, math and network categories. 52 run entirely in the browser.
- One folder per tool: metadata, a client page, a pure `lib/` covered by vitest, and an `mcp.ts` entry point.
- A stateless Streamable HTTP MCP server at `/mcp` with no API key and no session, plus the same functions at `POST /api/v1/tools/<slug>` with an OpenAPI 3.1 document.
- A generated registry that validates every tool at build time and fails the build when a tool has no MCP entry.
- `/llms.txt` and `/llms-full.txt` generated from the registry, a searchable directory with a ⌘K command palette, and light and dark themes.
- SSRF protection for the nine tools that fetch public URLs, with per-address rate limits on the MCP server and the API.
Stack
Next.js 16 (App Router, standalone output), React 19, strict TypeScript, Tailwind CSS v4, shadcn/ui on Base UI, zod 4, vitest and the Model Context Protocol TypeScript SDK, shipped as a three-stage Docker image on Node 22.
