Deterministic, verifiable text/code/measurement utilities for AI agents — citations, diffs, proofreading, readability, syntax checking and unit conversion, each reproducing a named authority byte-for-byte. Trust by re-execution, not reputation.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file touchstone_compute-0.1.0.tar.gz.
File metadata
- Download URL: touchstone_compute-0.1.0.tar.gz
- Upload date:
- Size: 34.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
464be9761fc469e5682ad1b867d8689492c6d986fefa673df4816fb546b37a31
|
|
| MD5 |
5cbf8c98f53ae44a31fee7ed2b90008b
|
|
| BLAKE2b-256 |
990a9f8196177867321be106f095e92203a20dafa3416522713cf11cd2eda595
|
File details
Details for the file touchstone_compute-0.1.0-py3-none-any.whl.
File metadata
- Download URL: touchstone_compute-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0bdd46dac0575afc1dd0967917934edd43f569aa0cc1958c2da4e10c22daeab
|
|
| MD5 |
325ee6053b388cb6243b2185e3d772e7
|
|
| BLAKE2b-256 |
4a8a1730965efb7c6e7f6b7a6da73e55679680b2e0fa037258a0105e7dced4fb
|