Skip to content

Repository files navigation

DS Web Local

CI

可插拔的本地 Agent 能力中台 —— 让【网页版 DeepSeek】获得本地 Agent 能力(MCP / 文件操作 / 技能 / 桌面自动化),也让本地 agent(Hermes / Claude Desktop)复用同一套工具。

⚠️ 声明:本项目仅供个人学习研究使用,不得用于商业用途。本项目通过浏览器油猴脚本桥接实现与 DeepSeek 网页版的交互,使用时请遵守 DeepSeek 官方服务条款。使用者需自行承担因使用本项目而产生的一切风险和责任。

特性

  • 🔌 MCP 双角色:作为 MCP 客户端接入外部 MCP 服务(stdio / streamable-http),聚合后统一暴露
  • 🛠️ 24 个内置工具:文件读写 / 目录 / 搜索 / Git / 终端 / 审批 / 技能加载 / 凭据引用 / Web 搜索
  • 🖥️ Windows 桌面自动化:窗口管理、点击/输入/截图、注册表、进程、系统通知(windows-mcp)
  • 🧩 技能系统:SKILL.md 多根发现(bundled / user / custom / hermes 只读源)、按需加载、导入导出
  • 🔑 凭据引用模型:配置只存引用不存值,环境变量遮蔽,控制台永不显示明文
  • 📜 管理控制台:React SPA —— MCP 服务 / 技能 / 工具日志 / 凭据 / 审批 / 设置
  • 🔁 高可靠桥接:fetch/XHR 劫持 + DOM 观察三通道监听、四级 JSON 宽容解析、状态机重连

架构

┌─────────────────┐   Tampermonkey 油猴脚本    ┌──────────────────┐
│  网页版 DeepSeek │ ◄────────────────────────► │                  │
│  (chat.deepseek)│   start:{...}end 工具协议    │   本地后端 :8088  │
└─────────────────┘                            │  FastAPI + MCP   │
                                               │  工具聚合中心     │
┌─────────────────┐   HTTP (console SPA)      │                  │
│  管理控制台      │ ◄────────────────────────► │  技能 / 凭据      │
│  (React)        │                            │  审批 / 事件流    │
└─────────────────┘                            └────────┬─────────┘
                                                        │ MCP (stdio/http)
                                          ┌─────────────┼─────────────┐
                                          ▼             ▼             ▼
                                    windows-mcp   外部 MCP 服务    Hermes 技能库
部分 目录 职责
本地后端 backend/ FastAPI + MCP 工具聚合中心(依赖 Python 3.11+)
桥接层 bridge/ 网页版桥接(站点无关引擎 + DeepSeek 适配器),build.py 打包 user.js
管理控制台 console/ React SPA(Vite + Tailwind),构建产物由后端静态托管

界面预览

管理控制台

快速开始

非开发者/第一次接触?先看 用户指南(图文步骤)

1. 安装依赖

依赖 用途 安装方式
Python 3.11+ 后端运行 python.orguv
pip / uv Python 包管理 pip 随 Python 自带;uv: pip install uv
Node.js 20+ 控制台构建 + 桥接自测 nodejs.org
uvx(可选) windows-mcp 桌面自动化服务 随 uv 安装
Tampermonkey 油猴脚本宿主(浏览器) tampermonkey.net

后端 Python 依赖(fastapi / uvicorn / mcp / loguru / pydantic / pyyaml / httpx / slowapi 等):

cd backend
pip install -r requirements.txt        # 或: uv sync --extra dev

windows-mcp 为可选(Windows 桌面自动化:窗口/点击/截图/注册表)。不需要桌面自动化的用户可删除 backend/config/mcp.json 中的 windows-mcp 服务条目,其余功能不受影响。

# 控制台(可选,若用预构建 dist 可跳过)
cd ../console
npm install
npm run build

2. 启动后端

cd backend
python main.py
# 或 Windows: 双击 start.bat

启动后:

3. 安装桥接脚本(网页版 DeepSeek)

  1. 安装 Tampermonkey 浏览器扩展
  2. 新建脚本,粘贴 bridge/ds-bridge.user.js 内容(或重新运行 python bridge/build.py 生成最新版)
  3. 打开 https://chat.deepseek.com —— 右上角出现状态圆点(灰 → 绿=已连接)
  4. 新建对话:自动注入 role_card(系统规范 + 工具清单 + 调用示例)
  5. 直接自然语言对话即可,例如:
    • "查看 G:/Download 目录下最大的文件"
    • "启动 D:/games/xxx.exe"
    • "读取 HKCU:/Environment 的 Path 注册表值"

4. 配置 MCP 服务

编辑 backend/config/mcp.json 添加服务(或控制台「MCP 服务」页操作):

{
  "services": {
    "my-server": {
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "my-mcp-server"],
      "auto_start": true
    }
  }
}

可选:Windows 桌面自动化(windows-mcp)

如需窗口管理、鼠标点击、截图、注册表编辑等桌面自动化能力,可安装 windows-mcp

