ComputeFirst documentation

ComputeFirst is a free service of 350 deterministic tools that AI agents call instead of spending tokens on code: CSV and JSON work, text diffs, UTC/ISO 8601 dates, exact math, graphs and more. Free. No sign-up needed. Your agent finds a tool, runs it and gets an exact, repeatable result instead of writing and debugging code for it. We build tools so your tokens go to your mission.

Connect your AI

Add the MCP URL to your assistant. No key and no Authorization header are needed. A key is optional: sign_in with an email, or a passkey profile, gives one for saved tools, history, personal savings and its own daily allowance; send it as Authorization: Bearer KEY.

Claude Code

claude mcp add --transport http computefirst https://computefirst.net/mcp

Claude (claude.ai and Claude Desktop)

Settings → Connectors → Add custom connector. Name: ComputeFirst. URL: https://computefirst.net/mcp.

Codex

Add to ~/.codex/config.toml:

[mcp_servers.computefirst]
url = "https://computefirst.net/mcp"

Cursor

Add to ~/.cursor/mcp.json, or .cursor/mcp.json in a project:

{
  "mcpServers": {
    "computefirst": {
      "url": "https://computefirst.net/mcp"
    }
  }
}

Gemini CLI

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "computefirst": {
      "httpUrl": "https://computefirst.net/mcp"
    }
  }
}

VS Code

Add to .vscode/mcp.json:

{
  "servers": {
    "computefirst": {
      "type": "http",
      "url": "https://computefirst.net/mcp"
    }
  }
}

Other MCP clients

Use Streamable HTTP with the URL above and send Accept: application/json, text/event-stream.

MCP tools

Give us a little data, get more value

Everything above works without any data from you. Each piece your agent chooses to share unlocks something concrete:

Your agent sharesIt gets
NothingEvery tool, free, within the daily limits below
Its model and its own estimate of the tokens a call saved: report_savingsThat estimate's dollar value at the model's list price, and, with a key, running totals
An email: sign_inA key for 90 days with saved tools, history, personal totals and its own daily allowance
A tool it could not find: request_toolWe build it; with an email and consent, one email when it ships

ComputeFirst does not measure the tokens your agent spends or saves: every dollar figure is your agent's own token estimate at list price. A model on execute or execute_batch is only recorded with the call (unusable values are ignored). The first successful execute or execute_batch of each UTC day carries a one-line invite field that says this; batch items never do.

Model and savings reports

Call report_savings (or POST /v1/savings, no key needed) with your model id and, if you can, your own estimate of the tokens the work would otherwise have cost:

{"model":"claude-opus-5-5","estimated_tokens_saved":{"input":1200,"output":400}}

With estimated_tokens_saved, the answer returns that estimate's dollar value at the model's public list price (a dated table, currently 2026-09-28, with Anthropic's published prices), labeled "estimated (client-reported)". Without it, or for a model without a dated price, the value stays null, never guessed. A measured whole-task comparison (task_id, baseline_id, baseline, actual, whole_task: true and the call's execution_ref) is also accepted and kept separate. Over HTTP, the header X-ComputeFirst-Model names your model on any call.

Sign in with an email

sign_in (MCP) or POST /v1/accounts/email with {"email": "...", "consent": true} returns a new agent key once; add "newsletter": true to also get new-tool emails. Only sign in with the person's agreement. The key adds saved_tools, activity, personal totals in savings, request status in profile and a higher daily limit.

The email is not verified yet, and nothing is sent to it. Each sign-in therefore creates its own account and key: nothing is merged with other accounts that use the same email, and no call can reach another account's data. Keys last 90 days. Saved tools and history belong to that key's account: a new sign-in (after expiry, or with a lost key) starts a new, empty account until email verification exists.

Use it over HTTP

No key needed. Search, read the contract, then execute:

curl "https://computefirst.net/v1/tools/search?q=convert+csv+to+json&limit=3"
curl https://computefirst.net/v1/tools/csv-to-json/versions/1.0.0
curl -X POST https://computefirst.net/v1/tools/csv-to-json/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"csv":"name,city\nAda,London\n"}'

The response is {"result":[{"name":"Ada","city":"London"}]}. Every tool page shows its own example. /openapi.json is the full machine-readable spec with every tool's schema, several hundred KB: agents should search and read one contract instead.

Batch and compose

Run up to 20 tools in one request with execute_batch (MCP) or POST /v1/execute-batch. A later operation can fill an input key from an earlier result with bindings (a JSON Pointer), and include_result: false leaves an intermediate result out of the response:

{"operations": [
  {"id":"csv-to-json","version":"1.0.0","input":{"csv":"team,name\nb,Ada\na,Zoe\n"},"include_result":false},
  {"id":"json-array-sort-objects","version":"1.0.0","input":{"keys":["team","name"]},"bindings":[{"key":"items","from":0,"path":""}]}
]}

Each operation reports its own outcome. Rebuild a failed input before retrying; successful operations are never replayed automatically.

Command-line client

A standalone Node.js 22.18+ client is available at /clients/cli/. Download /clients/cli/1.0.0/cli.mjs, verify its SHA-256 from /clients/cli/latest.json, and pass large local files with --input-file. No key is needed; the COMPUTEFIRST_API_TOKEN environment variable optionally sends one:

node cli.mjs search "compare two csv files" --base-url https://computefirst.net
node cli.mjs run csv-to-json 1.0.0 --input input.json --base-url https://computefirst.net

Limits

Missing a tool?

Call request_tool with a short description of the task (and an example input and output if you have one), or POST /v1/tool-requests. You may add an email, with consent, for one email when the tool ships; nothing else is sent to it. Requests decide what gets built next; email addresses and recognisable secrets are removed from the text before it is stored.

Newsletter

Get new-tool announcements by email: call subscribe with your email and consent: true, or POST /v1/subscribe. Nothing is sent until the address is confirmed: before the first newsletter we send one confirmation email. Unconfirmed addresses are deleted after 90 days, and an address that unsubscribed is never added again by anyone else. You can unsubscribe at any time.

Savings

Every execution returns a receipt with tokens: null and status: "unmeasured": a successful call is not proof of a saving. Estimates come only from your own model reports (above), and measured comparisons stay separate from them. With a key, savings shows your totals of both.

Privacy, terms and contact

What is recorded, and for how long, is described in the privacy policy. Do not send secrets or sensitive personal data. Use of the service is subject to the terms. Contact: idan.roth.ai@gmail.com.