crw-mcp 0.15.2 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +6 -6
  2. package/skills/SKILL.md +35 -10
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "crw-mcp",
3
- "version": "0.15.2",
4
- "description": "MCP server for CRW web scraper — scrape, crawl, and map tools for AI agents",
3
+ "version": "0.16.0",
4
+ "description": "MCP server for CRW web scraper — scrape, crawl, map, search, and PDF-parse tools for AI agents",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://github.com/us/crw",
7
7
  "repository": {
@@ -30,9 +30,9 @@
30
30
  "skills/SKILL.md"
31
31
  ],
32
32
  "optionalDependencies": {
33
- "crw-mcp-darwin-x64": "0.15.2",
34
- "crw-mcp-darwin-arm64": "0.15.2",
35
- "crw-mcp-linux-x64": "0.15.2",
36
- "crw-mcp-linux-arm64": "0.15.2"
33
+ "crw-mcp-darwin-x64": "0.16.0",
34
+ "crw-mcp-darwin-arm64": "0.16.0",
35
+ "crw-mcp-linux-x64": "0.16.0",
36
+ "crw-mcp-linux-arm64": "0.16.0"
37
37
  }
38
38
  }
package/skills/SKILL.md CHANGED
@@ -36,19 +36,22 @@ This installs the CRW skill and MCP server to all detected AI agents (Claude Cod
36
36
 
37
37
  ## MCP Tools
38
38
 
39
+ > **Output bounds:** By default, content is truncated to ~15 000 chars (`crw_scrape`, `crw_check_crawl_status`, `crw_parse_file`) and `crw_map` returns ≤ 100 URLs. Truncated results carry a `truncated: true` marker (`crw_map` also adds `totalDiscovered`). Pass `maxLength: 0` or `limit: 0` to opt out of bounding.
40
+
39
41
  ### crw_scrape
40
42
 
41
43
  Scrape a single URL and return clean content.
42
44
 
43
45
  Parameters:
44
46
  - `url` (required) — The URL to scrape
45
- - `formats` — Output formats: `markdown` (default), `html`, `rawHtml`, `plainText`, `links`, `json`
47
+ - `formats` — Output formats: `markdown` (default), `html`, `links`
46
48
  - `onlyMainContent` — Strip navs/footers/sidebars. Default: `true`
49
+ - `includeTags` — Only include content matching these CSS selectors (e.g. `["article", "main"]`)
50
+ - `excludeTags` — Exclude content matching these CSS selectors (e.g. `["nav", "footer"]`)
47
51
  - `renderJs` — Force JavaScript rendering. Default: auto-detect (null)
48
- - `cssSelector` — Extract only elements matching this CSS selector
49
- - `xpath` — Extract only elements matching this XPath
50
- - `includeTags` — Only include these HTML tags (e.g. `["article", "main"]`)
51
- - `excludeTags` — Remove these HTML tags (e.g. `["nav", "footer"]`)
52
+ - `waitFor` — Milliseconds to wait after page load before capturing
53
+ - `renderer` — Renderer override (e.g. `"playwright"`)
54
+ - `maxLength` — Truncate output to this many chars. `0` = unbounded. Default: ~15 000
52
55
 
53
56
  ### crw_crawl
54
57
 
@@ -56,8 +59,12 @@ Start an async BFS crawl from a URL. Returns a job ID — poll with `crw_check_c
56
59
 
57
60
  Parameters:
58
61
  - `url` (required) — Starting URL
59
- - `maxDepth` — Maximum link depth. Default: `2`, max: `10`
60
- - `limit` — Maximum pages to crawl. Default: `10`, max: `1000`
62
+ - `maxDepth` — Maximum link depth. Default: `2`
63
+ - `maxPages` — Maximum pages to crawl
64
+ - `jsonSchema` — JSON schema for structured extraction per page
65
+ - `renderJs` — Force JavaScript rendering
66
+ - `waitFor` — Milliseconds to wait after page load before capturing
67
+ - `renderer` — Renderer override
61
68
 
62
69
  Returns: `{ "id": "job-uuid" }` — use this ID with crw_check_crawl_status.
63
70
 
@@ -67,18 +74,22 @@ Poll an async crawl job for results.
67
74
 
68
75
  Parameters:
69
76
  - `id` (required) — The crawl job ID from `crw_crawl`
77
+ - `maxLength` — Truncate each page's content fields to this many chars. `0` = unbounded. Default: ~15 000
70
78
 
71
79
  Returns: `{ "status": "pending|running|completed|failed", "data": [...] }`
72
80
 
73
81
  ### crw_search
74
82
 
75
- Search the web and return relevant results with titles, URLs, and descriptions.
83
+ Search the web and return relevant results with titles, URLs, and descriptions. Always available in proxy/cloud mode; in embedded mode only when a SearXNG backend is configured.
76
84
 
77
85
  Parameters:
78
86
  - `query` (required) — The search query
79
87
  - `limit` — Maximum number of results to return. Default: `5`
80
88
  - `lang` — Language code for results (e.g. `"en"`, `"tr"`)
81
89
  - `country` — Country code for results (e.g. `"us"`, `"tr"`)
90
+ - `tbs` — Time filter: `qdr:h|qdr:d|qdr:w|qdr:m|qdr:y` (past hour/day/week/month/year)
91
+ - `sources` — If set, group results by source: `web`, `news`, `images`
92
+ - `categories` — Bias toward a category (e.g. `"pdf"`, `"github"`, `"research"`, or a native SearXNG category)
82
93
  - `scrapeOptions` — Options for scraping each result page (e.g. `{"formats": ["markdown"]}`)
83
94
 
84
95
  ### crw_map
@@ -89,8 +100,22 @@ Parameters:
89
100
  - `url` (required) — The URL to map
90
101
  - `maxDepth` — Discovery depth. Default: `2`
91
102
  - `useSitemap` — Check sitemap.xml. Default: `true`
103
+ - `crawlFallback` — Supplement sitemap discovery with a short BFS crawl. Default: `true` (`false` = sitemap-only)
104
+ - `limit` — Maximum URLs to return. `0` = unbounded. Default: `100`
105
+
106
+ Returns: `{ "links": ["url1", "url2", ...] }`
107
+
108
+ ### crw_parse_file
92
109
 
93
- Returns: `{ "links": ["url1", "url2", ...] }` up to 5000 URLs.
110
+ Parse a local file (PDF) into markdown or structured output without fetching from the web.
111
+
112
+ Parameters:
113
+ - `contentBase64` (required) — Base64-encoded file contents
114
+ - `filename` — Original filename (optional, e.g. `"report.pdf"`)
115
+ - `formats` — Output formats: `markdown` (default), `plainText`, `links`, `json`, `summary` (json/summary need a server LLM)
116
+ - `jsonSchema` — JSON schema for LLM extraction (when `formats` includes `json`)
117
+ - `parsers` — Document parsers to apply. Default: `["pdf"]`
118
+ - `maxLength` — Truncate output to this many chars. `0` = unbounded. Default: ~15 000
94
119
 
95
120
  ## Common Patterns
96
121
 
@@ -103,7 +128,7 @@ crw_scrape(url="https://example.com", formats=["markdown"])
103
128
  First discover URLs, then crawl:
104
129
  ```
105
130
  crw_map(url="https://docs.example.com") → get URL list
106
- crw_crawl(url="https://docs.example.com", limit=50) → extract all content
131
+ crw_crawl(url="https://docs.example.com", maxPages=50) → extract all content
107
132
  crw_check_crawl_status(id="...") → poll until completed
108
133
  ```
109
134