安装方式

# 方式 1:使用 uvx(推荐,随 uv 安装)
uvx windows-mcp

# 方式 2:使用 npx
npx -y windows-mcp

# 方式 3:全局安装
pip install windows-mcp

配置

backend/config/mcp.json 中添加服务:

{
  "services": {
    "windows-mcp": {
      "transport": "stdio",
      "command": "uvx",
      "args": ["windows-mcp"],
      "auto_start": true
    }
  }
}

提供的工具

安装后将获得以下桌面自动化工具:

  • App: 启动/切换/关闭应用程序
  • Click: 鼠标点击(坐标或元素)
  • Type: 键盘输入文本
  • Screenshot: 截图
  • Registry: 读写 Windows 注册表
  • Process: 列出/终止进程
  • Clipboard: 剪贴板操作
  • FileSystem: 文件读写(带追加支持)
  • 更多...

不安装的影响

不安装 windows-mcp 不影响核心功能:

  • ✅ 文件读写(read_file / write_file,已内置 append 支持)
  • ✅ 目录操作(list_directory)
  • ✅ 搜索替换(search_replace / line_edit)
  • ✅ Git 操作
  • ✅ 终端命令执行
  • ✅ 技能系统
  • ✅ MCP 服务聚合

缺少:窗口管理、鼠标/键盘自动化、截图、注册表编辑等桌面自动化能力。

工作原理(桥接协议)

模型在对话中输出约定格式的工具调用,脚本捕获后调本地后端执行:

start:{"name":"list_directory","arguments":{"path":"G:/Download"}}end
  • 三通道监听:fetch 劫持 + XHR 劫持 + DOM 观察(DeepSeek 页面怎么改都不怕)
  • 四级宽容解析:SSE 转义反转义 → Windows 路径 \D 非法转义修复 → 值内未转义引号状态机 → 流式中间态容错
  • 结果回填:执行结果直接填入输入框,按发送键提交给模型(自动发送可选,注意可能触发风控)
  • 超长结果外置:>20KB 的结果自动落盘 data/tmp/,回填摘要 + 路径,模型用 read_file 按需读取

常见问题

Q: 模型不调用工具 / 参数名猜错? A: 刷新页面后新建对话(role_card 注入到新会话);role_card 已含参数名提示与调用示例,模型应直接照抄。

Q: 工具结果发送后模型没反应? A: 确认输入框出现绿色高亮后按了发送键;自动发送开关(面板右上角圆点)开启后无需手按(可能触发 DeepSeek 风控)。

Q: 想从局域网/其他机器访问? A: 改 backend/config/settings.yamlserver.host0.0.0.0,并务必开启 security.auth_enabled: true + 设置 auth_token

Q: 改了 role_card / 工具配置不生效? A: role_card 在新建对话时注入;后端配置(mcp.json/settings.yaml)改后重启后端;技能目录变更由监听线程 5s 内自动感知。

Q: 乱码? A: 读文本文件请让模型用 read_file(自动检测 UTF-8/GBK);PowerShell Get-Content 在中文 Windows 默认 GBK 会乱码。

自定义角色卡(Role Card)

角色卡(Role Card)是注入到 DeepSeek 对话中的系统规范,定义了模型可用的工具、调用格式和行为规则。

修改方式

编辑 backend/rolecard/generator.py 中的 template 字符串即可自定义角色卡内容:

template = """# 系统规范(必须严格遵守)
你是运行在本地环境的工作助理...
...
{tool_lines}

{skills_section}"""

可自定义内容:

  • 系统提示语(角色定义、行为规范)
  • 工具调用格式说明
  • 通用规则(路径格式、错误处理、响应风格等)
  • 调用示例(新增/修改示例以引导模型行为)

动态内容(自动生成,无需手动修改):

  • {tool_lines} — 可用工具清单及参数提示
  • {skills_section} — 技能系统说明

注意事项

  • 修改后需重启后端新建对话才能生效
  • 角色卡内容会占用模型上下文,建议控制在合理长度
  • 示例对模型行为影响很大,添加示例是引导模型的有效方式

开发

# 后端测试(151 用例)
cd backend && python -m pytest

# 桥接解析自测(14 用例,Node)
node bridge/selftest.js

# 重新打包油猴脚本(改 bridge/ 源码后)
python bridge/build.py

安全说明

  • 默认仅监听 127.0.0.1,凭据文件 data/.credentials.yaml 权限 0600,会话事件敏感键递归脱敏
  • 局域网/公网暴露前请开启认证(见上);工具审批(terminal 等敏感操作)默认关闭,可在 settings.yaml 开启
  • 本项目仅聚合/转发工具调用,不包含任何 DeepSeek 服务端能力;网页版行为受其官方条款约束

License

MIT

About

网页版 DeepSeek 本地 Agent 能力中台:MCP 工具聚合 + 技能系统 + windows-mcp 桌面自动化 + 油猴桥接 + React 管理控制台

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages