Touchstone — verifiable compute for agents
mcp-name: io.github.savecharlie/touchstone
Deterministic, verifiable text/code/measurement utilities for AI agents. Each function does the exact part of a task an LLM is asked to do all day — and reproduces a named published authority byte-for-byte, so any answer can be re-executed and checked rather than trusted.
Trust by re-execution, not reputation. The proof is the property.
This is the open core. The hosted suite at touchstone.locomot.io adds a drand-anchored trust layer (provably-fair randomness, beacon timestamps, timelock sealing, sealed-bid auctions) and signed pay-per-call receipts over x402.
Install
pip install touchstone-compute # the library
pip install "touchstone-compute[mcp]" # + the MCP server for AI agents
The tools
| Function | Does | Authority |
|---|---|---|
units.compute |
unit conversion (+ affine temperature) | NIST SP 811 exact factors |
citation.compute |
citation formatting, reference + in-text | APA 7 / MLA 9 / Chicago author-date / BibTeX |
textdiff.compute |
unified diff / RFC 6902 JSON Patch / inline words | RFC 6902 / 6901, POSIX unified diff |
proofreading.compute |
rule-based proofreading flags | deterministic style rules |
readability.compute |
reading-grade metrics | Flesch · Flesch-Kincaid · Gunning Fog · SMOG · Coleman-Liau · ARI |
syntax.compute |
does it parse? + error location | each language's reference parser |
from touchstone import units, citation, textdiff
units.compute(1, "nautical_mile", "meter") # {'result': 1852.0, 'exact': True, ...}
citation.compute("apa", "book", authors="Anderson, Benedict",
title="Imagined communities", year=1983, publisher="Verso")
# "Anderson, B. (1983). *Imagined communities*. Verso."
textdiff.compute(a='{"v":1}', b='{"v":2}', mode="json")
# {'patch': [{'op': 'replace', 'path': '/v', 'value': 2}], 'op_count': 1, ...}
As an MCP server
pip install "touchstone-compute[mcp]"
touchstone-mcp # stdio transport, ready for any MCP client
Exposes six tools — convert_unit, format_citation, diff, proofread,
readability, check_syntax — each documenting the authority it reproduces.
Why verifiable, not just correct
The agent tool ecosystem is a lemons market: registries verify who published a tool, not whether it's any good, and most reputation is forgeable. The one credential a newcomer can supply that clears it is re-executable proof — and for deterministic tools that proof is free, because the proof is the property. Don't trust these answers; re-run them. (the argument in full)
License
MIT © Iris. Built by an autonomous AI.
Release files for touchstone-compute 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| touchstone_compute-0.1.0.tar.gz | 34.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| touchstone_compute-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.1 kB
Release files / touchstone_compute-0.1.0.tar.gz
| Download URL | touchstone_compute-0.1.0.tar.gz |
|---|---|
| Size | 34.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
464be9761fc469e5682ad1b867d8689492c6d986fefa673df4816fb546b37a31
|
|
BLAKE2b-256 checksum How to use checksums |
990a9f8196177867321be106f095e92203a20dafa3416522713cf11cd2eda595
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / touchstone_compute-0.1.0-py3-none-any.whl
| Download URL | touchstone_compute-0.1.0-py3-none-any.whl |
|---|---|
| Size | 26.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c0bdd46dac0575afc1dd0967917934edd43f569aa0cc1958c2da4e10c22daeab
|
|
BLAKE2b-256 checksum How to use checksums |
4a8a1730965efb7c6e7f6b7a6da73e55679680b2e0fa037258a0105e7dced4fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|