高中生

- 金币
- 386
- 好评
- 5
- 信誉
- 100
|
本帖最后由 SoloSu 于 2026-8-11 14:28 编辑
基于 LessBrower 二次开发的智能浏览器,面向 DeepSeek 网页版 深度集成 MCP(Model Context Protocol,模型上下文协议) 能力。
项目简介
Nebula 是一个基于 Android WebView 的轻量级浏览器,在继承 LessBrower 简洁浏览体验的基础上,重点强化了 AI 对话场景:
- 内置针对 chat.deepseek.com 的 MCP 客户端注入脚本 dspp_mainworld.js
- 拦截 DeepSeek 网页版的 SSE 流,识别 tool_calls
- 通过本地 MCP HTTP 服务器(127.0.0.1:8788)实现工具调用
- 支持自动续聊,将工具结果回填后继续请求
- 支持配置多台远端 MCP 服务器,聚合本地与远端工具
核心特性
| 特性 | 说明 | | 浏览器 | WebView 内核,简洁地址栏 + 刷新 + 自动继续开关 | | MCP 本地服务器 | 监听 127.0.0.1:8788,遵循 JSON-RPC 2.0 协议 | | MCP 远端客户端 | 支持多服务器配置、启用/禁用、工具探测 | | DeepSeek 注入 | 自动向 chat.deepseek.com 注入工具调用脚本 | | UI 风格 | 3D 玻璃拟态 + 酷炫渐变主题 |
技术架构
- ┌─────────────────────────────────────────────────────────┐
- │ Nebula (Android) │
- │ │
- │ ┌────────────┐ ┌──────────────────────────────┐ │
- │ │ WebView │ │ McpManagerActivity │ │
- │ │ (浏览器) │ │ (MCP 服务器管理界面) │ │
- │ └─────┬──────┘ └──────────────┬───────────────┘ │
- │ │ 注入 dspp_mainworld.js │ │
- │ ▼ ▼ │
- │ chat.deepseek.com McpConfig (配置) │
- │ (拦截 SSE / tool_calls) │
- │ │ │
- │ └───────────────┬─────────────────────────────┘ │
- │ ▼ │
- │ ┌──────────────────┐ │
- │ │ McpService │ (前台服务) │
- │ │ └── McpServer │ (127.0.0.1:8788) │
- │ │ ├ LocalTools│ (本地工具) │
- │ │ └ RemoteMcpClient (远端服务器) │
- │ └──────────────────┘ │
- └─────────────────────────────────────────────────────────┘
复制代码 技术栈
- 语言:Kotlin
- UI:XML 布局 + Material Components,玻璃拟态自定义主题
- MCP:使用 Java / Kotlin 实现 HTTP JSON-RPC 2.0 服务器与客户端
- 构建:Gradle + AGP 8.9.0,compileSdk 35,minSdk 26
构建方法
- # 在项目根目录执行
- gradle assembleDebug
复制代码 产物位置:app/build/outputs/apk/debug/app-debug.apk
需预先配置 Android SDK 路径(local.properties 中的 sdk.dir)。
目录结构
- Nebula/
- ├── app/
- │ ├── build.gradle # 模块构建配置
- │ └── src/main/
- │ ├── AndroidManifest.xml # 应用清单
- │ ├── assets/
- │ │ └── dspp_mainworld.js # DeepSeek MCP 注入脚本
- │ ├── java/com/solosu/Nebula/
- │ │ ├── MainActivity.kt # 主界面(浏览器)
- │ │ ├── McpManagerActivity.kt # MCP 服务器管理
- │ │ ├── ImTool.kt # 输入法工具
- │ │ └── mcp/
- │ │ ├── McpConfig.kt # 服务器配置管理
- │ │ ├── McpServer.kt # 本地 MCP HTTP 服务器
- │ │ ├── McpService.kt # 前台服务
- │ │ ├── RemoteMcpClient.kt # 远端 MCP 客户端
- │ │ └── tools/
- │ │ └── LocalTools.kt # 本地工具定义
- │ └── res/ # 资源文件
- ├── build.gradle # 根构建配置
- ├── settings.gradle
- ├── gradle.properties
- └── gradlew # Gradle 包装器
复制代码 开发与贡献
开源许可与署名要求(重要)
本项目是 LessBrower 的二次开发(fork)作品。请务必遵守以下约定:
- 保留原作者署名:本项目的所有衍生或分支,必须保留 shenxiang216 (GitHub: @shenxiang216) 的署名。
- 保留二次开发作者署名:本项目的二次开发作者为 solosu,任何衍生作品也必须保留此署名。
- 保持开源状态:任何基于本项目的衍生作品,必须持续对外开源,不得闭源或私有化。
- 遵循开源协议:本项目采用 GNU GPL v3.0 开源协议(详见 LICENSE 文件)。任何衍生作品必须:
- 以 GPL v3.0 或兼容许可开源;
- 随分发附带完整的 LICENSE 副本;
- 保留作者的版权声明与署名。
若需要对 Nebula 进行再次开发或二次分发,请在代码、文档及产品说明中明确标注:
贡献准则
- 提交代码时请保留本文件中的署名与许可说明,不得删除。
- 新增功能请尽量保持向后兼容,遵循现有架构(界面 → 工具层 → MCP 服务器)。
- 涉及 MCP 协议或 DeepSeek 注入逻辑的改动,请同步更新 dspp_mainworld.js 与对应文档。
开源协议
本项目采用 **GNU General Public License v3.0 (GPL-3.0)**。
GPL-3.0 的核心要求:
- 任何基于本项目的衍生作品必须继续开源,不得闭源。
- 衍生作品必须保持相同的 GPL-3.0 许可,不得附加限制性条款。
- 分发时必须附带完整的源代码或提供获取源代码的途径。
- 必须保留原作者与二次开发作者的版权声明与署名。
- 本软件按"原样"提供,不提供任何担保。
完整许可文本请见 LICENSE 文件。
免责声明
本项目仅用于学习与技术研究。使用 DeepSeek 网页版时,请遵守其服务条款与相关法律法规。因使用本项目而产生的一切后果由使用者自行承担。
原创作者:shenxiang216 (GitHub: @shenxiang216)
二次开发作者:恣桐
开源协议:GNU GPL v3.0 (详见 LICENSE)
提示:这个项目还是个半成品,还需要继续开发,某坛友开发完@我
APK文件
源代码
|
|