
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.
- Remote MCP (Streamable HTTP):
https://public-domain-check-production.up.railway.app/mcp - HTTP API and docs: https://public-domain-check-production.up.railway.app (llms.txt, OpenAPI)
Tools
| Tool | Price | What 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.01 | Shows who renewed a work's copyright and when, which usually points to the rightsholder. |
copyright_rules_for_year | free | Tells you which rule applies to a publication year, and whether a record lookup is needed. |
public_domain_day | free | Lists 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_KEYis 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_CALLis 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
public-domain-check-mcpnpm install public-domain-check-mcp