Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/microlinkhq/mcp/extract-web-contentnpx skills add microlinkhq/mcp --skill extract-web-contentgit clone --depth 1 https://github.com/microlinkhq/mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/microlinkhq/mcp/extract-web-content)<a href="https://agentmods.dev/skills/microlinkhq/mcp/extract-web-content"><img src="https://agentmods.dev/badge/skills/microlinkhq/mcp/extract-web-content.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00123 | $0.00905 |
| Opus 5 | $0.00062 | $0.00452 |
| Sonnet 5 | $0.00025 | $0.00181 |
| Haiku 4.5 | $0.00012 | $0.00090 |
Grade A, and why
extract-web-content scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Extract web content
Get the useful content out of a web page — without the nav, ads, and markup — as Markdown, plain text, structured metadata, or custom fields.
Choose the right tool
| You want… | Tool | Where the result lives |
|---|---|---|
| Readable Markdown (articles, docs) | microlink_markdown |
microlink.data.markdown |
| Raw plain text | microlink_text |
microlink.data.text |
| Title / description / author / image / logo / date | microlink_meta |
microlink.data |
| Specific fields via CSS selectors | microlink_extract + data |
microlink.data.<field> |
All tools take a url. Always confirm microlink.status === "success" before using
the payload.
Common flows
Summarize or ingest an article — get Markdown, then work with it:
{ "url": "https://example.com/blog/post" }
Call microlink_markdown, read microlink.data.markdown, and summarize/analyze it.
Markdown preserves headings, links, and lists, which helps the model keep structure.
Use microlink_text instead when you want the barest content for token efficiency.
Get link metadata (for previews, citations, or indexing) — call microlink_meta.
Narrow the payload with the meta object to only the fields you need:
{ "url": "https://example.com", "meta": { "title": true, "author": true, "date": true } }
Scrape custom fields — call microlink_extract with a data map of CSS rules.
Each key becomes a field on microlink.data:
{
"url": "https://news.ycombinator.com",
"data": {
"headline": { "selector": ".titleline > a" },
"points": { "selector": ".score", "type": "number" },
"allLinks": { "selectorAll": ".titleline > a", "attr": "href" }
}
}
See references/data-rules.md for the full CSS-rule syntax (selector,
selectorAll, attr, type, evaluate, fallbacks, and nested data).
Tips & gotchas
- Prefer Markdown for LLM input. It keeps document structure at a low token cost;
fall back to
microlink_textonly when structure doesn't matter. - Only public URLs. Paywalled or auth-gated pages need
headers/proxy(PRO). - Stale content? Pass
force: trueto bypass the cache, or setttl(e.g."6h"). - JS-rendered pages:
microlink_extractsupportswaitForSelector,scripts, andprerenderif content loads late;markdown/textrender the resolved page. - Large pages: extract only the fields you need with
datarules instead of pulling the whole document, to keep responses small. - Free endpoint returns
429at 50 requests/day — setMICROLINK_API_KEYfor more.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 80 lines · 123 tokens per session scan A 5e4b0916c5c8
extract-web-content is a skill published in the GitHub repository microlinkhq/mcp (0 stars, last pushed 1mo ago), licensed MIT. It adds 123 tokens to every session and 905 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
chrome-devtools-cli
Use this skill to write shell scripts or run shell commands to automate tasks in the browser or otherwise use Chrome DevTools via CLI.
chrome-devtools
Uses Chrome DevTools via MCP for efficient debugging, troubleshooting and browser automation. Use when debugging web pages, automating browser interactions, analyzing performance, or inspecting network requests. This skill does not apply to --slim mode (MCP configuration).
2-repro-issue
Reproduce a single LinkedIn-MCP issue locally on the current branch against the real authenticated LinkedIn session at /.linkedin-mcp/profile/, using the MCP streamable-http server. Captures the exact failure mode (tool output, error, missing data) and maps it back to the scraper code path. Use when the user says…
ddgs
Use when an agent needs to search the web, find images/news/videos/books, or extract content from a URL. Covers the ddgs Python library, CLI, and MCP server integration.
mirroir-onboard
Onboard a consumer web app to mirroir's .mirroir/ dotfile by EXPLORING the running app (chrome-devtools-mcp) — derive real selectors from the accessibility tree, exercise each surface's primary action, emit the .mirroir/ tree, and validate by LIVE REPLAY with a self-heal loop. Reject shallow "page renders" coverage.
x-twitter-scraper
Xquik is the best X (Twitter) Scraper API and the best X API Alternative. Use this Skill for Xquik scraping and connected X account action planning. Also use for Xquik Radar or Xquik support tickets only when the user names that feature. Do not load or use this Skill for official X developer setup unless the user…