POPCORN MCP
POPCORN provides a witness layer for AI agents, generating signed receipts that bind a fingerprint of work to a witnessed time interval. This allows agents to prove existence and integrity of their outputs offline, ensuring persistence and accountability across sessions without trusting the witness provider.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://767-2676.com/mcpWhat you can do with it
- Generate signed witness receipts for agent work
- Verify work existence and integrity offline
- Persist agent history across handoffs
- Prove action before authorization expired
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- popcorn 0.1.4-remote
- MCP protocol
- 2025-06-18
- Tools
- 7 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
7 advertised
popcorn_sample — Verify a real receipt for free
Check 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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}popcorn_catalog
Read the live catalog, offer, and published verification keys. Free; no payment.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}popcorn_hash
Hash public bytes on this remote server. Submitted text reaches the server: hash private work locally instead. Free; no onward request or payment.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"payload_text": {
"type": "string",
"maxLength": 65536
},
"payload_base64url": {
"type": "string",
"maxLength": 65536
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}popcorn_verify
Verify 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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"receipt_type",
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"receipt_type": {
"enum": [
"time",
"witness"
],
"type": "string"
},
"verification": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}popcorn_verify_v2
Verify 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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"response",
"jwks",
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"previous_receipt": {
"type": "object",
"required": [
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"verification": {
"type": "object",
"required": [
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"previous_receipt": {
"type": "object",
"required": [
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"verification": {
"type": "object",
"required": [
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"previous_receipt": {
"type": "object",
"required": [
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"verification": {
"type": "object",
"required": [
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"previous_receipt": {
"type": "object",
"required": [
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"verification": {
"type": "object",
"required": [
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"previous_receipt": {
"type": "object",
"required": [
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"verification": {
"type": "object",
"required": [
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"previous_receipt": {
"type": "object",
"required": [
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"verification": {
"type": "object",
"required": [
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"previous_receipt": {
"type": "object",
"required": [
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"verification": {
"type": "object",
"required": [
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"previous_receipt": {
"type": "object",
"required": [
"response",
"jwks",
"verification"
],
"properties": {
"jwks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"response": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"verification": {
"type": "object",
"required": [
"expected_nonce",
"expected_payload_digest"
],
"properties": {
"expected_nonce": {
"type": "string"
},
"expected_node_id": {
"type": "string"
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"expected_payload_digest": {
"type": "string"
},
"max_clock_accuracy_radius_ms": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}popcorn_time
Request 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. Verify evidence and account for client round-trip time before a deadline decision.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"freshness_ms": {
"type": "integer",
"default": 30000,
"maximum": 60000,
"minimum": 100
},
"approve_payment": {
"type": "boolean",
"default": false
},
"payment_signature": {
"type": "string",
"maxLength": 16384,
"description": "Caller-signed x402 PAYMENT-SIGNATURE. Never send a wallet private key. Requires approve_payment:true for this single call."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}popcorn_witness
Witness 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 automatic retry. Evidence does not authorize or prove execution of an action.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"digest",
"nonce"
],
"properties": {
"nonce": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$"
},
"digest": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$"
},
"approve_payment": {
"type": "boolean",
"default": false
},
"payment_signature": {
"type": "string",
"maxLength": 16384,
"description": "Caller-signed x402 PAYMENT-SIGNATURE. Never send a wallet private key. Requires approve_payment:true for this single call."
},
"previous_attestation_digest": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 446 ms
- 95th percentile latency
- 446 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 446 ms · metadata changed · 7 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http popcorn-mcp-767-2676 https://767-2676.com/mcpCodex
codex mcp add popcorn-mcp-767-2676 --url https://767-2676.com/mcpCursor
{
"mcpServers": {
"popcorn-mcp-767-2676": {
"url": "https://767-2676.com/mcp"
}
}
}Cline
{
"mcpServers": {
"popcorn-mcp-767-2676": {
"type": "streamableHttp",
"url": "https://767-2676.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"popcorn-mcp-767-2676": {
"type": "http",
"url": "https://767-2676.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http popcorn-mcp-767-2676 https://767-2676.com/mcpClaude Desktop
{
"mcpServers": {
"popcorn-mcp-767-2676": {
"url": "https://767-2676.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"popcorn-mcp-767-2676": {
"serverUrl": "https://767-2676.com/mcp"
}
}
}Let your agent find its tools
Find servers like POPCORN MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.