Skip to content

Releases: paranoiddotred/paranoid-mcp

v1.4.1

Choose a tag to compare

@Paranoidred Paranoidred released this 02 Nov 11:35

Tor or a relay, measured

bench/ times a new conversation over the connector's relay and over a fresh Tor circuit, the way paranoid mode gives each conversation its own. Everything else is the same: the seal, the proof, the gateway chip and the model. Median of ten runs: the first word of the answer arrived after 8.8 seconds through the relay and after 17.6 seconds over Tor. The script and every run are in the folder.

Fix: a membership shared with a URL

A membership that a paranoid.red/mcp URL also spends from showed 0 questions left in the connector, because the URL's spends at the top were read as ours. The connector now finds where the URL's spending ends and keeps 16 questions clear of it, as the docs describe. Nothing was ever spent twice: the connector refused before making a proof.

Install

  • Claude Desktop: download paranoid.mcpb below and double-click it.
  • Claude Code: claude mcp add paranoid -- npx -y github:paranoiddotred/paranoid-mcp#v1.4.1 mcp

SHA-256

  • connect.mjs: fa03efa74a72b9fe9f3bc17307e0609ffed530d0922c13cbc9080fb74e60535b
  • paranoid.mcpb: a0848a435b4008b0efdf21c67c2a30aee356e67459ff6038061b5202e0808636

v1.4.0

Choose a tag to compare

@Paranoidred Paranoidred released this 02 Nov 00:23

Sealed to the gateway's chip

Before the first question, and every ten minutes after, the connector now checks the gateway the way the paranoid.red app does:

  • Intel's signature on the chip's TDX quote, verified with @phala/dcap-qvl-web 0.3.3, pinned by hash like the prover
  • the quote binds the sealing key to a nonce made on your computer, and the chip is not in debug mode
  • the chip's build is on the list PARANOID's 2-of-3 multisig keeps on Solana in p2UnUp...Sfw8, read from a public Solana RPC that PARANOID does not run

Every question is then sealed to that chip with Oblivious HTTP and carried by an independent relay. Nothing between your computer and the chip, paranoid.red included, can read the question or the answer, and the gateway sees the relay's address instead of yours. If any check fails, nothing is sent. test/gate-live.mjs plays a lying site, RPC and relay against the live gateway: 15 of 15 refused or thrown away.

From the terminal

node connect.mjs check
node connect.mjs ask "your question"
git diff | node connect.mjs ask "Review this change"
node connect.mjs chat

Install

  • Claude Desktop: download paranoid.mcpb below and double-click it.
  • Claude Code: claude mcp add paranoid -- npx -y github:paranoiddotred/paranoid-mcp#v1.4.0 mcp

SHA-256

  • connect.mjs: db6c0615fce42bf1833af42e675ed42d678d8c6cf72498193fe0d07d8cf4ca52, the same bytes paranoid.red serves
  • paranoid.mcpb: 67d9963b9d5a87629f66da71caecc706d87f8d23deff25eac2e08c09f49a0aca

v1.3.0

Choose a tag to compare

@Paranoidred Paranoidred released this 30 Oct 02:42

Install in one step

  • Claude Desktop: download paranoid.mcpb below and double-click it, or drag it into the Claude window. Paste the connector code from the Keys tab on paranoid.red into its settings, or choose a Solana wallet file holding USDC so the buy tool can get questions.
  • Cursor: the Add to Cursor button in the README.
  • Claude Code: claude mcp add paranoid -- npx -y github:paranoiddotred/paranoid-mcp#v1.3.0 mcp

connect.mjs itself is unchanged from v1.2.2 and still reports version 1.2.2. The new bin.mjs starts it and, when PARANOID_CODE is set, first saves that membership the way pasting the code into node connect.mjs does.

SHA-256

  • connect.mjs: 8f90ee28b74883a46dcf928efaecfcd452591753851283210edf2788cbdd73c1, the same bytes paranoid.red serves
  • paranoid.mcpb: 5030e5b3c7690009b71600692aecae724947318646bb2ac4e6b445c1aaac1c26

The extension is a zip, so you can check the connector inside it too:

unzip -p paranoid.mcpb server/connect.mjs | shasum -a 256

v1.2.2

Choose a tag to compare

@Paranoidred Paranoidred released this 30 Oct 01:07

connect.mjs, the PARANOID connector and MCP server. It is one file with no packages to install and runs on
Node.js 20.18, 22.8 or newer.

SHA-256: 8f90ee28b74883a46dcf928efaecfcd452591753851283210edf2788cbdd73c1

