Touchstone Mcp

io.github.petrkrulis2022Published by GitHub account petrkrulis2022v0.1.0Updated Nov 2, 2026

Dated SIU, the benchmark price of AI inference work: one free tool, three paid via x402.

The publisher's own server: Touchstone

VerifiedStreamable HTTPWeb executableFinanceAI & ML

Overview

AI-generated overview

Remote MCP server for Dated SIU, a benchmark price of AI inference work, offering a free signed index print and paid quote, conversion and…

What you can do
  • Fetch the signed Dated SIU index print, optionally for a given version or date (free).
  • Get a quote with SIU price, exchange rate and index references for a task class and model.
  • Convert a model call's input and output token counts into SIU and a USD equivalent.
  • Verify an on-chain settlement by chain and transaction hash and get a signed attestation comparing quoted, paid and matched amounts.
When to use it
Useful when you want to price or compare AI inference costs against a published benchmark, convert token usage into SIU and USD, or check that an on-chain settlement matches a quote. The free index print alone is enough if you only need reference pricing.
Requirements
Runs as a remote Streamable HTTP endpoint; no local install or declared credentials. The three paid tools require USDC nanopayments through Circle's Gateway x402 flow, so a paying client or wallet is needed. Self-hosting requires Node.js, TOUCHSTONE_ATTESTATION_KEY and TOUCHSTONE_SELLER_ADDRESS, plus at least one published print.
Before you install
Three of the four tools cost money per call in USDC ($0.001 for get_quote and convert, $0.01 for verify_receipt), so automated use can spend funds. Self-hosting needs a signing key (TOUCHSTONE_ATTESTATION_KEY) and a payment-receiving address; the README warns against reusing the publisher key. verify_receipt reads public chain data for the given transaction hash.

Installation

In SourceWeft

  1. Open Touchstone Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.petrkrulis2022%2Ftouchstone-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "touchstone": {
      "type": "http",
      "url": "https://mcp.touchstoneassay.com/mcp"
    }
  }
}

README

@touchstone/mcp-server

The four-tool MCP server — build1-spec.md §9. get_index is free; get_quote, convert, and verify_receipt are paywalled through Circle's Gateway nanopayments (@circle-fin/x402-batching), settled in USDC.

ToolReturnsPrice
get_index(version?, date?)signed printfree
get_quote(task_class, model)SIU price, exchange rate, index refs$0.001
convert(model, input_tokens, output_tokens)SIU + USD equivalent$0.001
verify_receipt(chain, tx_hash)signed attestation: quoted vs paid vs matched$0.01

Transport is Streamable HTTP (POST /mcp), not stdio — x402 is an HTTP-status-code protocol, so a paywalled tool needs an HTTP layer to hang a 402 off. verify_receipt's on-chain read is live (src/settlement/on-chain.ts), reading the real deployed TouchstoneEscrow (data/deployments/base-sepolia.json) — StubSettlementReader (src/settlement/reader.ts) remains for tests and for running the server with no chain configured, the same pattern @touchstone/print's StubAttestationClient uses.

Running it locally (Node/Express)

bash
export TOUCHSTONE_ATTESTATION_KEY=0x...  # signs receipts — a dedicated key, never                                          # TOUCHSTONE_PUBLISHER_KEY, which signs prints and                                          # anchors on-chain and has no business on this                                          # public-facing serviceexport TOUCHSTONE_SELLER_ADDRESS=0x...   # receives USDC payments through Gatewaypnpm run start                       # builds, then listens on $PORT (default 3000)

Both env vars are required and there is no default — the server refuses to start rather than run unconfigured. data/prints/ needs at least one published print (pnpm --filter @touchstone/print run publish-print) before get_index/get_quote/convert have anything real to serve.

Deployed: Cloudflare Workers (mcp.touchstoneassay.com)

The live, public deployment is src/workers/ — a different transport (Hono + Cloudflare's McpAgent, Durable-Object-backed) and a different data-loading layer (KV-cached fetches against this repo's own public GitHub content, since Workers has no filesystem), but the exact same four tools and the exact same paywall logic (../paywall.ts, run through a minimal req/res shim — src/workers/node-shim.ts — rather than reimplemented). See that directory's files for the per-piece reasoning; wrangler.jsonc is the binding/route source of truth.

Security boundary: TOUCHSTONE_PUBLISHER_KEY is never present on this Worker — not as a secret, not as a var, not transitively. The only key is TOUCHSTONE_ATTESTATION_KEY, which signs receipts and nothing else (no anchoring, no transactions, no funds). Every other binding is non-sensitive: a chain name, a public contract address, a public RPC URL, and TOUCHSTONE_SELLER_ADDRESS (the existing escrow treasury address, reused as a payment-receiving address — no private key for it exists on this Worker at all).

Setup, once:

bash
npx wrangler loginnpx wrangler kv namespace create PRINTS_CACHE   # then paste the id into wrangler.jsoncnpx wrangler secret put TOUCHSTONE_ATTESTATION_KEY

Enable Analytics Engine once for the account (dashboard-only, no API/CLI path): https://dash.cloudflare.com/<account-id>/workers/analytics-engine — usage logging (src/workers/analytics.ts) degrades to a caught, logged no-op if this isn't done, so it never blocks the rest of the service, but the point of it (adoption evidence — call counts, distinct payer addresses) needs it enabled.

Deploy:

bash
pnpm run deploy   # wrangler deploy

Re-run npx wrangler types after changing any binding in wrangler.jsonc — worker-configuration.d.ts (committed) is generated from it and is what makes Env resolve for agents' McpAgent<Env, ...> generic constraint; a stale copy silently breaks this.env inside TouchstoneMcpAgent.

Listing this server

Official MCP registry (registry.modelcontextprotocol.io)

src/manifest/server.json is a schema-valid manifest (verified against static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json) with remotes: [{ type: "streamable-http", url }] — the URL in it is a placeholder (https://mcp.touchstone-assay.example/mcp, the RFC 2606-reserved .example domain) and must be replaced with the real deployment URL before publishing.

bash
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publishermcp-publisher login githubmcp-publisher publish

The manifest's name (io.github.petrkrulis2022/touchstone-mcp) is namespaced under GitHub-OAuth ownership — mcp-publisher login github must authenticate as an account matching that namespace, or publishing is rejected.

Smithery, Glama, PulseMCP, mcp.so

Each has its own submission flow (typically: connect the GitHub repo through their dashboard, or a registry-specific manifest file), and none were verified against live documentation while building this package — consult each registry's current docs directly before submitting rather than trusting a summary here that could be stale by the time you read it.

Source: packages/mcp-server/README.md at commit 6df4fa4

Tools

4

get_index

The signed Dated SIU print. Free — citation is the business.

Parametersdateversion

get_quote

SIU price, exchange rate and index refs for one task class and model.

Parametersmodelrequiredtask_classrequired

convert

Convert a model call's token counts into SIU and USD.

Parametersmodelrequiredinput_tokensrequiredoutput_tokensrequired

verify_receipt

Reads an on-chain settlement and returns a signed attestation.

Parameterschainrequiredquoterequiredtx_hashrequired

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Touchstone integrations