Skip to main content
UniversalBench is a single endpoint, three-tool API. The endpoint is your personal MCP URL. The three tools are ub_read for read-only queries, ub_write for code execution and state-modifying operations, and ub_ai for AI and live web search. Each tool accepts multiple optional input fields. Mix and match fields per call within each tool.

Base URL

Every customer gets a personal URL with their identity baked in:
Copy yours from the dashboard at universalbench.dev. Treat it like a password.

Protocol

UniversalBench speaks the standard MCP protocol over HTTP using the Streamable HTTP transport. Most users connect via an MCP client (Claude Desktop, Cursor, Claude Code, custom agents on the MCP SDKs) and never see the wire format. If you want to call the API directly without an MCP SDK, post JSON RPC envelopes to your URL:

Discovery

To list the three available tools and their full schemas:
The response returns ub_read, ub_write, and ub_ai with their full input schemas. The schemas are dynamic and reflect the live capability set, so new capabilities appear in your AI’s tool descriptions automatically when we ship them. See Tools for current field documentation.

Errors

Errors follow standard JSON RPC error semantics:
CodeMeaning
-32001Authentication failed (URL token invalid or revoked)
-32002Monthly free tier exhausted and wallet is empty
-32601Tool name not recognized (accepted names are ub_read, ub_write, and ub_ai)
-32700Request body is not valid JSON
Tool execution failures (Python exceptions, bash non zero exit codes, network errors) are returned as successful JSON RPC responses with the error captured in the content field. This lets your AI see and reason about the error rather than failing the entire call.