Repository avatar
AI Tools
v0.4.0
active

public-domain-check

io.github.chomkaevan/public-domain-check

US public-domain and copyright status for books, films, music and art. Pay per call via x402.

Documentation

Public Domain Check: MCP server

Is this book, film, song or artwork in the US public domain, and when does it enter it? This MCP server answers that question for AI agents. It's backed by:

  • 2.38 million US Copyright Office registrations (1923–1977)
  • 434,000 renewal records, linked to their registrations
  • the US copyright term rules

Paid tools cost a few cents per call, paid in USDC through x402. There's no account or API key.

Tools

ToolPriceWhat it does
check_public_domain$0.01 (brief) / $0.02 (full)Returns the status (public domain, likely public domain, in copyright, or undetermined), the public-domain date, the confidence, a one-line reason and the record IDs. Full mode adds the complete reasoning and records. For 1923–1977 books, a title is enough.
check_public_domain_batch$0.0075 per work (brief) / $0.015 (full)Checks up to 50 works per call. Local wrapper only.
search_copyright_renewals$0.01Shows who renewed a work's copyright and when, which usually points to the rightsholder.
copyright_rules_for_yearfreeTells you which rule applies to a publication year, and whether a record lookup is needed.
public_domain_dayfreeLists what enters the US public domain on January 1.

You're never charged when a request is invalid or the service needs more information.

Brief answers by default. check_public_domain returns a short answer: the status, the date, the confidence, a one-line reason, and the record IDs. That's about 80% fewer tokens for your agent to read. For the complete reasoning and records ($0.02), pass format: "full" (local wrapper) or call check_public_domain_full (remote MCP).

Use it

Claude Desktop, Cursor, Windsurf, and other MCP clients

Add this to your MCP config:

{
  "mcpServers": {
    "public-domain-check": {
      "command": "npx",
      "args": ["-y", "public-domain-check-mcp"],
      "env": {
        "WALLET_PRIVATE_KEY": "0x...",
        "MAX_PRICE_PER_CALL": "0.25"
      }
    }
  }
}
  • WALLET_PRIVATE_KEY is the private key of a wallet that holds a little USDC on Base. Use a dedicated wallet with a few dollars in it, not your main wallet.
  • Without a key, the free tools still work.
  • MAX_PRICE_PER_CALL is a hard cap, in US dollars, enforced on your machine. The wrapper refuses any call that costs more.

Agents with built-in x402 support

These include @x402/mcp, Coinbase AgentKit, and other x402-aware frameworks. Connect to the remote URL above. Paid tools return an x402 payment request, and your client pays it and retries.

Example answer

{
  "status": "in_copyright",
  "confidence": "high",
  "public_domain_date": "2035-01-01",
  "reasoning": [
    "Published 1939; works published 1929–1963 needed a renewal filed in the 28th year (1966–1967) ...",
    "Found the original registration A125939 (1939-02-06) and its renewal R399023 (1966-12-12)."
  ],
  "registration": {
    "renewal": {
      "id": "R399023",
      "claimants": [{ "name": "Helga Greene", "role": "executor" }]
    }
  }
}

Data and limits

  • Sources: US Copyright Office records from the Catalog of Copyright Entries, plus renewal records. Both were transcribed by the New York Public Library and released under CC0.
  • Limits: US law only. The answers are informational, not legal advice.

License

MIT

NPM
public-domain-check-mcp
Install Command
npm install public-domain-check-mcp