---
name: page-fetch-jobs
description: "Step-by-step job recipes for the Page Fetch MCP server: Fetch a web page as Markdown; Extract JSON from a web page. Use when the user asks things like \"Read https://example.com as Markdown.\" or \"Get the plan names and monthly prices from https://example.com/pricing as JSON.\""
license: MIT
---

# Page Fetch jobs

Each section below walks through one job with the tools of the `page-fetch` MCP server. The same recipes are MCP prompts (prompts/list) on `https://pagefetch.openkrill.app/mcp`.
Connect the server at `https://pagefetch.openkrill.app/mcp` in your MCP client settings (remote streamable HTTP, no key), then call its tools as normal tool calls. They are not command line programs: Bash, curl and scripts cannot reach them.

## Fetch a web page as Markdown

Job: Fetch a web page as Markdown, with the Page Fetch MCP server.

Use the `fetch_page` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Read https://example.com as Markdown."

Steps:
1. Call `fetch_page` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `url`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"url":"https://example.com","links":false}`
4. For the request "Read https://example.com as Markdown.", a correct answer looks like this: status ok, the page title, the Markdown of the main content and its links.
5. Follow the server's own rules:
   - Use fetch_page with the full address of one public page when the user wants to read, quote, summarize or extract from it.
   - Answer from the markdown field and cite final_url.
   - When truncated is true, say so, and call again with a larger max_chars (at most 100000; a larger value is lowered to it) only if the user needs the rest.
   - A result with status skipped was not read: give the message (robots.txt, login, bot check, rate cap) and do not try to get around it.
   - Pass links false when the links are not needed.
   - Pass on any note.
   - Do not use it for pages behind a login, for files such as PDFs, or to crawl a whole site.
   - Use the json field only after checking sources: a value with found false is not in the page word for word, so say so.
   - When json is null, give the warning.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `fetch_page`).

## Extract JSON from a web page

Job: Extract JSON from a web page, with the Page Fetch MCP server.

Use the `extract_page_json` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Get the plan names and monthly prices from https://example.com/pricing as JSON."

Steps:
1. Call `extract_page_json` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `url`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"url":"https://www.rfc-editor.org/rfc/rfc9309.html","schema":{"type":"object","properties":{"title":{"type":"string"},"authors":{"type":"array","items":{"type":"string"}}},"required":["title","authors"]}}`
4. For the request "Get the plan names and monthly prices from https://example.com/pricing as JSON.", a correct answer looks like this: json holds the plans with their prices; sources gives each value's text in the page, and the answer flags any value with found false.
5. Follow the server's own rules:
   - Answer from the markdown field and cite final_url.
   - When truncated is true, say so, and call again with a larger max_chars (at most 100000; a larger value is lowered to it) only if the user needs the rest.
   - A result with status skipped was not read: give the message (robots.txt, login, bot check, rate cap) and do not try to get around it.
   - Pass links false when the links are not needed.
   - Pass on any note.
   - Do not use it for pages behind a login, for files such as PDFs, or to crawl a whole site.
   - Use extract_page_json when the user wants fields from a page as data: pass a JSON Schema in schema, a prompt, or both.
   - Use the json field only after checking sources: a value with found false is not in the page word for word, so say so.
   - When json is null, give the warning.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `extract_page_json`).
