claude-webcache MCP 服务说明文档
2026/7/10 23:22:00 网站建设 项目流程

1. 服务概述

一句话简介:Claude Code 的跨会话 WebFetch 缓存。Claude Code 内置的 WebFetch 在单个会话中缓存结果 15 分钟,claude-webcache 将其扩展到跨会话,无限期缓存(TTL 7 天,可配置)。

  • 服务名称:claude-webcache
  • 版本号:最新版本
  • 开发者/提供方:theYahia
  • 协议类型:MCP (Model Context Protocol)

2. 核心功能

claude-webcache 提供跨会话的网页内容缓存功能,解决 Claude Code 内置 WebFetch 缓存时间短的问题:

  • cached_fetch:从缓存获取网页内容,如果缓存命中则立即返回,否则返回 [CACHE_MISS]
  • cache_store:将网页内容存储到缓存,供后续会话使用
  • cache_stats:获取缓存统计信息,包括总缓存数、命中数、最后获取时间
  • cache_list:列出最近缓存的 URL(按最近使用排序)
  • SessionStart hook:在每个新会话开始时注入缓存统计信息

3. 使用场景

claude-webcache 适用于以下场景:

  • 跨会话缓存网页内容:打开新会话时,过去的获取内容仍然存在,无需重新获取
  • 减少重复获取相同 URL:在多个会话中访问相同的文档、API 参考、研究页面时,避免每次都支付完整的获取成本
  • 提高 AI 助手响应速度:缓存命中时立即返回,无需等待网络请求
  • 节省 API 调用成本:减少对外部 API 的重复调用,降低成本
  • 离线访问已缓存内容:即使网络不可用,也可以访问之前缓存的网页内容

4. 接入方式

4.1 服务端点

claude-webcache 是一个本地运行的 MCP 服务,使用 SQLite 数据库存储缓存数据。缓存数据库位于~/.webcache/cache.db(WAL 模式,并发安全)。

4.2 认证与权限

claude-webcache 完全本地运行,不需要任何认证。所有缓存数据存储在本地,确保隐私和安全。

4.3 数据格式

缓存使用 SQLite 数据库存储,缓存键为SHA256(url + "|" + prompt)。数据表结构:

字段类型
keyTEXT PRIMARY KEY
urlTEXT
prompt_hashTEXT
outputTEXT
cached_atINTEGER (ms epoch)
hit_countINTEGER
last_hit_atINTEGER

4.4 服务器配置

选项 1:Claude Code 插件(推荐)

# 一行命令安装 claude plugin marketplace add theYahia/claude-webcache && claude plugin install claude-webcache@theyahia

然后将使用模式添加到~/.claude/CLAUDE.md(参见使用模式章节)。

选项 2:npm 全局安装

# 安装 npm i -g @theyahia/claude-webcache # 然后在 ~/.claude/settings.json 中手动注册 # 将路径替换为 npm root -g 的结果

选项 3:克隆仓库(贡献者)

git clone https://github.com/theYahia/claude-webcache && claude --plugin-dir ./claude-webcache/plugin

5. 接口定义

claude-webcache 提供 4 个 MCP 工具接口:

工具参数返回值
cached_fetchurl,prompt缓存的文本,或[CACHE_MISS] <url>
cache_storeurl,prompt,outputstored
cache_stats--{ total, hits, last }
cache_listlimit?最近的 URL(按最近使用排序)

6. 快速开始

6.1 环境要求

  • Node.js 22.5+(使用内置的node:sqlite,无需原生依赖)
  • Claude Code(推荐使用插件方式)

6.2 安装步骤

# 方法 1:Claude Code 插件(推荐) claude plugin marketplace add theYahia/claude-webcache && claude plugin install claude-webcache@theyahia # 方法 2:npm 全局安装 npm i -g @theyahia/claude-webcache # 方法 3:克隆仓库 git clone https://github.com/theYahia/claude-webcache && claude --plugin-dir ./claude-webcache/plugin

6.3 使用模式

将以下内容添加到~/.claude/CLAUDE.md,让 Claude 通过缓存路由网页获取:

## WebFetch caching (claude-webcache) Before calling WebFetch, call `cached_fetch(url, prompt)` first. - If it returns text -> use that, do NOT call WebFetch. - If it returns `[CACHE_MISS] <url>` -> call WebFetch as normal, then call `cache_store(url, prompt, output)` with the result.

7. 注意事项

TTL(生存时间)

默认 7 天。过期的条目在下次读取相同键时删除。可以通过引入src/cache.js并调用purgeExpired()手动清除过期条目。

SessionStart hook

在每个新会话开始时,hook 会注入一行统计信息:

webcache: 142 pages cached, 38 hits, last fetch 3h ago

如果缓存为空,则跳过注入。

限制

  • 缓存键包含提示:同一 URL 上的不同提示是单独的条目。选择一致的提示(例如始终使用"extract title and main content")以最大化命中率
  • 输出格式:输出是 WebFetch 返回的任何内容(已由模型总结)。缓存不会重新处理它
  • 精确匹配:无语义搜索,无嵌入。仅精确的(url, prompt)匹配

工作原理

  1. 打开新会话:过去的获取内容仍然存在
  2. 缓存命中:立即返回
  3. 缓存未命中:与内置 WebFetch 相同

相同的 URL + 相同的提示在任何未来的会话中 = 立即缓存命中。

为什么需要 claude-webcache?

每当您在会话之间重新获取相同的 URL —— 文档、API 参考、研究页面 —— 您每次都要支付完整的获取成本。15 分钟的会话内缓存在您的下一个冲刺之前就会清除。claude-webcache 保持获取内容可用,因此第二个会话命中缓存而不是重新获取。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询