Penny Press

Short essays and fragments. Free for humans; machines pay pennies per read via x402.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
65%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~492Tokens (tool definitions)
~2.1 KBTypical response size
Minimal attention impact (0.38% of 128k context)

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-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools