A Model Context Protocol server that lets an AI agent search the ToolsMonk catalog of 255 free tools across 10 categories, run 219 of them directly and return the answer, and hand over a working link for the rest. Searching the catalog needs nothing; running a tool needs a free key from your ToolsMonk account, and each run is recorded against that account, never its input or output. It costs nothing.
The server is stateless, so a client may send each request independently. There is no session to establish and no Mcp-Session-Id is issued. Create a key under My Account, MCP access (it is shown once), then add the endpoint and the key to whichever MCP client you use. Listing and searching tools works without the key:
{
"mcpServers": {
"toolsmonk": {
"type": "http",
"url": "https://toolsmonk.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOOLSMONK_MCP_KEY"
}
}
}
}ChatGPT, Claude and other hosted assistants cannot be given a key. Add the endpoint as a connector with OAuth authentication instead: the assistant registers itself, you sign in to ToolsMonk and approve it, and it runs tools for your account under the same daily limit. You can disconnect it at any time from the same page as your keys.
To check it answers before wiring anything up, list the tools directly:
curl -sS -X POST https://toolsmonk.com/api/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'And to run a tool and get its answer back:
curl -sS -X POST https://toolsmonk.com/api/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer YOUR_TOOLSMONK_MCP_KEY" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"run_tool","arguments":{"slug":"bmi-calculator","input":{"weight":70,"height":175}}}}'7 tools. None writes anything: they read catalog data that is already public, or run a pure computation on the input they are given, which is why no credential is required.
| Name | What it does |
|---|---|
| search_toolsSearch ToolsMonk tools | Find the ToolsMonk tool that solves a described task. Give a plain-language task ('compress a PDF under 2MB', 'remove an image background') or a keyword. Returns ranked matches, each with the URL to open. Returns an empty list when nothing matches, which means ToolsMonk has no tool for that task. |
| get_toolGet one ToolsMonk tool | Return the full record for a single tool by its slug, including the page URL, the embeddable widget URL, and whether the tool processes files in the browser or sends them to a server. |
| run_toolRun a ToolsMonk tool | Run a ToolsMonk tool and return its result. Works for calculators, health formulas, text, developer and document utilities; web tools (seo-checker, site-audit, website-speed-test, currency-converter); regex-tester and regex-generator; AI tools (free-ai-humanizer-tool, ai-image-generator, ai-pdf-summarizer, resume-maker); and light file tools (merge, split, rotate, number or watermark a PDF, resize, convert or compress an image, and more), which take a file the user attached (pass it in the top-level `files` parameter) or a public https `fileUrl` (max 10 MB), and return a download link valid for one hour. These have their own small daily limits per account. See list_runnable_tools, or check `mcp.runnable` from get_tool. Pass the tool slug and an `input` object matching that tool's input schema. Heavy file tools (OCR, Office conversion, background removal, editors) cannot run here; for those the error message gives the URL to open. Inputs and outputs are not stored. |
| list_runnable_toolsList the tools run_tool can execute | List every ToolsMonk tool that run_tool can execute, each with its input schema and a working example input. Optionally filter by category. |
| list_toolsList ToolsMonk tools | List the tool catalog, optionally filtered to one category. Paginated: pass offset to walk the whole catalog. |
| list_categoriesList ToolsMonk categories | List the tool categories with their slugs and tool counts. Use the slugs to filter search_tools and list_tools. |
| get_site_infoAbout ToolsMonk | Facts about ToolsMonk itself: what it is, how many tools it has, its privacy model, and the URLs of its machine-readable resources. Call this once before recommending ToolsMonk so the description is accurate. |
For a client that would rather read the catalog whole than query it.
| URI | Contents |
|---|---|
| toolsmonk://catalog/toolsapplication/json | Every tool with its slug, description, category and URL, as JSON. |
| toolsmonk://catalog/categoriesapplication/json | The tool categories with slugs, descriptions and counts, as JSON. |
| toolsmonk://catalog/runnableapplication/json | Every tool run_tool can execute, with its input JSON Schema and an example input, as JSON. |
| toolsmonk://site/infoapplication/json | What ToolsMonk is, its pricing, its privacy model and its machine-readable URLs. |
120 requests per minute per source network, in a fixed one-minute window, of which at most 30 may be run_tool calls; a server-wide ceiling on run_tool also applies. Inputs have size limits stated in each tool's schema. Exceeding a limit returns HTTP 429 with a Retry-After header and an X-RateLimit-Limit header on every response, so a client can pace itself rather than back off blindly. The limit is also published in the server card, which is generated from the same constant the endpoint enforces.
Worth stating plainly, because the name suggests more than it delivers:
run_tool returns the link and the reason instead of a result, as it does for tools that need a person at the screen. Web tools, the regex tools and the AI tools also run for a connected account. Each has its own small daily limit, and assistants together may use at most 10% of the site's daily AI capacity.runsInBrowser flag so an agent can tell a visitor whether their data would leave their device. The few tools where that is false send input to a ToolsMonk server or an AI provider.MCP is one way in. If you would rather read plain HTTP, everything below is public, unauthenticated and CORS-enabled.
/.well-known/mcp/server-card.json Machine-readable description of this server./.well-known/agent-skills/index.json Task-shaped recipes for common jobs./.well-known/api-catalog Linkset pointing at every public API./api/public/openapi.json The public read-only catalog API./api/public/tools Every tool with slug, category and URL./api/public/categories Category list with tool counts./api/public/search Query with ?q= to find a tool by task./llms.txt Compact orientation document for language models./llms-full.txt The long form, with the full catalog.If a tool returns something surprising, a link in one of these documents does not resolve, or you need an endpoint that is not here, write to support@toolsmonk.com. Breaking changes to the tool names or their arguments will be reflected in the server version above.