Skip to content
Developer platform

Build agents that don't hallucinate

110+ deterministic file-processing tools. One bearer-token API key. Native to every AI client via MCP, drop-in compatible with the OpenAI SDK, and capped in USD instead of calls — so a leaked key can't run up a five-figure bill.

compress.sh
# Run any of 110+ tools, agent included
curl -X POST https://api.johnsessentials.com/api/v1/public/tools/pdf_compress/run \
  -H "Authorization: Bearer $JOHNS_API_KEY" \
  -F "file=@report.pdf" \
  -F "quality=medium"

The three moats

What a 2026 file-processing API has that the rest of the market doesn't.

MCP server

Every AI client speaks it.

Claude Desktop, Cursor, Windsurf, ChatGPT, Gemini, n8n, LangChain — one paste, every tool. The "USB-C of AI agents."

OpenAI-compatible

Change one line, ship.

Drop-in /v1/chat/completions endpoint. Set your OpenAI SDK base_url to api.johnsessentials.com/v1 and the rest of your code is unchanged.

Per-key USD caps

Bills you can predict.

Most APIs cap calls per hour. We cap dollars per month. A leaked agent key burns $5, not $5,000. Live cost streamed on every SSE frame.

Connect your AI

John's Essentials speaks the Model Context Protocol. Pick your client, paste the snippet, and all 110+ tools become native tool calls in your AI assistant.

MCP server https://api.johnsessentials.com/mcp probing
Where ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) %APPDATA%\Claude\claude_desktop_config.json (Windows)
JSON
{
  "mcpServers": {
    "johns-essentials": {
      "url": "https://api.johnsessentials.com/mcp/messages",
      "headers": {
        "Authorization": "Bearer je_live_sk_REPLACE_WITH_YOUR_KEY"
      }
    }
  }
}

Save the file and restart Claude Desktop. All 110+ tools appear in the tool picker immediately.

Learn about MCP

OpenAI-compatible — change one line

Any code using the OpenAI SDK works against our API. Set base_url and you're done.

openai_demo.py
# Drop-in replacement for the OpenAI SDK
from openai import OpenAI

client = OpenAI(
    base_url="https://api.johnsessentials.com/v1",
    api_key=os.environ["JOHNS_API_KEY"],
)
resp = client.chat.completions.create(
    model="johns-agent",
    messages=[{"role": "user", "content": "compress report.pdf below 1MB"}],
)
print(resp.choices[0].message.content)

Models accepted: johns-agent (default), johns-fast, johns-smart — plus any OpenAI / Anthropic model name (routes to our default agent for drop-in replacement). Streaming is OpenAI-exact: data: {...}\n\n ending in data: [DONE].

Live playground

Send a real request from the browser. No-auth endpoints work without a key.

Tip: requests run from your browser to the server — your API key never reaches our frontend, only the API. Use a separate key for browser experiments and rotate it after.

SDKs

Auto-generated from openapi.yaml. Pick your language, copy, ship.

typescript

npm install @johns-essentials/sdk

python

pip install johns-essentials

go

go get github.com/johns-essentials/sdk-go

ruby

gem install johns-essentials

SDK packages are pending publication to npm/PyPI/etc. The canonical OpenAPI spec is live today — generate a client for any language with openapi-typescript-codegen / openapi-python-client in the meantime.

Reference

Interactive docs, machine-readable specs, hand-curated recipes.

Resources & limits

Signing, error codes, and live platform health.

Start building

Starter includes a $50/month USD cap and Business $200/month. Free tier is $5/month — enough to get a real agent up and running before you commit.

Loading John’s Essentials