Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Witness layer for agents: signed receipts binding a fingerprint to a witnessed time. $0.001.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
EVM_PRIVATE_KEY「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://767-2676.com/mcpClaude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"popcorn": {
"command": "npx",
"args": [
"-y",
"@violetclaire/popcorn-mcp"
],
"env": {
"EVM_PRIVATE_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http popcorn https://767-2676.com/mcpclaude mcp add popcorn --env EVM_PRIVATE_KEY=your-value -- npx -y @violetclaire/popcorn-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"popcorn": {
"url": "https://767-2676.com/mcp"
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"popcorn": {
"command": "npx",
"args": [
"-y",
"@violetclaire/popcorn-mcp"
],
"env": {
"EVM_PRIVATE_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"popcorn": {
"type": "http",
"url": "https://767-2676.com/mcp"
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"popcorn": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@violetclaire/popcorn-mcp"
],
"env": {
"EVM_PRIVATE_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://767-2676.com/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ツールの名前と説明は、サーバーが2026年11月7日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。
popcorn_sampleCheck the public October 14 TAIN 2.0 receipt and a changed-digest control. No inputs, wallet, payment, or outbound request. Historical evidence, not a fresh clock. Bundled sample keys do not independently establish issuer identity.
popcorn_catalogRead the live catalog, offer, and published verification keys. Free; no payment.
popcorn_hashHash public bytes on this remote server. Submitted text reaches the server: hash private work locally instead. Free; no onward request or payment.
popcorn_verifyVerify a time or witness receipt using caller-trusted JWKS and expected values. Digest-only for witness payloads. No outbound request or payment. Caller keys do not establish issuer identity; a signature grants no authority.
popcorn_verify_v2Verify TAIN 2.0 evidence against keys fetched from the fixed POPCORN issuer URL. Caller jwks is replaced with published keys, including predecessors. Send a digest, never private work. Free; does not grant authority, establish current time, or verify settlement on chain.
popcorn_timeRequest signed current-time evidence. Defaults to a free unpaid 402 challenge. A fresh receipt costs exactly $0.001 USDC on Base. Payment requires owner approval, approve_payment:true, and a caller-signed payment_signature. No server wallet or private key. No automatic retry. Ver
popcorn_witnessWitness a SHA-256 digest and fresh caller nonce at a time. Defaults to a free unpaid 402 challenge. One fresh receipt costs exactly $0.001 USDC on Base; requires owner approval, approve_payment:true, and caller-signed payment_signature. Keep work and wallet keys local. No automat
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント violetclaire で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
244ミリ秒で応答(HTTP 200)
サインイン不要
7件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:EVM_PRIVATE_KEY
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.6)がレジストリに届いたのは12 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Thalovant MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Connect MCP clients to Thalovant control-plane and hub runtime APIs over stdio or Streamable HTTP.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
For RFC 3161, FreeTSA, OpenTimestamps, a trusted timestamp, proof of existence, authorization expiry, a signed execution receipt, or independent verification, start with Proving an action happened before an authorization expired.
Read-only time and task evidence from Briarwood AI, usable across independent agents. POPCORN supplies signed time and digest checkpoints at https://767-2676.com.
At the hosted HTTP MCP endpoint, call popcorn_sample with {}. This free check verifies a real historical TAIN 2.0 receipt dated October 14, 2026: genuine.accepted: true, changed_digest_control.accepted: false, and passed: true. It requires no wallet and returns payment_sent: false, current_time_established: false, and authorization_granted: false. It does not independently establish issuer-key trust or check on-chain settlement.
The bundled npm sample below is a separate offline evaluation of historical pre-TAIN receipts.
Save sample.mjs, read it, then run node sample.mjs with Node.js 20 or newer. This standalone sample includes an exact eight-line schedule with who, its SHA-256 digest, and a real signed receipt. It runs offline and rejects a one-byte change to who.
The plain-text contract and full packet can be retained locally. The receipt is historical evidence. Fetch new time for a new decision.
Run the current source from this public repository:
git clone https://github.com/violetclaire/popcorn-temporal-anchor.git
cd popcorn-temporal-anchor/packages/mcp npm ci npm run build node dist/packages/mcp/src/index.js --sample
Run this release's bundled offline sample with:
npx -y @violetclaire/popcorn-mcp@0.1.5 --sample
The evaluation checks the eight-line task schedule and two legacy, historically settled receipts with the maintained verifier. It returns valid signatures, STOP for a checkpoint after its task window, TIME_CHECK_PASSED for one inside its window, and a rejected one-byte change for each. Every result retains authorization_granted: false. The sample needs no account, wallet, or original task data. npm may download the package; the verification itself runs entirely offline.
With the npm package or this source checkout running as a local stdio MCP server, call popcorn_sample with {} for this bundled historical result. The hosted HTTP MCP endpoint runs the separate TAIN 2.0 sample described above. The bundled sample's public source links let another developer repeat the check. Its historical keys are for sample reproduction. A real task requires independently trusted issuer keys; an old receipt is not a fresh clock reading. This bundled offline sample tests historical pre-TAIN receipts only. Passing it does not test the currently deployed TAIN 2.0 service or establish integration readiness.
| Need | Tool | What stays local |
|---|---|---|
| A fresh, signed time reference for a deadline or expiry | popcorn_time | The task and decision |
| Evidence of one exact task version at a stated time | popcorn_hash, then popcorn_witness | Raw task bytes; only the digest, nonce, and optional predecessor digest go to the witness |
| Check evidence received from another agent | popcorn_verify | The receipt, trusted keys, payload, and verification |
| Check a TAIN 2.0 witness receipt | popcorn_verify_v2 or local CLI verify-v2 | Exact expected bytes and independently trusted keys |
These uses apply across agent providers and industries. Share a receipt and the relevant exact bytes through your existing authorized handoff, then let the receiving system verify them. No account at the originating agent provider is required for offline verification. Each participant decides what to do.
This source checkout exposes five free tools and two x402 tools. The x402 tools are dry run by default. They cannot spend unless the individual tool call contains approve_payment: true. A wallet key is read only from EVM_PRIVATE_KEY in the server process environment. It is never accepted as a tool parameter.
This is a clock and a seal. It does not refund, authorize, or hold funds.
Install and run the published package with:
npx -y @violetclaire/popcorn-mcp
Node.js 20 or newer is required.
The supported @violetclaire/popcorn-mcp/core export exposes the same local hashing, offline verification, and paid client functions used by the stdio server:
import {
popcornHash, popcornVerifyWitnessChain, popcornWitness, } from "@violetclaire/popcorn-mcp/core";
popcornVerifyWitnessChain accepts receipts in chronological order, starting with a receipt whose previous_attestation_digest is null. It verifies each receipt and signature once, checks each link against the prior receipt's exact signed-payload bytes, and returns the verified entries plus the head digest. It is free, local, and sends no network request.
popcorn_sampleInput: {}. The result depends on which server you connect to:
popcorn_verify_v2Verifies a POPCORN-WITNESS/2.0 signed envelope, required TAIN fields, exact expected payload digest and nonce, and the signed time interval. Both this local MCP tool and popcorn-mcp verify-v2 call the same verifier. The fixed positive and negative vectors under verify/test-vectors/interface-parity-v2/ run through both interfaces in npm run check and fail the check on any result or reason mismatch.
Provide the full response, expected SHA-256 payload digest as canonical unpadded base64url, the expected nonce, and issuer keys obtained independently of the receipt. The local CLI and stdio MCP also accept exact payload bytes as expected_payload_base64url instead of a digest; the remote HTTP MCP accepts only a digest, including for predecessor receipts, so private payload bytes need not leave the caller. Supply previous_receipt with its own response, JWKS, and verification inputs for a chained receipt, up to eight links. Caller-supplied keys alone do not establish issuer identity; this verifier does not prove on-chain settlement or grant authority.
popcorn_catalogFetches the live service catalog, published JWKS, and public schemas. It is free and sends no payment.
Input:
{}
popcorn_hashHashes exact bytes locally and returns the SHA-256 digest plus byte length. It is free, local, and sends no network request.
Provide exactly one input form:
{ "payload_text": "exact UTF-8 text" }
{ "payload_base64url": "ZXhhY3QgYnl0ZXM" }
popcorn_verifyVerifies a POPCORN temporal or witness receipt locally against caller-supplied keys and expected values. It is free, local, and sends no payment.
For a witness receipt:
{
"receipt_type": "witness", "response": { "witness_receipt": {}, "witness_attestation": {}, "payment_status": "settled" }, "jwks": { "keys": [] }, "verification": { "expected_nonce": "<43-character-base64url>", "expected_payload_base64url": " ", "expected_node_id": "767-2676.com", "max_clock_accuracy_radius_ms": 10000 } }
Provide exactly one of expected_payload_text, expected_payload_base64url, or expected_payload_digest.
When previous_attestation_digest is non-null, add this recursively under verification:
{
"previous_receipt": { "response": { "witness_receipt": {}, "witness_attestation": {}, "payment_status": "settled" }, "jwks": { "keys": [] }, "verification": { "expected_nonce": " ", "expected_payload_digest": " " } } }
The verifier first verifies the predecessor. It then hashes the exact bytes obtained by base64url-decoding the predecessor compact JWS payload segment and compares that digest with previous_attestation_digest.
For a temporal receipt, verification.observation carries the monotonic timer values required by the existing offline verifier. An optional verification.policy can carry execution_window_utc.
popcorn_timeRequests GET /v1/time. The default call is a free dry run:
{
"freshness_ms": 30000, "approve_payment": false }
It returns the HTTP 402 terms and the exact request that would be paid. To authorize one payment, the caller must set approve_payment to true in that specific call.
popcorn_witnessRequests POST /v2/receipt. POST /v1/receipt remains available to existing integrations. The default call is a free dry run:
{
"digest": "<43-character-sha256-base64url>", "nonce": "<43-character-random-base64url>", "previous_attestation_digest": null, "approve_payment": false }
The optional predecessor digest is SHA-256 over the exact decoded signed payload bytes of the predecessor compact JWS. It is not a digest of the full compact JWS string.
Both paid tools lock payment to exactly $0.001 USDC on Base, the published USDC contract, and POPCORN's published payTo. A changed challenge fails closed. A successful paid result includes the settlement transaction hash and server_processing_duration_ms.
Paid calls require:
EVM_PRIVATE_KEY=0x<dedicated-32-byte-Base-payer-key>
Use a dedicated payer with a small balance. Do not commit this value. The free tools and all dry runs work without it.
Add this server to the mcpServers object in Claude Desktop's configuration:
{
"mcpServers": { "popcorn": { "command": "npx", "args": ["-y", "@violetclaire/popcorn-mcp"] } } }
That configuration supports all free tools and dry runs. For paid calls, launch Claude Desktop from an environment containing EVM_PRIVATE_KEY, or add an env object to its private local configuration. Never paste the key into a tool call or chat.
claude mcp add --transport stdio popcorn -- npx -y @violetclaire/popcorn-mcp
Set EVM_PRIVATE_KEY in the environment that launches Claude Code only when paid calls are needed. Every paid call still requires approve_payment: true.
From packages/mcp:
npm install
npm run check npm start
The package build includes the repository's existing TypeScript verifier in the published files. Runtime dependencies remain normal npm dependencies.