smart-web
NPM · SMART-WEB-MCP · SCANNED SEP 26
smartfetch direct-URL fetch, smartsearch web discovery, smartcrawl sites, and docs export MCP.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 67 of 181 dependencies flagged as unhealthy (3 deprecated). View diagnostics → Partial
Provenance & Transparency6
- Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (SEE LICENSE IN LICENSE) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 33 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability51
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2899 tokens (~724/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 4 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the smart-web MCP server?
smart-web runs locally as an npm package, launched with npx -y smart-web-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · smart-web-mcp
claude mcp add jojo-labs-smart-web -- npx -y smart-web-mcp
{
"mcpServers": {
"jojo-labs-smart-web": {
"command": "npx",
"args": [
"-y",
"smart-web-mcp"
]
}
}
} {
"servers": {
"jojo-labs-smart-web": {
"command": "npx",
"args": [
"-y",
"smart-web-mcp"
]
}
}
} codex mcp add jojo-labs-smart-web -- npx -y smart-web-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jojo-labs-smart-web": {
"type": "local",
"command": [
"npx",
"-y",
"smart-web-mcp"
],
"enabled": true
}
}
} openclaw mcp add jojo-labs-smart-web --command npx --arg -y --arg smart-web-mcp
mcp_servers:
jojo-labs-smart-web:
command: "npx"
args: ["-y", "smart-web-mcp"] {
"McpServers": {
"jojo-labs-smart-web": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"smart-web-mcp"
]
}
}
} assistant mcp add jojo-labs-smart-web -t stdio -c npx -a -y smart-web-mcp
{
"mcpServers": {
"jojo-labs-smart-web": {
"command": "npx",
"args": [
"-y",
"smart-web-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 −3
- Stability: pass → 0.83 functional
- 23 Sept 26 +1
- Stability: 0.97 → pass security
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 −3
- Stability: pass → 0.80 functional
- 15 Sept 26 +1
- Stability: 0.97 → pass security
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 26 Sept 2026 · Analysed npm/smart-web-mcp@0.44.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 181 packages
| Packages resolved | 181 |
|---|---|
| Deprecated | 3 |
| Stale | 65 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
smartcrawl Smart Crawl ~672
Traverse a known site when one page is not enough and you need multiple relevant docs pages, posts, or thread items. Start from a concrete site URL; if you need to discover the site first, use smartsearch, and if you only need one direct URL, use smartfetch. Add `output_dir` when you want the crawl written to a local Markdown folder instead of returned only as a ranked summary; successful exports embed `resource_handle_manifest` in structuredContent with file:// handles for exported documents and metadata files. For LinkedIn profile URLs this is best-effort recent public post discovery, not full archive pagination. If smart-web returns reproducible incorrect or misleading output, open a GitHub issue on jojo-labs/smart-web with the exact input, arguments, observed output, expected behavior, and version. Skip obvious transient network/auth/rate-limit failures unless smart-web misclassified them.
| Name | Type | Req | Description |
|---|---|---|---|
| context_mode | string | – | Coarse alias/backcompat fallback when no numeric budget control is supplied. |
| exclude_patterns | array | – | Optional regex or substring patterns for URLs to skip |
| follow_pagination | boolean | – | Follow next or more-style pagination links during exploration |
| format | string | – | Text rendering format for the human-readable content. Defaults to compact rendered text while structuredContent carries the projected result; use json only when the host needs JSON duplicated in cont… |
| headroom_tokens | integer | – | Approximate remaining host context tokens. Uses compact/balanced fallback only; request full explicitly with output_budget or preferred_budget_chars. |
| include_patterns | array | – | Optional regex or substring patterns for URLs to keep |
| limit | integer | – | Maximum number of ranked results to return. For LinkedIn profile URLs this acts like a best-effort recent public post count. |
| max_depth | integer | – | Maximum recursive depth from the starting URL. Export mode can use deeper values than the summary crawl path. |
| max_pages | integer | – | Maximum number of pages to visit. In export mode this is the docs crawl budget; otherwise smartcrawl still behaves like an exploration-oriented crawl. |
| mode | string | – | Traversal hint for boards, docs sites, or automatic detection |
| output_budget | string | – | Explicit summary output projection. Defaults to compact; output_dir export mode still returns resource handles rather than inline documents. |
| output_dir | string | – | Optional local directory where a docs-style crawl should be exported as Markdown files. When omitted, smartcrawl returns only a ranked crawl summary. Successful exports embed resource_handle_manifest… |
| preferred_budget_chars | integer | – | Preferred host/RPC budget hint. Projects summary structuredContent and text to compact/balanced/full. |
| query | string | – | Optional topic filter used to rank crawl results |
| same_origin_only | boolean | – | Restrict traversal to the starting origin while still surfacing external item links |
| scroll_steps | integer | – | How many scroll attempts to use for scroll-driven pages |
| timeout_ms | integer | – | Crawl timeout budget per page |
| url | string | yes | Starting site or docs URL to explore. Use this when you need multiple pages from one site, not a single direct URL fetch. |
No output schema declared.
No examples provided.
smartfetch Smart Fetch ~784
Fetch and normalize one known URL or shortlink. Use this first for direct user-supplied URLs, browser-rendered pages, social posts, and videos; YouTube watch/short/embed links get best-effort transcript enrichment when public captions are available. For a blocked commerce URL, pass likely product/title candidates from the conversation as reference_queries; catalog metadata is accepted only after exact URL identifier matching. smartfetch is the unified retrieval kernel: default structuredContent carries pipeline acquire attempt_map, assessment, and research_handoff metadata for downstream evidence/report consumers when results are partial or blocked. Do not use smartsearch when the user already provided the URL, and use smartcrawl only when you need multiple pages from the same site. Use exactly one budget control per call: output_budget, preferred_budget_chars, context_mode, or headroom_tokens. If smart-web returns reproducible incorrect or misleading output, open a GitHub issue on jojo-labs/smart-web with the exact input, arguments, observed output, expected behavior, and version. Skip obvious transient network/auth/rate-limit failures unless smart-web misclassified them.
| Name | Type | Req | Description |
|---|---|---|---|
| context_mode | string | – | Coarse alias/backcompat fallback when no numeric budget control is supplied. |
| download | boolean | – | Prefer a downloadable asset result when the URL or discovered assets point to a file |
| force_dynamic | boolean | – | Skip the impit/light fetch and go straight to Playwright browser rendering. Required for sites behind Cloudflare or similar bot protection (e.g. wikidocs.net) that return challenge pages instead of c… |
| format | string | – | Text rendering format for the human-readable content. Defaults to compact token-conscious text while structuredContent always carries projected JSON; use json only when the host needs JSON duplicated… |
| headroom_tokens | integer | – | Approximate remaining host context tokens. Uses compact/balanced fallback only; request full explicitly with output_budget or preferred_budget_chars. |
| output_budget | string | – | Explicit budget override. Use this for host-side manual control; preferred_budget_chars/headroom_tokens/context_mode are ignored when this is set. |
| preferred_budget_chars | integer | – | Preferred output width hint from host/RPC budget metadata. Recommended for most host integrations. Mapped to compact/balanced/full by threshold and used before headroom/context_mode. |
| profile | string | – | Named browser profile for authenticated fetches (1-64 characters: letters, numbers, dots, underscores, or hyphens; must start with a letter or number and cannot end with a dot). Uses a persistent use… |
| reference_queries | array | – | Contextual product/title candidates for a blocked commerce URL. The provider may query a public catalog, but accepts a result only when its exact product identifiers match the requested URL. |
| strict_schema | boolean | – | Return schema-safe fallback output when normalization breaks |
| target | string | – | Content type hint. Leave auto for normal use; youtube_video is for actual video routes such as watch, shorts, embed, live, or youtu.be links. |
| timeout_ms | integer | – | Fetch timeout in milliseconds |
| url | string | yes | Direct URL or shortlink to fetch. Prefer this tool when the user already supplied a URL. |
| wait_for | string | – | CSS selector to wait for before capture (Playwright). Use when you know the page is an SPA that renders content into a specific element — e.g. '[data-reactroot]', 'svg.chart', '.content'. Without for… |
No output schema declared.
No examples provided.
smartsearch Smart Search ~449
Search the web when the user gave a topic, keywords, or a `site:` query instead of a specific URL. Use this for discovery first; if you already have a direct URL, use smartfetch instead. Can optionally hand off into smartcrawl for same-site exploration. If smart-web returns reproducible incorrect or misleading output, open a GitHub issue on jojo-labs/smart-web with the exact input, arguments, observed output, expected behavior, and version. Skip obvious transient network/auth/rate-limit failures unless smart-web misclassified them.
| Name | Type | Req | Description |
|---|---|---|---|
| contextMaxCharacters | integer | – | Maximum text content cap for legacy hosts; output_budget/preferred_budget_chars also project structuredContent. |
| context_mode | string | – | Coarse alias/backcompat fallback when no numeric budget control is supplied. |
| crawl_limit | integer | – | Maximum ranked crawl results to return in the handoff summary |
| crawl_max_depth | integer | – | Maximum recursive depth for the crawl handoff |
| crawl_max_pages | integer | – | Maximum number of pages to visit during the crawl handoff |
| crawl_mode | string | – | Traversal hint for the smartcrawl handoff |
| crawl_timeout_ms | integer | – | Per-page timeout for the crawl handoff |
| crawl_url | string | – | Optional starting URL for the smartcrawl handoff |
| headroom_tokens | integer | – | Approximate remaining host context tokens. Uses compact/balanced fallback only; request full explicitly with output_budget or preferred_budget_chars. |
| numResults | integer | – | Number of search results to return |
| output_budget | string | – | Explicit search output projection. Defaults to compact; use full only when the host really wants all result snippets and crawl handoff items. |
| preferred_budget_chars | integer | – | Preferred host/RPC budget hint. Projects search structuredContent and text to compact/balanced/full before rendering. |
| query | string | yes | Search-engine style query. Use this when the user gave a topic or keywords rather than a direct URL. |
| site_crawl | boolean | – | After search, hand off into smartcrawl when a crawl_url or site: operator is available |
| type | string | – | Search depth hint |
No output schema declared.
No examples provided.
smartvertical Smart Vertical ~994
Korean/local vertical and structured data router. Use domain to access places, weather, subway, finance, DART, real estate, safety, news, commerce, spellcheck, zipcode, law, public restrooms, and GeekNews without exposing every provider as a separate MCP tool.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | Domain-specific action. Examples: geeknews list/search/detail; stock search/base-info/trade-info; dart disclosures/company/financials; real_estate region-code/transactions; food_safety recall/unfit/f… |
| article | string | – | Law article, e.g. 제38조. |
| asset_type | string | – | Real-estate asset type. |
| bas_date | string | – | KRX base date YYYYMMDD. |
| base_date | string | – | Weather base date YYYYMMDD. |
| base_time | string | – | Weather base time HHmm. |
| bgn_de | string | – | DART disclosure begin date YYYYMMDD. |
| bsns_year | string | – | DART business year. |
| code | string | – | Stock code. |
| context_mode | string | – | Coarse alias/backcompat fallback when no numeric budget control is supplied. |
| corp_code | string | – | DART corp code. |
| currency | string | – | AliExpress currency hint. |
| deal_type | string | – | Real-estate deal type. |
| deal_ymd | string | – | Real-estate deal month YYYYMM. |
| display | integer | – | News result count. |
| domain | string | yes | Vertical domain: geeknews, subway, weather, fine_dust, stock, dart, real_estate, drug_safety, food_safety, news, aliexpress, shopping, coupang, spellcheck, zipcode, law, place, or public_restroom. |
| end_de | string | – | DART disclosure end date YYYYMMDD. |
| fs_div | string | – | DART financial statement division. |
| headroom_tokens | integer | – | Approximate remaining host context tokens. Uses compact/balanced fallback only; request full explicitly with output_budget or preferred_budget_chars. |
| id | string | – | Domain-specific identifier, e.g. GeekNews item id. |
| intent | string | – | Place search intent. |
| item_names | array | – | Drug names for drug_safety; query can be used for a single item. |
| lat | number | – | Latitude for weather/place/public_restroom. |
| law_id | string | – | Law id for law get-text. |
| lawd_cd | string | – | Real-estate law-dong code. |
| limit | integer | – | Generic result limit; domain-specific maxes still apply internally. |
| locale | string | – | AliExpress locale. |
| location | string | – | Location/anchor hint for place, public_restroom, subway, or other local lookups. |
| lon | number | – | Longitude for weather/place/public_restroom. |
| market | string | – | KRX market for stock base-info/trade-info. |
| max_price | integer | – | Coupang budget max price in KRW. |
| num_of_rows | integer | – | Real-estate rows. |
| nx | integer | – | KMA weather grid X. |
| ny | integer | – | KMA weather grid Y. |
| output_budget | string | – | Explicit smartvertical output projection. Defaults to compact; use full only when the host really needs large vertical lists or long legal/safety records. |
| page_count | integer | – | DART page count. |
| pblntf_ty | string | – | DART disclosure type. |
| preferred_budget_chars | integer | – | Preferred host/RPC budget hint. Projects smartvertical structuredContent.result and text to compact/balanced/full. |
| providers | array | – | Place providers. |
| query | string | – | Primary keyword/search query. Also works as a fallback for domains that need q, product name, law keyword, address keyword, station, or location. |
| radius_km | number | – | Public restroom radius in kilometers. |
| radius_m | integer | – | Place search radius in meters. |
| region_hint | string | – | Fine-dust region hint, e.g. 서울 강남구. |
| reprt_code | string | – | DART report code. |
| ship_to | string | – | AliExpress ship-to ISO-2 country. |
| sort | string | – | Domain-specific sort, e.g. date/sim, rel/price_asc, blended/distance/rating. |
| start | integer | – | News result offset. |
| station | string | – | Alias for station_name when calling subway. |
| station_name | string | – | Subway station name or fine-dust station name. |
| text | string | – | Text input for spellcheck. |
| timeout_ms | integer | – | Domain request timeout in milliseconds. |
No output schema declared.
No examples provided.
What is the smart-web MCP server?
smart-web is an MCP server listed in the public MCP registry as io.github.jojo-labs/smart-web. smartfetch direct-URL fetch, smartsearch web discovery, smartcrawl sites, and docs export MCP. This page covers its npm package (smart-web-mcp).
Is the smart-web MCP server safe to use?
smart-web scores 70 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 26 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the smart-web MCP server expose?
smart-web exposes 4 tools: smartsearch, smartcrawl, smartfetch, smartvertical. Their descriptions and schemas cost roughly 2,899 tokens of context every time the server is loaded.
Is the smart-web MCP server still maintained?
smart-web is still listed as active in the MCP registry. We last reached this channel on 26 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.