Agents
Same tools, every host
The MCP server, the Pi and OMP extensions and @agntn/curves/ai all call the same executors. Same arguments, same checks, same text back. This site runs them too, so every full response on it is exactly what a model reads.
| Tool | Does | Arguments |
|---|---|---|
curves_compute | Arithmetic on y² = x³ + ax + b over a prime you give | operation, a, b, p, point, other, scalar, order, limit |
curves_secp256k1_compute | Point math on secp256k1 with SEC1 hex | operation, point, other, scalar, x, compressed |
Install
pi install npm:@agntn/curves
omp install @agntn/curves
Any other MCP client takes the stdio server:
{
"mcpServers": {
"curves": { "command": "npx", "args": ["-y", "@agntn/curves", "mcp"] }
}
}
No Node at hand? claude mcp add --transport http curves https://curves.agntn.dev/mcp gets the same two tools from this site, next to its page tools. The arithmetic runs on a Cloudflare worker then, so the public points you send ride along.
What a model reads
One line of JSON, the same object the harness gets as details:
{"operation":"log","order":"19","scalar":"13"}
Why strings for numbers? JSON has no bigint, and a model would round a 77 digit integer without blinking. Integers go in as decimal or 0x hex and come out as decimal. The point at infinity comes out as "infinity".
points says how many there are and whether it stopped short:
{"operation":"points","total":"18","points":[{"x":"0","y":"6"},{"x":"0","y":"11"},{"x":"3","y":"1"}],"truncated":true}
What it refuses
- An argument the operation doesn't take.
countwith ascalaris an error, not a shrug. - A point off the curve, a p that isn't prime, a singular curve.
- Work past the limits in Orders and logs. The error names the limit.
- On secp256k1, a sum that lands on infinity. SEC1 has no form for it.
A blank optional string counts as missing. OMP fills every field, and a model loves an empty "".
The scalar is in the transcript
curves_secp256k1_compute multiplies a point by a scalar. Multiply G by a private key and you get its public key. Fine for a puzzle. But the key is now in the chat log, so pass public tweaks or keys you'd happily burn.