mkdir -p ~/paranoid && curl -o ~/paranoid/connect.mjs https://paranoid.red/connect.mjs \
  && echo "8f90ee28b74883a46dcf928efaecfcd452591753851283210edf2788cbdd73c1  $HOME/paranoid/connect.mjs" | shasum -a 256 -c

Or build it yourself (CI does the same on every push): bash scripts/fetch-zk.sh && node build.mjs && git diff --exit-code connect.mjs

What changed

  • buy reads the price it agrees to from Solana itself, through PARANOID_RPC or a public Solana node, never
    through paranoid.red, and checks that the account belongs to the PARANOID program. A quote it cannot read gets
    nothing signed.
  • Every request goes out on a connection of its own, so two requests never share a socket.
  • Several unanswered keys can wait for a retry at once, so concurrent requests that hit a server error all keep
    their question numbers.
  • CI now checks that, with HTTPS_PROXY and NODE_USE_ENV_PROXY=1, the requests really go through the proxy.
  • The circuit files are fetched from a fixed commit of paranoiddotred/paranoid, and the install line checks the
    download before it runs.

v1.2.1

Choose a tag to compare

@Paranoidred Paranoidred released this 30 Oct 00:52

connect.mjs, the PARANOID connector and MCP server. It is one file with no packages to install and runs on
Node.js 20.18, 22.8 or newer.

SHA-256: ed49f60f77e3a6561b31826b1712489a83924e4666fd94c3c2fefa35365581e3

paranoid.red serves the same bytes. Check the copy you have before you run it:

echo "ed49f60f77e3a6561b31826b1712489a83924e4666fd94c3c2fefa35365581e3  $HOME/paranoid/connect.mjs" | shasum -a 256 -c

Or build it yourself from src/ with the prover and circuit files from where they are published, which CI also
does on every push:

bash scripts/fetch-zk.sh && node build.mjs && git diff --exit-code connect.mjs

What changed

  • The source and the build script are in this repository now, and CI rebuilds connect.mjs from snarkjs 0.7.6
    on npm and the circuit in paranoiddotred/paranoid, failing if a single byte differs.
  • If a proxy is set but this Node.js would send requests around it, the connector refuses to start instead of
    leaving from your own address.
  • A key the gateway never answered keeps its question numbers for the next request, and the gateway itself now
    spends questions only once the model starts answering.
  • Pasting a different connector code keeps the membership that was there in a file beside the new one, and an
    old membership file is removed after a purchase only once it has no questions left.
  • Counting spent questions now starts from where this connector left off instead of from zero.

v1.2.0

Choose a tag to compare

@Paranoidred Paranoidred released this 30 Oct 00:30

connect.mjs, the PARANOID connector and MCP server. It is one file with no packages to install and runs on
Node.js 20.18, 22.8 or newer.

SHA-256: 3484c2951a973aabdb25009f1ac6109b76c09074f36c16de2588d534bc7225f4

paranoid.red serves the same bytes. Check the copy you have before you run it:

curl -s https://paranoid.red/connect.mjs | shasum -a 256
shasum -a 256 ~/paranoid/connect.mjs

What changed

  • The prover now runs in a separate JavaScript realm that holds no Node.js object, so it has no network, files
    or process to reach. The secret goes in as numbers and only the proof comes out.
  • buy signs only a USDC payment to the PARANOID gateway wallet for no more than the price the program on
    chain sets plus the 0.30 USDC setup fee. Any other quote gets nothing signed.
  • When the gateway refuses a key because the member list changed, the same question numbers are proven again
    with the same random value, so the refusal costs no questions. A proof that fails before anything is sent
    gives its numbers back.
  • SECURITY.md now says exactly what the proofs hide and what stays visible (your network address, which wallet
    bought), with how to route the connector through Tor or a VPN.

v1.1.0

Choose a tag to compare

@Paranoidred Paranoidred released this 30 Oct 00:13

connect.mjs, the PARANOID connector and MCP server. It is one file with no dependencies and runs on
Node.js 20 or newer.

SHA-256: 0446f886d6f77cb2f253b6aa16b28d297e61b88c493726a3e41ea5615427c631

paranoid.red serves the same bytes. Check the copy you have before you run it:

curl -s https://paranoid.red/connect.mjs | shasum -a 256
shasum -a 256 ~/paranoid/connect.mjs

What it does

  • node connect.mjs keeps any OpenAI-compatible app connected to PARANOID through a local endpoint, with a
    fresh anonymous key for every request. The local port answers programs on your computer and refuses web pages.
  • node connect.mjs mcp gives Claude Code, Cursor and other MCP clients the tools ask, models, balance and buy.
  • PARANOID_PAYER=wallet.json node connect.mjs buy 500 buys questions with x402 from that wallet.