pagewire
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pagewirefetch https://example.com/blog/post as clean markdown"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pagewire-mcp
MCP server for PageWire. It turns any public web page into clean Markdown for AI agents, paid per call in USDC. There is no API key and no account.
Tool | What it does | Price |
| Fetches a public page and returns its title, description, clean Markdown and links. Deterministic, no model call | $0.01 |
| Returns title, description, canonical URL, language, OpenGraph and Twitter cards, icons and JSON-LD | $0.005 |
| Reads a page plus up to 4 same-site pages it links to (optionally only under a path | $0.03 |
This package is a dependency-free stdio bridge (Node 18+) to the hosted Streamable-HTTP server at https://pagewire.dev/mcp. Clients that speak Streamable HTTP can use that URL directly and skip the bridge.
Install
Claude Code
claude mcp add pagewire -- npx -y github:AgentiLoop/pagewire-mcp
# or, without the bridge:
claude mcp add --transport http pagewire https://pagewire.dev/mcpClaude Desktop / Cursor / Windsurf / Cline (stdio)
{ "mcpServers": { "pagewire": { "command": "npx", "args": ["-y", "github:AgentiLoop/pagewire-mcp"] } } }Any Streamable-HTTP client
{ "mcpServers": { "pagewire": { "type": "http", "url": "https://pagewire.dev/mcp" } } }Verify
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx -y github:AgentiLoop/pagewire-mcpRelated MCP server: x402-md-mcp
Paying
Call a tool without
payment. The result isisError: truewithstructuredContent.paymentRequired, which holds the x402 v2acceptslist (network, asset, amount,payTo).Sign one entry with any x402 client (for example
@x402/fetch) and call the tool again with the base64 payload aspayment.A bad input or a page that cannot be fetched (4xx) is never charged.
The same tools are plain HTTP endpoints: GET https://pagewire.dev/x402/extract?url=…, /x402/meta?url=… and /x402/crawl?url=…. Each one also accepts MPP (npx mppx "https://pagewire.dev/x402/extract?url=https://example.com"). Discovery: openapi.json, llms.txt.
Environment
Variable | Default |
|
|
|
|
Official MCP registry entry: dev.pagewire/web. Agent skill: npx skills add https://pagewire.dev.
License
MIT. The bridge is open source; the hosted service is at https://pagewire.dev/.
Available Tools
3 toolscrawl_siteRead a page + 4 linked pages ($0.03/call)ARead-only
Fetch a public web page plus up to 4 pages on the same host that it links to (in link order, or only those whose path starts with prefix), and return each one as title + clean Markdown. Good for reading a docs section or a small site in one call. No model call, deterministic. For a single page use page_to_markdown (cheaper), for metadata only use page_metadata. Plain HTTP fetch (no JavaScript rendering, 15 s timeout, only the first 2 MB is read). Errors (non-public URL, upstream HTTP error, timeout, non-text content) return isError with the reason and are never charged. Price: $0.03 USDC per call via x402 (USDC on Base or Solana, no account; nothing is charged for a bad input). First $0.1 of calls per day per client are free (no payment needed).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) page to fetch | |
| limit | No | Linked pages to read (default 4) | |
| prefix | No | Only follow links whose path starts with this, e.g. /docs/ | |
| payment | No | x402 payment: the base64 PAYMENT-SIGNATURE value (x402 v2 payment payload signed for one entry of the `accepts` list returned when this tool is called without it). Omit to get the price and payment requirements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint; the description adds substantial extra behavior: no JavaScript rendering, 15 s timeout, 2 MB read cap, link-order vs prefix filtering, and that errors (non-public URL, HTTP error, timeout, non-text) return isError and are never charged. Pricing, payment channel, and a free daily tier are also disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded in the first sentence, then alternatives, then behavioral limits, then cost. Four tight sentences with no filler; every clause carries information an agent needs before calling a paid tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description specifies the return format (title + clean Markdown per page) and the error contract. Combined with the exact cost and payment mechanics, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it clarifies that the 4-page cap is 'up to 4', that links are followed 'in link order', and that prefix restricts by path ('/docs/'). The payment parameter is left entirely to the schema, which is acceptable given its detailed self-description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fetch) plus resource (a public page and up to 4 same-host links) and the return shape (title + clean Markdown). It explicitly contrasts itself with page_to_markdown and page_metadata, so an agent can distinguish it from siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives positive guidance ('good for reading a docs section or a small site in one call') and names both alternatives with the condition that selects them: single page -> page_to_markdown (cheaper), metadata only -> page_metadata. Nothing left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_metadataWeb page metadata ($0.005/call)ARead-only
Fetch a public web page and return its metadata: title, description, canonical URL, language, OpenGraph and Twitter card tags, icons and parsed JSON-LD blocks. Use it for link previews, SEO checks or structured data (JSON-LD) without the page body; use page_to_markdown when you need the readable text and links. Plain HTTP fetch (no JavaScript rendering, 15 s timeout, only the first 2 MB is read). Errors (non-public URL, upstream HTTP error, timeout, non-text content) return isError with the reason and are never charged. Price: $0.005 USDC per call via x402 (USDC on Base or Solana, no account; nothing is charged for a bad input). First $0.1 of calls per day per client are free (no payment needed).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) page to fetch | |
| payment | No | x402 payment: the base64 PAYMENT-SIGNATURE value (x402 v2 payment payload signed for one entry of the `accepts` list returned when this tool is called without it). Omit to get the price and payment requirements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, it discloses the transport mechanics (plain HTTP, no JS rendering, 15 s timeout, first 2 MB only), the failure contract (isError with reason, never charged), and the full payment model including the x402 flow and the free daily quota. This is unusually rich operational context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is dense and long, but front-loaded (purpose, then routing, then mechanics, then cost) and every clause carries distinct information. Slightly run-on in the pricing sentence, but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields directly, and it covers limits, error behavior, and billing. An agent has everything needed to call it correctly and to anticipate cost and failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (url, payment) are already documented in the schema, including how to obtain the price when payment is omitted. The description adds pricing/quota context but no new meaning about the parameter values themselves, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Fetch a public web page and return its metadata') and enumerates exactly what is returned (title, description, canonical URL, language, OG/Twitter tags, icons, JSON-LD). It explicitly contrasts itself with the sibling page_to_markdown, so an agent can distinguish it without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names concrete use cases ('link previews, SEO checks or structured data without the page body') and gives an explicit routing rule: 'use page_to_markdown when you need the readable text and links.' This is a clear when/when-not/alternative statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
page_to_markdownWeb page → Markdown ($0.01/call)ARead-only
Fetch a public web page and return its title, description, clean Markdown (scripts, styles, nav chrome removed) and the list of links. No model call, deterministic. Use it to read the content of one page; use page_metadata if you only need title/OpenGraph/JSON-LD (cheaper), or crawl_site to read the page plus the pages it links to in one call. Plain HTTP fetch (no JavaScript rendering, 15 s timeout, only the first 2 MB is read). Errors (non-public URL, upstream HTTP error, timeout, non-text content) return isError with the reason and are never charged. Price: $0.01 USDC per call via x402 (USDC on Base or Solana, no account; nothing is charged for a bad input). First $0.1 of calls per day per client are free (no payment needed).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) page to fetch | |
| payment | No | x402 payment: the base64 PAYMENT-SIGNATURE value (x402 v2 payment payload signed for one entry of the `accepts` list returned when this tool is called without it). Omit to get the price and payment requirements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint/openWorldHint, but the description adds substantial behavior: no JS rendering, plain HTTP fetch, 15 s timeout, 2 MB read cap, deterministic no-model-call, and error semantics (isError with reason, never charged). Payment/free-tier mechanics are also disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: purpose first, then routing guidance, then constraints and pricing. Every clause carries useful information, though the pricing/free-tier tail is comparatively verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description enumerates the return payload (title, description, Markdown, links) and covers failure modes and cost, so an agent has everything needed to call and interpret results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (url, payment) are already documented, including the 'omit to get price' behavior. The description's payment details largely mirror the schema rather than adding new parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetch a public web page and return its title, description, clean Markdown and the list of links') and explicitly distinguishes itself from both siblings, page_metadata and crawl_site. An agent can pick it apart from siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('read the content of one page') plus named alternatives and the conditions that select them: page_metadata when only metadata is needed (noted as cheaper), crawl_site for page-plus-linked-pages. No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
crawl_site - First observed
page_metadata - First observed
page_to_markdown
TDQS
Scored across 3 tools
Each tool targets a distinct output: clean Markdown body, metadata/JSON-LD only, or a multi-page crawl. The descriptions explicitly cross-reference each other ("use page_metadata if you only need title...", "use crawl_site to read the page plus the pages it links to"), leaving no real ambiguity about selection.
All names are snake_case with a consistent noun/verb structure (page_to_markdown, page_metadata, crawl_site), and the two 'page' tools share a clear prefix. The 'crawl_' verb on the third tool is a minor deviation from the 'page_' prefix pattern but remains readable and descriptive.
Three tools is well scoped for a page-fetching service, and each one earns its place by covering a genuinely different retrieval mode (full body, metadata only, small crawl). No redundant or filler tools.
The surface covers the core fetch lifecycle: single-page content, lightweight metadata, and same-host multi-page crawling, with clear error and pricing semantics. Minor gaps remain around cross-host or larger batch fetching and deeper crawl controls (e.g. page limits, sitemap), but agents can work around these with repeated calls.
Maintenance
Related MCP Connectors
Web pages to Markdown, metadata and small crawls for agents. Free daily calls, then USDC x402/MPP.
Pay-per-request webpage-to-Markdown extraction for AI agents. $0.005 USDC via x402 on Solana.
Fetch any URL as clean Markdown or metadata, and buy digital goods via x402 — for AI agents.
Read any public web page as clean Markdown for LLMs, with its metadata. Paid per call, x402.
Related MCP Servers
- AlicenseAqualityCmaintenancePay-per-use clean web reader for AI agents. URL in, markdown plus metadata out, in milliseconds. Settled per-call in USDC over x402 — no signup, no API keys.1102 npm3MIT
- AlicenseNot gradedqualityDmaintenanceEnables extracting clean Markdown from any webpage by paying $0.005 USDC per call via the x402 protocol, with automatic wallet-based payment settlement.10 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables extracting clean, structured markdown from any URL—stripping nav, ads, and scripts—for RAG pipelines and AI research agents, with pay-per-call micropayments via x402.MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to reliably fetch public web URLs and extract clean, agent-ready text, Markdown, links, and metadata, with automatic browser fallback and optional x402 payment support.-