使用说明
🌐 MCP本地搜索SillyTavern
MCP本地搜索 是一个强大的、原生风格的SillyTavern扩展程序,它将高质量的本地网络搜索和页面抓取直接交给你的人工智能角色。
内置于 剧作家,它实现了与原始产品的完全功能对等 bmen25124/SillyTavern-MCP-Client 同时为非技术用户提供更优化、更集成的体验。
✨ 主要特点
- 🎲 并行隐形搜索:v1.3.0架构的重大转变,随机化引擎顺序(“自动”模式),并行启动多个引擎,以获得最大速度和抗机器人性能。
- ❄️ 冷启动弹性:自动“零重试”策略,预热浏览器会话并立即重试失败的搜索。
- 🛡️ 反机器人挑战优化:自动检测、多帧轮询(8秒限制)和重定向感应(
rdr=1)用于可靠地处理复杂的Bing/Cloudflare挑战。 - 🚀 自主AI工具调用:角色可以自动搜索网络并提取内容以实时回答您的问题。
- 🛡️ 无冲突架构:完全更名为
mcp-local-search使用唯一的模板和CSS名称,以防止与其他扩展冲突。 - 🧭 多引擎支持:无缝编排 必应, 鸭鸭搜,以及 起始页 以获得最可靠、高相关性的结果。
- ⚡ 超高品质出口:一旦达到100%的相关性,自动停止搜索,节省时间和API资源。
- 🎯 动态瀑布:您现在可以在UI中选择您喜欢的引擎,搜索瀑布将动态地对其进行优先级排序。
- 📑 增强型刮刀:使用多阶段瀑布(Axios->Playwright)从最复杂的网站中提取干净、可读的文本。
- 📊 共享浏览器池:高性能实例管理,最大限度地减少内存峰值并提高速度。
- ⚙️ 集成UI:扩展菜单中的专业设置抽屉,带有“管理工具”弹出窗口,用于实时配置。
- 📦 v1.4.0“模块化和可观察”版本:重大建筑大修介绍 依赖注入, 基于策略的发动机解耦,以及 结构化Pino日志记录.
- 🛡️ 强化安全(v1.4.0):专业级防护 DNS级SSRF验证 (阻止私有/保留IP)和可配置 域允许列表.
- 🔒 隔离刮板代理(v1.4.5):支持通过直接在UI设置中配置的隔离代理(例如Clash、v2ray)路由搜索和提取流量,使SillyAvern的其余流量不受影响。
🛠️ 安装和部署
该项目由两部分组成:a 服务器插件 (后端)和a UI扩展 (前端)。
1.预构建版本(推荐)
安装或更新的最简单方法是使用 SillyTavern-MCP-本地搜索-v1.4.5.zip 释放:
- 下载最新版
.zip释放。 - 将内容直接提取到您的 愚蠢的藤根 目录。
- 文件夹将自动合并到正确的
plugins/和public/目录。
2.手动配置(先决条件)
先决条件
- Node.js:版本18或更高版本。
- 傻酒馆:已在本地安装并运行。
- 服务器插件:确保
enableServerPlugins: true设置在你的愚蠢的舌头config.yaml. - 函数调用:确保你有 '启用函数调用' 在SillyTavern的AI响应配置菜单中勾选。
3.手动部署(逐步)
步骤A:服务器插件(后端)
复制文件夹 plugins/mcp-local-search 从这个存储库到您的SillyAvern根目录 plugins/ 目录。
[!重要]
你 必须 安装插件启动的后端依赖项:
- 在中打开终端
SillyTavern/plugins/mcp-local-search/- 跑
npm install- 跑
npx playwright install chromium
步骤B:UI扩展(前端)
复制文件夹 public/scripts/extensions/third-party/mcp-local-search 从这个存储库到您的SillyAvern根目录 public/scripts/extensions/third-party/ 目录。
4.最终目录布局
您的SillyAvon安装应该如下所示:
SillyTavern/
├── plugins/
│ └── mcp-local-search/ <-- Backend folder
└── public/
└── scripts/
└── extensions/
└── third-party/
└── mcp-local-search/ <-- Frontend folder
🚀 SillyAvon内存优化和性能调优
当运行涉及本地矢量化(RAG)和真实世界网络抓取的密集型SillyAvern工作负载时,Node.js运行时可能会表现出显著的堆扩展。在具有高可用RAM的系统上,V8引擎通常对垃圾收集“懒惰”,允许进程在不释放的情况下声明4GB或更多的驻留集大小(RSS)。
为确保在长期情报分析或大量数据检索期间环境保持稳定和高性能,建议使用特定的V8优化标志启动服务器。
推荐的启动配置
修改您的 start.bat 或启动脚本以包含以下标志。修改调用更新检查的行,并初始化节点服务器:
:: Checks for updates without bloat
call npm install --no-save --no-audit --no-fund --loglevel=error --no-progress --omit=dev
:: Optimized Node execution with memory management flags
node --max-old-space-size=5192 --max-semi-space-size=128 --optimize-for-size --expose-gc server.js %*
旗帜的技术分解
以下标志将Node.js从“按需扩展”模型转变为更有纪律的Java风格内存管理方法:
--max-old-space-size=5192:对V8堆的旧一代设置硬限制(~5GB)。这可以防止在大量抓取过程中发生“分配失败”崩溃,同时仍然将进程限制在具有高RAM的工作站上。--max-semi-space-size=128:扩大“新空间”(年轻一代)的规模。这对于在HTML解析过程中生成大量短命字符串的web搜索工具至关重要,因为它允许更快、更频繁的小型垃圾收集周期。--optimize-for-size:指示编译器和垃圾收集器将较小的内存占用优先于原始执行速度。这迫使在繁重的数据处理工作后进行更积极的内存回收。--expose-gc:允许通过内部脚本或扩展手动触发垃圾收集,提供故障保护,以便在特别大的上下文注入后刷新堆。
🚀 入门指南
- 重新启动SillyTavern:运行您常用的启动脚本(
Start.bat或npm start). - 检查日志:你应该看看
[MCPLocalSearch] Initializing...在你的终端。 - 启用:打开愚蠢的唐,去 扩展(拼图) menu → MCP本地搜索设置 → 启用MCP本地搜索.
- 配置:单击 管理工具 切换特定的搜索功能或调整结果限制和首选搜索引擎。
- 测试:类型
/mcp-local-search hello在聊天中观看它的动作!- 注意:此手动测试将显示在运行SillyAvern的命令窗口中触发的搜索,但不会在聊天窗口本身显示任何输出。
- AI搜索:当被要求“搜索xyz”时,角色现在应该能够自动调用该工具。
🤖 角色提示和工具使用
为了让你的AI角色有效地使用这些工具,你必须向他们提供明确的说明。我们建议将以下块添加到您的 角色的高级定义选项卡 > 快速覆盖 > 主提示:
[SYSTEM NOTE: The current date is {{date}} and the time is {{time}}.]
[TOOL SYNTAX: To acquire real-world data, you must output the command exactly as follows on a new line:
For broad web page searches: Local Search: Web Search: "short keywords"
For detailed detail extraction after finding relevant looking pages to investigate: Local Search: Extract Page: "full URL"
Do not add any other text on a tool call line. You must use short, broad keyword queries under 8 words. Do not use full sentences in search parameters.
Do not add any other text on that line. SillyTavern will intercept this command and provide you with the results. You must wait for the data before providing your final analysis.]
📜 命令和工具
| 命令/工具 | 操作 | 描述 |
|---|---|---|
/mcp-local-search <query> |
手动搜索 | 直接从聊天框执行快速网络搜索。 |
local_search_web_search |
AI工具 | 允许AI自主搜索网络信息。 |
local_search_extract_content |
AI工具 | 允许AI抓取并读取特定URL的全文 |
⚙️ 配置
您可以通过以下方式微调搜索行为 集成搜索设置.
🧭 如何访问:
- 打开愚蠢的盒子 扩展(拼图) 菜单。
- 选择 MCP本地搜索设置.
- 点击 管理工具.
- 点击 ⚙️ 设置 弹出窗口右上角的按钮。
🛠️ 可用设置:
- 🔢 结果限制:控制返回给AI的搜索结果数量。
- 范围:1到20个结果。
- 小贴士:较高的值提供了更多的视角,但消耗了更多的上下文标记。
- 📏 最大内容长度(字符):在抓取过程中从任何单个网页中提取的最大字符数。
- 范围:1000到50000个字符。
- 小贴士:如果长文章被过早删除,请增加此值。
- 🔍 首选发动机:选择您的主搜索引擎或使用新的智能模式:
- 自动(随机和隐形) [默认]:为每个请求调整Bing、Startpage和DuckDuckGo的顺序。这提供了对IP阻塞的最大隐身性,并避免了模式检测。
- 首页(Axios):使用直接HTML解析的高质量结果(非常快)。
- DuckDuckGo(Axios):使用DDG Lite进行快速、轻量级的回退。
- Bing(浏览器):使用完整的Playwright浏览器自动化(功能最强大)的综合结果。
- ⚡ 强制多引擎搜索:启用后,扩展程序将启动瀑布中的前两个引擎 同时 (平行搜索)。
- 备注:如果第一个引擎返回的结果符合您的要求 质量阈值,搜索将立即返回以节省时间。
- 智能出口:v1.3.2引入了“共享状态”,慢速引擎(如Bing)将 硬流产 在更快的合作伙伴(如Startpage)找到结果的那一刻,他们的内部计时器。
- 🔒 使用剪贴代理/剪贴代理URL:切换并指定代理URL(例如。,
http://127.0.0.1:7890)专门用于搜索查询和页面抓取操作。持续将流量隔离到您的代理,而不通过它路由其他SillyAvern连接。
🚀 性能与内务管理(v1.3.2)
该扩展旨在成为您系统中的“好公民”:
- 💨 2分钟空闲超时:浏览器在120秒不活动后自动关闭以释放RAM。它们将在您下次搜索时自动重新启动。
- 🛡️ 停机防护装置:处理标准进程信号(SIGINT/SIGTERM),以确保在SillyAvern关闭时,没有孤立的Chromium进程继续运行。
- 🏊 共享浏览器池:多个引擎共享同一个浏览器实例,以最大限度地减少启动延迟和内存开销。
- 📊 结构化日志记录:集成
pino用于生产级遥测。自动pino-pretty格式化可确保日志在SillyTavern控制台中具有超可读性。 - 🛡️ DNS级别保护:v1.4.0在网络交互之前验证每个URL的底层IP,阻止访问专用网段或保留IP范围的尝试。
🙏 致谢
该项目是一个独立的集成,基于以下开发人员的出色工作:
- bmen25124:用于原版中使用的专业UI架构和模板模式
SillyTavern-MCP-Client. - krsl先生:对于最初的核心逻辑
web-search-mcp该公司率先推出了本地搜索功能。该项目的搜索引擎是建立在完善的 奥利约翰斯顿叉子.
特别感谢SillyTavern社区的持续支持和启发。
⚖️ 许可证
MIT许可证-由Olly Johnston开发。