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 skills add daidaiJ/websearch-mcpserver --skill websearch-mcpgit clone --depth 1 https://github.com/daidaiJ/websearch-mcpserverWrote 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/daidaij/websearch-mcpserver/websearch-mcp)<a href="https://agentmods.dev/skills/daidaij/websearch-mcpserver/websearch-mcp"><img src="https://agentmods.dev/badge/skills/daidaij/websearch-mcpserver/websearch-mcp/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/daidaij/websearch-mcpserver/websearch-mcp"><img src="https://agentmods.dev/badge/skills/daidaij/websearch-mcpserver/websearch-mcp.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00050 | $0.02017 |
| Opus 5.5 | $0.00020 | $0.00807 |
| Sonnet 5.5 | $0.00010 | $0.00403 |
| Haiku 4.5 | $0.00005 | $0.00202 |
Grade A, and why
websearch-mcp 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 2d 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 — 58 lines — stays where its author put it; the contents beside it link to each section on GitHub.
WebSearch MCP
将 smartsearch、academicsearch、cleanfetch、pdf_parser 作为互相衔接的取证工具;file_search 可用时负责定位本地资料,不读取正文。以此 MCP 为主要入口,其他检索和阅读能力按证据缺口补充;用户指定的来源、工具和范围优先。
从问题走到证据
先发现当前可调用的 WebSearch 工具并读取所需工具的实际参数。名称前缀由宿主决定;只使用当前暴露的参数。已知 URL 或论文编号可直接进入相应环节。
宿主支持 MCP Resources 时,可按需读取 search://capabilities 确认能力、search://health 查看冷却状态;资源可能被关闭,不把资源缺失当作工具故障。
随调用传递项目标签
工具实际参数包含可选 project 时,每次调用都携带当前明确项目的非敏感简称;它是统计标签,不是检索范围或权限。只使用宿主明确给出的当前工作区/项目,或已经确认的本次项目根目录。没有现成项目名时,可用项目根目录最后一级名称;Git 子目录应取所属仓库根,明确不属于项目的临时目录或独立对话省略标签。
标签最多 64 个字母、数字、空格及 ._-,可用中文;不发送完整路径、URL、凭证或对话标识。同一任务沿用已确认的简称,切换工作区时重新确定,未知时省略,不根据搜索关键词、网页内容或历史调用猜项目,不为补齐统计询问用户。
例如当前项目为 Example,公开网页抓取参数为 {"url":"https://example.com","project":"Example"}。旧版本工具没有 project 时不要传这个字段,正常调用即可;不为归属修改客户端配置或创建项目配置文件。应用身份由 MCP 协议提供,不从项目名推测应用。标签仍是自报信息,Skill 未加载或 Agent 漏传时可能没有项目归属。
| 当前需要 | 动作与后续判断 |
|---|---|
| 找网页资料 | smartsearch;检查候选来源。需要少量正文时可用 fetch_top_n,需要选定权威来源时再用 cleanfetch 抓指定 URL。 |
| 找论文或核对论文身份 | academicsearch;主题检索按学科选当前可用引擎。已有 DOI/arXiv 编号时单独提交编号,核对标题、作者、年份、版本。 |
| 读取网页或论文落地页 | cleanfetch;已有正文可直接使用,发现论文编号可转精确查询,发现直接 PDF 链接可转 pdf_parser。 |
| 读取论文方法、结果或 PDF | pdf_parser;按需要选页,检查返回的实际范围和文本质量。缺失背景或来源时再回到搜索。 |
| 定位并阅读本地文件 | 当前清单有 file_search 时定位;确认返回路径对宿主或服务可见,优先用宿主阅读工具。确需 Docker 解析 PDF 时,按运行行为中的单文件临时复制流程读取所需页并清理,不把文件名当正文。 |
参数示例、论文全文衔接和失败后的选择,按需读 检索流程。时间筛选、分页、PDF 分支、缓存或 Docker 文件访问涉及细节时,读 运行行为 的对应小节。
根据返回内容决定下一步
- 摘要或元数据:用于筛选、定位和有限的背景判断;涉及原文细节、准确引述或争议结论时继续获取对应段落。
- 正文:确认内容对应目标页面及版本,足以支持当前结论就复用。只有标题、导航、登录提示或“页面不存在”不是正文;工具成功状态也不能代替内容检查。
fetch_top_n=0仍可能有供应商长内容;fetch_top_n>0也不保证完整原文。 - 已保存结果:返回
result_ref时,调用当前暴露的cleanfetch,从offset=0开始,按next_offset续读到eof=true,只取本次需要的段落。常规读取不需要 Docker;引用失效时重新调用原工具。仅有路径的旧部署见运行行为的兼容说明;file_search的宿主路径仍走宿主读取。路径和引用本身不是内容证据。 - 部分失败或截断:保留成功内容,判断缺口是否影响答案。批量返回正常不代表每条成功,PDF 请求页码也不一定是实际解析范围。
- 搜索诊断与日期:检查尾部失败清单、稀疏结果的过滤诊断及阈值放宽提示。
retrieved_at是检索时刻,不是出版日期;snippet日期仅用于定位,structured日期也需在原页核实关键细节。缓存龄和排序分数不代表内容时效或可靠性。 - 无结果、受阻或不可读:根据原因选择新的查询、公开版本或其他工具。重要网页的自动补抓失败后,
cleanfetch可能通过额外的 Jina 分支恢复;不存在页面、安全拦截与取消不靠回退恢复。JavaScript 空壳仍无正文时,在现有权限内使用浏览器读取公开页面;不要无依据重复同一失败调用。 - PDF 文本质量:读取返回的实际解析器与页码提示,抽查词间空格、公式、表格及多栏顺序。非空文本不保证精确;需要原文引述时对照 PDF 或公开 HTML 版本。解析器、OCR 与上传是服务端配置和行为,不是可臆造的工具参数。
- MinerU 等待结束:有
task_ref时保留它。若本次文本回退已足够,直接复用;需要精准结果时,先确认实际 schema 支持task_ref,只传该引用与可用项目标签续查,省略path/pages。任务仍处理中是状态,不是正文或失败;完成后读取原任务结果,不重新提交 PDF。等待和停止条件见运行行为。
What ships with it
3 files 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.
- 2d ago First seen · 58 lines · 50 tokens per session scan A fe19904ead6e
websearch-mcp is a skill published in the GitHub repository daidaiJ/websearch-mcpserver (25 stars, last pushed yesterday), licensed MIT. It adds 50 tokens to every session and 2,017 once invoked, about $0.0002 per session on Opus 5.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-10-15.
Other skills, from other repositories
patsnap-patent-literature-search
Search Patsnap's global patent and scientific literature databases together using natural-language, semantic, keyword, and BM25-based queries with multidimensional filters, then fetch patent or literature records as Markdown.
release-and-publish
Ship a release end-to-end across every registry the project targets (npm, MCP Registry, GitHub Releases for .mcpb bundles, GHCR). Runs the final verification gate, fast-forwards main when the release rode a release PR, creates the annotated tag on the commit main now points at, pushes commits and tags, then publishes…
design-mcp-server
Design the tool surface, resources, and service layer for a new MCP server. Use when starting a new server, planning a major feature expansion, or when the user describes a domain/API they want to expose via MCP. Produces a design doc at docs/design.md that drives implementation.
add-tool
Scaffold a new MCP tool definition. Use when the user asks to add a tool, create a new tool, or implement a new capability for the server.
api-context
Canonical reference for the unified Context object passed to every tool and resource handler in @cyanheads/mcp-ts-core. Covers the full interface, its RequestContext base, all sub-APIs (ctx.log, ctx.state, ctx.requestInput, ctx.inputs, ctx.clientCapabilities, ctx.enrich, ctx.content), and when to use each.
api-linter
MCP definition linter rules reference. Use when bun run lint:mcp or bun run devcheck reports a lint error or warning (format-parity, schema-is-object, name-format, server-json-, etc.) and you need to understand the rule, its severity, and how to fix it. Every rule ID the linter emits has an entry in this doc.