--- name: HowToolbox description: Calculators, converters and checks; 208 active utilities and 239 module tools. use_when: Find a utility, inspect its input schema, calculate a precise result, or link a person to an answer. do_not_use_for: Private API access, bulk network checks, persistent storage, or professional advice. --- ## Fast path One POST runs a tool; no session or initialize is required. Call any MCP-eligible tool from https://how.box/agent-tools.json (`server`: `pure` or `datasets`) by its own name, with its input as `arguments`: ```sh curl -sS 'https://how.box/mcp' -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \ --data '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"length_convert","arguments":{"value":1,"from_unit":"mi","to_unit":"km"}}}' ``` Response: `result.structuredContent` holds the computed fields and `url`, the answer page to give the person. Unknown tool name: find it with `catalog_search_utilities` (below). Direct tools are callable but not in `tools/list`, which lists only the 5 catalog tools. ## Endpoints - MCP: https://how.box/mcp — Streamable HTTP, JSON-RPC 2.0 over POST; JSON responses, stateless, no authentication. Protocol versions: 2025-11-25, 2025-06-18, 2025-03-26. - WebMCP: open https://how.box/ in Chrome with WebMCP available (origin trial or testing flag); entry point `document.modelContext`. Catalog tools: `catalog_search_utilities`, `catalog_list_categories`, `catalog_list_facets`, `catalog_get_utility`, `catalog_open_utility`, `catalog_describe_tool`, `catalog_run_tool`. Module pages also register their own tools. - Tool schemas: https://how.box/agent-tools.json — names, descriptions, JSON input schemas and `server` eligibility. - Catalog: https://how.box/catalog.json — utilities, categories, tags, page URLs and deep-link parameters. - Tool index: https://how.box/llms.txt. - Explanations, formulas and FAQ: https://how.box/llms-full.txt. - Answer links: `https://how.box///?`; outside the default English locale, prefix the path with `/`. Use each tool's declared query parameters, not its JSON input field names. - Terms and usage limits: https://how.box/about/agents/. ## Quick start Send these bodies separately. Initialize: ```json {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"example-client","version":"1.0.0"}}} ``` `curl` example (replace the body with subsequent requests): ```sh curl -sS 'https://how.box/mcp' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json, text/event-stream' \ -H 'MCP-Protocol-Version: 2025-11-25' \ --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"example-client","version":"1.0.0"}}}' ``` Initialize response: ```json {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-11-25","capabilities":{"tools":{}},"serverInfo":{"name":"HowToolbox","version":"1.0.0"}}} ``` The response also contains `instructions`. Send `notifications/initialized` without an id; notifications return HTTP 202. No session id is needed. List the 5 MCP catalog tools and their schemas: ```json {"jsonrpc":"2.0","id":2,"method":"tools/list"} ``` Search: ```json {"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"catalog_search_utilities","arguments":{"query":"length","limit":1,"locale":"en"}}} ``` Describe the selected module tool (skip this when you have its schema from agent-tools.json): ```json {"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"catalog_describe_tool","arguments":{"name":"length_convert"}}} ``` Run it through the catalog (equivalent to the direct call in Fast path): ```json {"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"catalog_run_tool","arguments":{"name":"length_convert","input":{"value":1,"from_unit":"mi","to_unit":"km"}}}} ``` Abbreviated run response (additional result fields omitted): ```json {"jsonrpc":"2.0","id":5,"result":{"structuredContent":{"url":"https://how.box/conversion/length/?v=1&from=mi&to=km"},"content":[{"type":"text","text":"Answer: https://how.box/conversion/length/?v=1&from=mi&to=km"}]}} ``` Read computed fields from `result.structuredContent`; the text content supplies the answer link. List responses use `result.tools`, searches use `result.structuredContent.results`, and descriptions use `result.structuredContent.tool.inputSchema`. All MCP catalog calls accept optional `locale` (en, en-us, fi, de, es, fr, sv, it, et; default `en`) inside `arguments`, outside the module `input`. Results are locale-neutral; catalog text and answer paths follow that locale. Untranslated tools link to English. This guide stays English at the origin root. ## Rules - Give the person the returned `url` so they can inspect and change the inputs. Preserve returned cautions and source attribution. - Prefer MCP or WebMCP over scraping. MCP runs tools classified `pure` or `datasets`, including cached reference rates. Network checks, data packs and browser-only tools are unavailable over MCP: open their page URL and use the page or WebMCP. The site's `/api/*` is private. - Limits: 20 requests/second per replica, 8 concurrent calls, 60 requests/minute per client unit, 5000 ms per call, 65536 bytes per request body. Dataset actions also retain their published limits. HTTP 429 includes `Retry-After`; wait that many seconds before retrying. - JSON-RPC errors: -32700 `parse_error`; -32600 invalid request, protocol, media type or body size; -32601 `method_not_found`; -32602 invalid parameters or unknown tool; -32603 `timeout` or `internal_error`; -32000 `forbidden_origin`; -32029 `rate_limited`. Tool failures set `result.isError` and `structuredContent.error.code`, including `not_found`, `invalid_input`, `unavailable` and `retired`. Follow the returned page URL when execution is unavailable. - Inputs, results and client identifiers are never logged or retained. Fixed technical call metadata is logged; details are in the agent terms and privacy statement. ## Details - [Tool definitions](https://how.box/agent-tools.json) - [Deep-link parameters, explanations and sources](https://how.box/llms-full.txt) - [Agent terms](https://how.box/about/agents/) and [privacy](https://how.box/about/privacy/) - [MCP server card (draft convention)](https://how.box/.well-known/mcp/server-card.json); alias: https://how.box/.well-known/mcp.json. Cards return 404 when MCP is off.