# Touchstone

Touchstone records agent activity in an externally anchored log and signs entries on your machine. Use it to share or verify recorded actions.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: Touchstone-CV
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Touchstone-CV/touchstone-mcp
- Updated: 2026-09-03
- HTML: https://affpapa.org/en/nevibecode/mcp/touchstone

## What it does

This local MCP server sends agent events to a Touchstone recorder. It canonicalizes each payload and signs it with an Ed25519 key on your machine; the key stays in the server process. The server uses stdio and needs Node 18+, a recorder ID and an API key. Recording also requires a subject and signing key.

Use `touchstone_disclose` to create a shareable disclosure link, or `touchstone_verify` to check a disclosure bundle. Those tools contact the remote service. Selective disclosure lets you reveal chosen fields while keeping others hidden. Disclosure and verification therefore depend on that service.

## Requirements
- Needs: Node.js (commands run via npx)
- Remote server: `https://touchstone.cv/mcp`
- Environment variables: `TOUCHSTONE_RECORDER`, `TOUCHSTONE_SUBJECT`, `TOUCHSTONE_API_KEY`, `TOUCHSTONE_SIGNING_KEY`, `TOUCHSTONE_KEY_FILE`, `TOUCHSTONE_BASE_URL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

1. **Platform CLI**
```bash
claude mcp add --env TOUCHSTONE_RECORDER=<TOUCHSTONE_RECORDER> --env TOUCHSTONE_SUBJECT=<TOUCHSTONE_SUBJECT> --env TOUCHSTONE_API_KEY=<TOUCHSTONE_API_KEY> --env TOUCHSTONE_SIGNING_KEY=<TOUCHSTONE_SIGNING_KEY> --env TOUCHSTONE_KEY_FILE=<TOUCHSTONE_KEY_FILE> --transport stdio touchstone -- npx -y @touchstone-cv/mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

2. **Platform CLI: remote server**
```bash
claude mcp add --transport http touchstone https://touchstone.cv/mcp
```

### Codex

1. **Platform CLI: remote server**
```bash
codex mcp add touchstone --url https://touchstone.cv/mcp
```

2. **Platform CLI**
```bash
codex mcp add touchstone --env TOUCHSTONE_RECORDER=<TOUCHSTONE_RECORDER> --env TOUCHSTONE_SUBJECT=<TOUCHSTONE_SUBJECT> --env TOUCHSTONE_API_KEY=<TOUCHSTONE_API_KEY> --env TOUCHSTONE_SIGNING_KEY=<TOUCHSTONE_SIGNING_KEY> --env TOUCHSTONE_KEY_FILE=<TOUCHSTONE_KEY_FILE> -- npx -y @touchstone-cv/mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "touchstone": {
            "url": "https://touchstone.cv/mcp"
        }
    }
}
```
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "touchstone": {
            "command": "npx",
            "args": [
                "-y",
                "@touchstone-cv/mcp"
            ],
            "env": {
                "TOUCHSTONE_RECORDER": "<TOUCHSTONE_RECORDER>",
                "TOUCHSTONE_SUBJECT": "<TOUCHSTONE_SUBJECT>",
                "TOUCHSTONE_API_KEY": "<TOUCHSTONE_API_KEY>",
                "TOUCHSTONE_SIGNING_KEY": "<TOUCHSTONE_SIGNING_KEY>",
                "TOUCHSTONE_KEY_FILE": "<TOUCHSTONE_KEY_FILE>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "touchstone": {
            "type": "http",
            "url": "https://touchstone.cv/mcp"
        }
    }
}
```
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "touchstone": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@touchstone-cv/mcp"
            ],
            "env": {
                "TOUCHSTONE_RECORDER": "<TOUCHSTONE_RECORDER>",
                "TOUCHSTONE_SUBJECT": "<TOUCHSTONE_SUBJECT>",
                "TOUCHSTONE_API_KEY": "<TOUCHSTONE_API_KEY>",
                "TOUCHSTONE_SIGNING_KEY": "<TOUCHSTONE_SIGNING_KEY>",
                "TOUCHSTONE_KEY_FILE": "<TOUCHSTONE_KEY_FILE>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Gemini CLI

1. **Platform CLI: remote server**
```bash
gemini mcp add -t http touchstone https://touchstone.cv/mcp
```

2. **Platform CLI**
```bash
gemini mcp add -e TOUCHSTONE_RECORDER=<TOUCHSTONE_RECORDER> -e TOUCHSTONE_SUBJECT=<TOUCHSTONE_SUBJECT> -e TOUCHSTONE_API_KEY=<TOUCHSTONE_API_KEY> -e TOUCHSTONE_SIGNING_KEY=<TOUCHSTONE_SIGNING_KEY> -e TOUCHSTONE_KEY_FILE=<TOUCHSTONE_KEY_FILE> touchstone npx -y @touchstone-cv/mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

## When to use it
- write agent actions to a signed audit log
- create a shareable link for a recorded event
- check a disclosure bundle
- reveal selected event fields with Merkle proofs

## Example prompts
- Record this agent action with `touchstone_record`.
- Create a disclosure link for sequence `n` using `touchstone_disclose`.
- Check this disclosure bundle with `touchstone_verify`.

## Similar
- [Fabric Verify](https://affpapa.org/en/nevibecode/mcp/fabric-verify.md) — MCP server
- [signet](https://affpapa.org/en/nevibecode/plugins/signet.md) — plugin · ★ 40
- [follow-the-crypto](https://affpapa.org/en/nevibecode/skills/follow-the-crypto.md) — skill · 1800 installs
- [januscope](https://affpapa.org/en/nevibecode/mcp/januscope.md) — MCP server · ★ 32
- [SchemaBrain](https://affpapa.org/en/nevibecode/mcp/schemabrain.md) — MCP server · ★ 12
- [Covenant Guard](https://affpapa.org/en/nevibecode/mcp/covenant-guard.md) — MCP server · ★ 8

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
