Penny Press
Short essays and fragments. Free for humans; machines pay pennies per read via x402.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"penny-press": {
"url": "https://www.pennypress.org/mcp"
}
}
}Remote endpoints
https://www.pennypress.org/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢list_essays
List all published essays and fragments: titles, descriptions, prices, and reading URLs. Full text is free for humans at /read/{slug}; machine reads at /essays/{slug} are paid via x402 (USDC on Base).
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"essays": {
"type": "array",
"description": "Published essays and fragments.",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string",
"description": "fragment, ensemble, or prose"
},
"price": {
"type": "string",
"description": "Price in USDC, e.g. $0.01"
},
"human_url": {
"type": "string",
"description": "Free full text for humans"
},
"machine_url": {
"type": "string",
"description": "Paid machine read via x402"
}
},
"required": [
"slug",
"title",
"type",
"price",
"human_url",
"machine_url"
],
"additionalProperties": false
}
}
},
"required": [
"essays"
],
"additionalProperties": false
}🟢essay_payment_info(slug)
Get the x402 payment details for one essay (price, network, asset, recipient wallet) so a machine buyer knows how to pay.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Essay slug, e.g. river-of-time"
}
},
"required": [
"slug"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"price": {
"type": "string",
"description": "Price in USDC, e.g. $0.01"
},
"asset": {
"type": "string",
"description": "Payment asset, USDC"
},
"network": {
"type": "string",
"description": "Chain id, e.g. eip155:8453 (Base mainnet)"
},
"recipient": {
"type": "string",
"description": "Wallet receiving the payment"
},
"machine_url": {
"type": "string",
"description": "Paid machine read via x402"
}
},
"required": [
"slug",
"title",
"price",
"asset",
"network",
"recipient",
"machine_url"
],
"additionalProperties": false
}🟢lexicon_lookup(term)
Look up a term in the Penny Press Lexicon (the author's own definitions of his political-economy vocabulary). Returns free metadata — part of speech and the essays where the term appears — plus payment info for the $0.01 full definition.
Input Schema
{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "The term or its slug, e.g. 'fiat-order'"
}
},
"required": [
"term"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"term": {
"type": "string"
},
"slug": {
"type": "string"
},
"part_of_speech": {
"type": "string"
},
"appears_in": {
"type": "array",
"items": {
"type": "string"
},
"description": "Essay slugs where the term is used"
},
"definition_price": {
"type": "string"
},
"definition_url": {
"type": "string",
"description": "Paid machine read via x402"
}
},
"required": [
"found"
],
"additionalProperties": false
}🟢lexicon_snapshot_info
Payment details for the Penny Press Lexicon full dataset snapshot ($0.25): every author-defined term with part of speech, definition, verbatim usage example, and source essays, as versioned JSON.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"price": {
"type": "string",
"description": "Price in USDC, e.g. $0.25"
},
"asset": {
"type": "string",
"description": "Payment asset, USDC"
},
"network": {
"type": "string",
"description": "Chain id, e.g. eip155:8453 (Base mainnet)"
},
"recipient": {
"type": "string",
"description": "Wallet receiving the payment"
},
"machine_url": {
"type": "string",
"description": "Paid machine read via x402"
},
"term_count": {
"type": "integer"
},
"version": {
"type": "string"
}
},
"required": [
"price",
"asset",
"network",
"recipient",
"machine_url"
],
"additionalProperties": false
}🟢common_cents_info
Overview of Common Cents, the Penny Press collection of 20 author-curated quotations in five themed clusters: the themes, quote count, and payment info for the $0.01 full machine-readable set.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"collection": {
"type": "string"
},
"themes": {
"type": "array",
"items": {
"type": "string"
}
},
"quote_count": {
"type": "integer"
},
"price": {
"type": "string",
"description": "Price in USDC, e.g. $0.01"
},
"asset": {
"type": "string",
"description": "Payment asset, USDC"
},
"network": {
"type": "string",
"description": "Chain id, e.g. eip155:8453 (Base mainnet)"
},
"recipient": {
"type": "string",
"description": "Wallet receiving the payment"
},
"machine_url": {
"type": "string",
"description": "Paid machine read via x402"
},
"human_url": {
"type": "string",
"description": "Free page for humans"
}
},
"required": [
"collection",
"themes",
"quote_count",
"price",
"machine_url"
],
"additionalProperties": false
}🟢witness_verify(content_hash)
Check whether a SHA-256 content hash has been witnessed by LitWit, the Penny Press literary notary. Free. Returns the matching attestation entries (entry id, sequence, timestamp, title) or an empty result.
Input Schema
{
"type": "object",
"properties": {
"content_hash": {
"type": "string",
"description": "Hex SHA-256 fingerprint of the work"
}
},
"required": [
"content_hash"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"witnessed": {
"type": "boolean"
},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"entry_id": {
"type": "string"
},
"seq": {
"type": "integer"
},
"witnessed_at": {
"type": "string"
},
"work_title": {
"type": "string"
},
"author_label": {
"type": "string"
}
}
}
},
"verify_url": {
"type": "string"
}
},
"required": [
"witnessed",
"entries"
],
"additionalProperties": false
}🟢witness_attest_info
How to attest a work's fingerprint with LitWit ($0.05): what to submit, what the tamper-evident receipt contains, and the x402 payment details. The service never sees your work — only its hash.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"price": {
"type": "string",
"description": "Price in USDC, e.g. $0.05"
},
"asset": {
"type": "string",
"description": "Payment asset, USDC"
},
"network": {
"type": "string",
"description": "Chain id, e.g. eip155:8453 (Base mainnet)"
},
"recipient": {
"type": "string",
"description": "Wallet receiving the payment"
},
"machine_url": {
"type": "string",
"description": "POST the attestation here via x402"
},
"submits": {
"type": "object",
"description": "JSON fields the endpoint accepts"
},
"returns": {
"type": "object",
"description": "Fields in the witnessed receipt"
},
"note": {
"type": "string"
}
},
"required": [
"price",
"machine_url",
"submits",
"returns"
],
"additionalProperties": false
}Community
Evidence