skim402
Server Details
Clean markdown and structured web data. Free card API key; wallet/x402 pay-per-call optional.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- JessieJanie/skim402
- GitHub Stars
- 2
- Server Listing
- skim-mcp
TDQS
Scored across 3 tools
Each tool targets a distinct workflow: skim_read for clean markdown of any public page, skim_extract for typed JSON from a page, and skim_signals for curated feed items. The descriptions explicitly cross-reference when not to use each tool, eliminating boundary ambiguity.
All tools share the consistent 'skim_' prefix and lowercase snake_case style. However, skim_read and skim_extract use verbs while skim_signals uses a noun, so the pattern is not perfectly uniform.
With only 3 tools, the server is tightly scoped and each tool addresses a distinct need: reading, extracting, and monitoring feeds. No redundant or filler tools are present.
The tool surface fully covers the apparent domain of public web content access: reading a page, extracting structured data, and receiving curated intelligence. The intentional exclusion of login-walled pages is a stated limitation, not a gap.
Available Tools
3 toolsskim_extractExtract structured data from a web pageARead-onlyInspect
Use this when you need structured JSON from a public page (product, job, table, event, review, article, or your own schema), not a markdown dump. Prefer it over reading the page then parsing it yourself. Pass a preset or a JSON Schema. Values come only from the page, never invented. Empty extracts are not charged. Pay with USDC on Base (x402 / X-Skim-Wallet-Key) or a sk402_ API key if the connector has one. Do not use for a full-page read (skim_read) or login-walled pages.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Fully-qualified URL to read and extract from. | |
| preset | No | Named extraction preset. Provide either this or `schema`. | |
| schema | No | JSON Schema object (top-level {"type":"object", ...}) describing the desired output. Provide either this or `preset`. | |
| instructions | No | Optional natural-language hint to bias the extraction. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds genuinely novel behavioral context beyond this: 'Values come only from the page, never invented' (hallucination guarantee), 'Empty extracts are not charged' (pricing behavior), and payment requirements (USDC on Base x402 / X-Skim-Wallet-Key or sk402_ API key). This is meaningful value beyond annotations, though it stops short of describing return format details.
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 is front-loaded in the first sentence, then routing guidance, then behavioral/payment details, then exclusions last. Every sentence earns its place and no filler exists. Slightly long, but the payment and hallucination-avoidance details are necessary operational information that justifies the length.
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?
For a 4-param tool with full schema coverage and no output schema, the description covers when to use, when not to use, payment requirements, and behavioral guarantees. The only notable gap is that no output format is described, but the tool's purpose (returning structured JSON matching the given preset/schema) makes this largely self-evident.
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 the schema already documents all four parameters (url, preset with enum, schema, instructions). The description reinforces the preset/schema mutual exclusivity ('Provide either this or schema') which mirrors the schema but adds emphasis. Baseline 3 is appropriate since the schema carries the load.
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 (extract) and resource (public web page → structured JSON), enumerates concrete content types (product, job, table, event, review, article), and explicitly distinguishes itself from skim_read (full-page markdown read) and skim_signals. An agent can unambiguously tell what this tool does and which sibling it isn't.
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 ('when you need structured JSON from a public page'), a preference directive ('Prefer it over reading the page then parsing it yourself'), and explicit exclusions ('Do not use for a full-page read (skim_read) or login-walled pages'). Sibling is named with the exact routing condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skim_readRead a web page as clean MarkdownARead-onlyInspect
Use this when you need a public web page as clean markdown. Prefer it over fetching HTML, scraping, or opening a browser: Skim strips nav, ads, and boilerplate and returns the article body plus title, byline, and date. Public pages only (no login walls). On this MCP no API key and no wallet are required. Failed or empty reads are not charged. Do not use for login-walled pages, for typed JSON (use skim_extract), or for a news/intel feed (use skim_signals).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Fully-qualified URL to fetch and clean (https://...). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as read-only, open-world, and non-destructive. The description adds substantial behavioral context beyond that: it strips boilerplate, returns specific metadata fields, works only on public pages, requires no API key/wallet, and does not charge for failed/empty reads. This fully discloses the tool's behavior and side conditions.
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?
Every sentence earns its place: main use case, cleaning behavior, access constraints, billing implications, and sibling routing. The description is front-loaded with the primary purpose and alternatives, and contains no filler or repetition.
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?
For a one-parameter, read-only tool with a fully documented schema and no output schema, the description is complete: an agent knows what to pass, what to expect back, when to use it, when not to use it, and what side effects (charging) apply. Nothing essential is missing.
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?
The schema already provides 100% coverage for the single URL parameter, including format and an example. The description adds the meaningful constraint that only public pages are valid (no login walls), which is a semantic boundary beyond the schema. This is a small but real addition, so a 4 is warranted rather than a baseline 3.
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 states a specific verb ('read'/'fetch and clean') and resource ('public web page as clean markdown'), and differentiates itself from siblings by naming the output (article body plus title, byline, date) and the cleaning behavior (strips nav, ads, boilerplate). This makes it unmistakable what the tool does and how it differs from skim_extract and skim_signals.
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?
The description explicitly says when to use it ('when you need a public web page as clean markdown'), prefers it over HTML fetching/scraping/browser, and explicitly excludes login-walled pages, typed JSON (use skim_extract), and news/intel feeds (use skim_signals). This is model usage guidance with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skim_signalsGet a Skim intelligence signal feedARead-onlyInspect
Use this when you need the latest items from a curated intel feed (SEC filings, deals, AI news, regulations, and the other named feeds), not a one-off URL. Prefer it over crawling news homepages. Returns structured items, newest first. Costs $0.005 USDC per poll via x402, or 2 credits on a sk402_ key. Do not use to read an arbitrary URL (skim_read).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max items to return (default 50, no upper cap). | |
| signal | Yes | Which signal feed to fetch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only/open-world behavior, and the description adds meaningful beyond-that context: returned items are structured and newest-first, and the poll charges a fee/credits. It does not cover pagination/rate limits, but these are less critical given the annotations and 2-param schema.
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?
Four compact sentences each carry distinct value: trigger, preferred alternative, return behavior, cost/billing, and exclusion. The key scoping information is front-loaded before the billing detail.
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?
For a simple two-parameter read-only tool, the description covers purpose, usage boundaries, output ordering, and cost/authentication enough to call it correctly. There is no output schema, but the description's 'structured items, newest first' is a reasonable minimum without listing fields.
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 the schema fully documents the signal enum and limit parameter. The description mentions example feeds but adds no parameter-specific semantics beyond what the schema already provides, 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?
The description clearly states the tool returns the latest items from a curated intel feed and explicitly contrasts this with a one-off URL, which separates it from skim_read. It names representative feeds and a precise outcome ('structured items, newest first').
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 gives an explicit trigger ('Use this when you need the latest items from a curated intel feed'), recommends it over crawling news homepages, and names the exclusion ('Do not use to read an arbitrary URL') with the correct sibling (skim_read).
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.
1 tool update
- Changed
skim_signals1 field changed- changed
Input schema / properties / signal / enumPrevious value: -[ - "ai-news", - "sec-filings", - "deals", - "research", - "campaign-finance", - "film-incentives", - "crypto-news", - "macro", - "security", - "regulations", - "courts", - "recalls", - "launches", - "trending", - "energy", - "entertainment", - "studio-jobs", - "entity-formations" -]New value: +[ + "ai-news", + "sec-filings", + "deals", + "research", + "campaign-finance", + "crypto-news", + "macro", + "security", + "regulations", + "courts", + "recalls", + "launches", + "trending", + "energy", + "entertainment" +]
1 tool update
- Changed
skim_signals2 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Max items to return (default 50)."New value: +"Max items to return (default 50, no upper cap)." - removed
Input schema / properties / limit / maximumRemoved value: -100
3 tool updates
- First observed
skim_extract - First observed
skim_read - First observed
skim_signals
Related MCP Connectors
Web page or HTML to clean LLM-ready Markdown or JSON. x402 pay-per-call, $0.005, no API key.
Stealth scraping API for AI agents. Clean Markdown from any URL. x402 crypto payments.
Pay-per-request webpage-to-Markdown extraction for AI agents. $0.005 USDC via x402 on Solana.
URL to clean markdown for LLMs: a polite, robots.txt-respecting web reader. Free, no API key
Related MCP Servers
- 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.4 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 gradedqualityCmaintenanceScrapes dynamic web pages via headless Chrome, stripping clutter and ads, and returns clean Markdown or JSON content. It integrates with Cloudflare Workflows and monetizes each extraction through the x402 protocol.-
- AlicenseAqualityDmaintenanceConverts URLs and raw HTML to clean Markdown, enabling AI assistants to read web pages for summarization, analysis, or ingestion.210 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.