{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_c8zmxfvurdjm","handle":"4pda-mcp","url":"https://wellknown.network/agents/4pda-mcp","links":{"self":"https://wellknown.network/agents/4pda-mcp/record.json","html":"https://wellknown.network/agents/4pda-mcp","markdown":"https://wellknown.network/agents/4pda-mcp/record.md","api":"https://wellknown.network/api/v1/agents/4pda-mcp","status":"https://wellknown.network/api/v1/agents/4pda-mcp/status","claim":"https://wellknown.network/agents/4pda-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/4pda-mcp/claim.json","badge":"https://wellknown.network/agents/4pda-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/4pda-mcp/history","tools":"https://wellknown.network/api/v1/agents/4pda-mcp/tools"},"ard":{"identifier":"urn:air::server:4pda-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"4pda-mcp","summary":"MCP server exposing the 4PDA forum lofi (text) version: forums tree, topics, posts.","description":"# 4PDA MCP\n\nMCP server exposing the [4PDA](https://4pda.to) forum **lofi (text) version** without a\nbrowser. Uses [`impit`](https://github.com/zimmski/impit) to pass Cloudflare's TLS\nchallenge.\n\n## Why lofi?\n\nThe lofi/text version is ~50x smaller than the full page and has stable, simple\nmarkup — ideal for LLM consumption. The full version (`?act=idx`, `?showforum=`,\n`?showtopic=`) is JS-heavy and Cloudflare-gated.\n\n## URL conventions (discovered)\n\n4PDA changed the lofi entry. `lofiversion/index.php?index.html` now 404s. The\nlive format is:\n\n- `lofiversion/index.php?f{forum_id}.html` — a forum page (subforums + topics list)\n- `lofiversion/index.php?t{topic_id}.html` — topic page 1\n- `lofiversion/index.php?t{topic_id}-{offset}.html` — topic page N, step **20**\n- `index.php?act=idx` — full index, used only to enumerate top categories\n\nThe pinned header post repeats on every topic page; this server drops it on page ≥ 2.\n\n## Tools\n\n- `list_forums(forum_id?)` — top categories when `forum_id` omitted, else the subforums\n  (and topics summary) of a forum as a flat list. Returns a tree the client can nest.\n- `list_topics(forum_id)` — topics in a forum: id, title, replies, is_important.\n- `list_posts(topic_id, page=1)` — posts on a page: author, date, html (with internal\n  links rewritten to lofi where possible). Header post dropped on page ≥ 2.\n\n## Run\n\n```bash\npip install -e .\n4pda-mcp            # stdio MCP server\n# or: mcp run src/fourpda_mcp/server.py\n```\n\nNo browser, no auth needed (read-only public content). impit impersonates Chrome to\nclear Cloudflare.\n\n## Rate limiting\n\n4PDA fronts the lofi endpoint with Cloudflare; it is uncached, so every request\nhits origin and Cloudflare rate-limits it. The limit is not published; measured\nempirically (Aug 2026):\n\n| Request rate            | Result                                   |\n| ---------------------- | ---------------------------------------- |\n| 1 req / 2s             | clean (10/10)                            |\n| 1 r…","publisher":null,"homepage":null,"repository":null,"version":"0.2.1","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:4pda-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"infra.browser-automation","name":"Browser Automation","confidence":0.791,"provenance":"derived"}],"categories":["infra"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"4pda-mcp","registry":"pypi","observedAt":"2026-11-08T22:24:29.109Z","publishedAt":"2026-08-25T09:07:08.013799Z","latestVersion":"0.2.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"4pda-mcp","url":"https://pypi.org/project/4pda-mcp/","firstSeenAt":"2026-09-09T08:19:56.549Z","fetchedAt":"2026-11-08T22:23:00.430Z","normalizedAt":"2026-11-08T22:23:00.430Z"}]},"firstSeenAt":"2026-09-09T08:19:56.549Z","updatedAt":"2026-11-08T22:24:29.109Z"}